{"id":139657,"date":"2025-10-31T19:05:50","date_gmt":"2025-10-31T16:05:50","guid":{"rendered":"https:\/\/aiacademy.info\/blog\/?p=139657"},"modified":"2025-10-31T19:05:50","modified_gmt":"2025-10-31T16:05:50","slug":"%d9%83%d9%88%d8%af-%d8%a2%d9%85%d9%86","status":"publish","type":"post","link":"https:\/\/aiacademy.info\/blog\/%d9%83%d9%88%d8%af-%d8%a2%d9%85%d9%86\/","title":{"rendered":"\u062f\u0644\u064a\u0644 \u0627\u0644\u0645\u0628\u0631\u0645\u062c: \u0643\u064a\u0641 \u062a\u0643\u062a\u0628 \u0643\u0648\u062f \u0622\u0645\u0646 \u0648\u062a\u062d\u0645\u064a \u062a\u0637\u0628\u064a\u0642\u0643\u061f"},"content":{"rendered":"<p style=\"text-align: center;\">\u062f\u0644\u064a\u0644 \u0627\u0644\u0645\u0628\u0631\u0645\u062c: \u0643\u064a\u0641 \u062a\u0643\u062a\u0628 \u0643\u0648\u062f \u0622\u0645\u0646 \u0648\u062a\u062d\u0645\u064a \u062a\u0637\u0628\u064a\u0642\u0643\u061f<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/aiacademy.info\/blog\/wp-content\/uploads\/2025\/10\/secure-coding-practices.jpg\" alt=\"\u0643\u0648\u062f \u0622\u0645\u0646 \" width=\"500\" height=\"375\" title=\"\"><\/p>\n<p>\u0641\u064a \u0639\u0627\u0644\u0645 \u0627\u0644\u0628\u0631\u0645\u062c\u0629 \u0627\u0644\u064a\u0648\u0645\u060c \u0644\u0645 \u064a\u0639\u062f \u0643\u062a\u0627\u0628\u0629 \u0643\u0648\u062f \u0648\u0638\u064a\u0641\u064a \u0647\u0648 \u0627\u0644\u0647\u062f\u0641 \u0627\u0644\u0648\u062d\u064a\u062f. \u0628\u0644 \u064a\u062c\u0628 \u0639\u0644\u0649 \u0643\u0644 \u0645\u0628\u0631\u0645\u062c \u0623\u0646 \u064a\u062f\u0631\u0643 \u0623\u0646 \u0627\u0644\u0623\u0645\u0646 \u0627\u0644\u0633\u064a\u0628\u0631\u0627\u0646\u064a \u0647\u0648 \u062c\u0632\u0621 \u0623\u0633\u0627\u0633\u064a \u0645\u0646 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u0637\u0648\u064a\u0631. \u0643\u062a\u0627\u0628\u0629 \u0643\u0648\u062f \u0622\u0645\u0646 \u064a\u0639\u0646\u064a \u062d\u0645\u0627\u064a\u0629 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646\u060c \u0648\u0627\u0644\u0633\u0645\u0639\u0629\u060c \u0648\u062d\u062a\u0649 \u062a\u062c\u0646\u0628 \u062e\u0633\u0627\u0626\u0631 \u0645\u0627\u0644\u064a\u0629 \u0641\u0627\u062f\u062d\u0629.<\/p>\n<p>\u0647\u0630\u0627 \u0627\u0644\u0645\u0642\u0627\u0644 \u0628\u0645\u062b\u0627\u0628\u0629 \u062f\u0644\u064a\u0644 \u0639\u0645\u0644\u064a \u064a\u0631\u0643\u0632 \u0639\u0644\u0649 \u0623\u0634\u0647\u0631 \u0627\u0644\u062b\u063a\u0631\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u062a\u0639\u0631\u0636 \u0644\u0647\u0627 \u0623\u064a \u062a\u0637\u0628\u064a\u0642\u060c \u0648\u0643\u064a\u0641 \u064a\u0645\u0643\u0646\u0643 \u0643\u0645\u0628\u0631\u0645\u062c \u0623\u0646 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643 \u0648\u062a\u0637\u0628\u064a\u0642\u0643 \u0645\u0646\u0647\u0627.<\/p>\n<h2>1. \u062d\u0642\u0646 SQL (SQL Injection)<\/h2>\n<p>\u062a\u0639\u062a\u0628\u0631 \u0647\u062c\u0645\u0627\u062a \u062d\u0642\u0646 SQL \u0645\u0646 \u0623\u0642\u062f\u0645 \u0648\u0623\u062e\u0637\u0631 \u0627\u0644\u062b\u063a\u0631\u0627\u062a. \u062a\u062d\u062f\u062b \u0639\u0646\u062f\u0645\u0627 \u064a\u0642\u0648\u0645 \u0627\u0644\u0645\u0647\u0627\u062c\u0645 \u0628\u0625\u062f\u062e\u0627\u0644 \u0623\u0648 &#8220;\u062d\u0642\u0646&#8221; \u0623\u0648\u0627\u0645\u0631 SQL \u062e\u0628\u064a\u062b\u0629 \u0641\u064a \u062d\u0642\u0644 \u0625\u062f\u062e\u0627\u0644 (\u0645\u062b\u0644 \u062d\u0642\u0644 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0623\u0648 \u0627\u0644\u0628\u062d\u062b)\u060c \u0645\u0645\u0627 \u064a\u062c\u0628\u0631 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0639\u0644\u0649 \u062a\u0646\u0641\u064a\u0630 \u0623\u0648\u0627\u0645\u0631 \u0644\u0645 \u062a\u0643\u0646 \u0645\u0642\u0635\u0648\u062f\u0629.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u062f\u062b \u0627\u0644\u062b\u063a\u0631\u0629\u061f<\/h3>\n<p>\u0644\u0646\u0641\u062a\u0631\u0636 \u0623\u0646 \u0644\u062f\u064a\u0643 \u0643\u0648\u062f\u064b\u0627 \u063a\u064a\u0631 \u0622\u0645\u0646 \u0641\u064a \u0644\u063a\u0629 PHP \u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a:<\/p>\n<pre><code>\/\/ \u0643\u0648\u062f \u063a\u064a\u0631 \u0622\u0645\u0646\r\n\/\/ \u0644\u0627 \u062a\u0642\u0645 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647!\r\n$username = $_POST['username'];\r\n$password = $_POST['password'];\r\n\r\n$sql = \"SELECT * FROM users WHERE username = '$username' AND password = '$password'\";\r\n$result = $conn-&gt;query($sql);\r\n\r\nif ($result-&gt;num_rows &gt; 0) {\r\n    \/\/ \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644 \u0646\u0627\u062c\u062d\r\n}<\/code><\/pre>\n<p>\u0625\u0630\u0627 \u0642\u0627\u0645 \u0645\u0647\u0627\u062c\u0645 \u0628\u0625\u062f\u062e\u0627\u0644 <code>admin'--<\/code> \u0641\u064a \u062d\u0642\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u062a\u0631\u0643 \u062d\u0642\u0644 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0641\u0627\u0631\u063a\u064b\u0627\u060c \u0641\u0625\u0646 \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0633\u064a\u062a\u062d\u0648\u0644 \u0625\u0644\u0649:<\/p>\n<pre><code>SELECT * FROM users WHERE username = 'admin'--' AND password = ''<\/code><\/pre>\n<p>\u0627\u0644\u0631\u0645\u0632 <code>--<\/code> \u0647\u0648 \u062a\u0639\u0644\u064a\u0642 \u0641\u064a SQL\u060c \u0645\u0645\u0627 \u064a\u0639\u0646\u064a \u0623\u0646 \u0628\u0642\u064a\u0629 \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0633\u064a\u062a\u0645 \u062a\u062c\u0627\u0647\u0644\u0647\u060c \u0648\u0633\u064a\u062a\u0645\u0643\u0646 \u0627\u0644\u0645\u0647\u0627\u062c\u0645 \u0645\u0646 \u0627\u0644\u062f\u062e\u0648\u0644 \u0643\u0645\u062f\u064a\u0631 (admin) \u062f\u0648\u0646 \u0627\u0644\u062d\u0627\u062c\u0629 \u0625\u0644\u0649 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0635\u062d\u064a\u062d\u0629.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<p>\u0627\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0645\u0639\u062f\u0629 (Prepared Statements) \u0623\u0648 \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0645\u064f\u0639\u0627\u0645\u0644\u0629 (Parameterized Queries). \u0647\u0630\u0647 \u0627\u0644\u0637\u0631\u064a\u0642\u0629 \u062a\u0641\u0635\u0644 \u0628\u064a\u0646 \u0627\u0644\u0643\u0648\u062f \u0648\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u060c \u0645\u0645\u0627 \u064a\u0645\u0646\u0639 \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0623\u0648\u0627\u0645\u0631 \u0627\u0644\u062e\u0628\u064a\u062b\u0629.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0643\u0648\u062f \u0622\u0645\u0646 \u0641\u064a PHP:<\/p>\n<pre><code>\/\/ \u0643\u0648\u062f \u0622\u0645\u0646 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0645\u064f\u0639\u062f\u0629\r\n$stmt = $conn-&gt;prepare(\"SELECT * FROM users WHERE username = ? AND password = ?\");\r\n$stmt-&gt;bind_param(\"ss\", $_POST['username'], $_POST['password']);\r\n$stmt-&gt;execute();\r\n$result = $stmt-&gt;get_result();\r\n\r\nif ($result-&gt;num_rows &gt; 0) {\r\n    \/\/ \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644 \u0646\u0627\u062c\u062d \u0648\u0622\u0645\u0646\r\n} else {\r\n    \/\/ \u0641\u0634\u0644 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644\r\n}<\/code><\/pre>\n<h2>2. \u0647\u062c\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u0629 \u0639\u0628\u0631 \u0627\u0644\u0645\u0648\u0627\u0642\u0639 (Cross-Site Scripting &#8211; XSS)<\/h2>\n<p>\u062a\u062d\u062f\u062b \u062b\u063a\u0631\u0629 XSS \u0639\u0646\u062f\u0645\u0627 \u064a\u0642\u0648\u0645 \u0627\u0644\u0645\u0647\u0627\u062c\u0645 \u0628\u062d\u0642\u0646 \u0643\u0648\u062f JavaScript \u062e\u0628\u064a\u062b \u0641\u064a \u0645\u0648\u0642\u0639\u0643. \u0639\u0646\u062f\u0645\u0627 \u064a\u0632\u0648\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0645\u0648\u0642\u0639\u060c \u064a\u062a\u0645 \u062a\u0646\u0641\u064a\u0630 \u0647\u0630\u0627 \u0627\u0644\u0643\u0648\u062f \u0641\u064a \u0645\u062a\u0635\u0641\u062d\u0647\u060c \u0645\u0645\u0627 \u0642\u062f \u064a\u0633\u0645\u062d \u0644\u0644\u0645\u0647\u0627\u062c\u0645 \u0628\u0633\u0631\u0642\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 (cookies)\u060c \u0623\u0648 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062c\u0644\u0633\u0629 (session data)\u060c \u0623\u0648 \u062d\u062a\u0649 \u0625\u0639\u0627\u062f\u0629 \u062a\u0648\u062c\u064a\u0647 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0625\u0644\u0649 \u0645\u0648\u0642\u0639 \u0622\u062e\u0631.<\/p>\n<h3>\u0623\u0646\u0648\u0627\u0639 \u0647\u062c\u0645\u0627\u062a XSS<\/h3>\n<ul>\n<li>XSS \u0627\u0644\u0645\u0646\u0639\u0643\u0633\u0629 (Reflected XSS): \u064a\u062a\u0645 \u062d\u0642\u0646 \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u062e\u0628\u064a\u062b \u0641\u064a \u0631\u0627\u0628\u0637 URL \u0648\u064a\u0639\u0648\u062f \u0645\u0628\u0627\u0634\u0631\u0629 \u0641\u064a \u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u062e\u0627\u062f\u0645.<\/li>\n<li>XSS \u0627\u0644\u0645\u062e\u0632\u0646\u0629 (Stored XSS): \u064a\u062a\u0645 \u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u062e\u0628\u064a\u062b \u0628\u0634\u0643\u0644 \u062f\u0627\u0626\u0645 \u0641\u064a \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a (\u0645\u062b\u0644 \u062a\u0639\u0644\u064a\u0642 \u0641\u064a \u0645\u062f\u0648\u0646\u0629)\u060c \u0648\u064a\u062a\u0645 \u062a\u0646\u0641\u064a\u0630\u0647 \u0641\u064a \u0643\u0644 \u0645\u0631\u0629 \u064a\u0632\u0648\u0631 \u0641\u064a\u0647\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0635\u0641\u062d\u0629.<\/li>\n<li>XSS \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0629 \u0625\u0644\u0649 DOM (DOM-based XSS): \u062a\u062d\u062f\u062b \u0639\u0646\u062f\u0645\u0627 \u064a\u062a\u0645 \u062d\u0642\u0646 \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u062e\u0628\u064a\u062b \u0648\u062a\u0639\u062f\u064a\u0644 \u0634\u062c\u0631\u0629 DOM \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0635\u0641\u062d\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0643\u0648\u062f JavaScript \u0627\u0644\u0639\u0627\u062f\u064a \u062f\u0648\u0646 \u062a\u062f\u062e\u0644 \u0645\u0646 \u0627\u0644\u062e\u0627\u062f\u0645.<\/li>\n<\/ul>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<p>\u0642\u0645 \u062f\u0627\u0626\u0645\u064b\u0627 \u0628\u062a\u0639\u0642\u064a\u0645 (Sanitize) \u0623\u0648 \u062a\u0631\u0645\u064a\u0632 (Encode) \u0623\u064a \u0628\u064a\u0627\u0646\u0627\u062a \u0642\u0627\u062f\u0645\u0629 \u0645\u0646 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0642\u0628\u0644 \u0639\u0631\u0636\u0647\u0627. \u0647\u0630\u0627 \u064a\u062d\u0648\u0644 \u0627\u0644\u0631\u0645\u0648\u0632 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0625\u0644\u0649 \u0646\u0635\u0648\u0635 \u0639\u0627\u062f\u064a\u0629 \u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u0646\u0641\u064a\u0630\u0647\u0627.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0643\u0648\u062f \u0622\u0645\u0646 \u0641\u064a JavaScript:<\/p>\n<pre><code>\/\/ \u0643\u0648\u062f \u0622\u0645\u0646 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 textContent \u0628\u062f\u0644\u0627\u064b \u0645\u0646 innerHTML\r\n\/\/ \u0647\u0630\u0627 \u064a\u0645\u0646\u0639 \u062a\u0646\u0641\u064a\u0630 \u0623\u064a \u0643\u0648\u062f JavaScript \u0645\u062d\u0642\u0648\u0646\r\nconst userInput = \"<script>alert('attack!')<\/script>\";\r\nconst commentElement = document.createElement('p');\r\ncommentElement.textContent = userInput;\r\ndocument.body.appendChild(commentElement);<\/code><\/pre>\n<p>\u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a \u0644\u0644\u0648\u0642\u0627\u064a\u0629 \u0645\u0646 XSS:<\/p>\n<ul>\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 \u0645\u0643\u062a\u0628\u0627\u062a \u0645\u062b\u0644 DOMPurify \u0641\u064a JavaScript \u0644\u062a\u0639\u0642\u064a\u0645 (Sanitize) \u0645\u062d\u062a\u0648\u0649 HTML.<\/li>\n<li>\u062a\u0637\u0628\u064a\u0642 &#8220;\u0633\u064a\u0627\u0633\u0629 \u0623\u0645\u0627\u0646 \u0627\u0644\u0645\u062d\u062a\u0648\u0649&#8221; (CSP &#8211; Content Security Policy) \u0644\u0645\u0646\u0639 \u0645\u062a\u0635\u0641\u062d\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0646 \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u0636\u0627\u0631.<\/li>\n<\/ul>\n<h2>3. \u0647\u062c\u0645\u0627\u062a \u0627\u0644\u062a\u0632\u064a\u064a\u0641 \u0639\u0628\u0631 \u0627\u0644\u0645\u0648\u0627\u0642\u0639 (Cross-Site Request Forgery &#8211; CSRF)<\/h2>\n<p>\u062a\u062d\u062f\u062b \u0647\u0630\u0647 \u0627\u0644\u0647\u062c\u0645\u0627\u062a \u0639\u0646\u062f\u0645\u0627 \u064a\u062a\u0645 \u062e\u062f\u0627\u0639 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0644\u062a\u0646\u0641\u064a\u0630 \u0625\u062c\u0631\u0627\u0621 \u063a\u064a\u0631 \u0645\u0642\u0635\u0648\u062f \u0639\u0644\u0649 \u0645\u0648\u0642\u0639 \u0648\u064a\u0628 \u0645\u0648\u062b\u0648\u0642 \u0628\u0647. \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0642\u062f \u064a\u0631\u0633\u0644 \u0627\u0644\u0645\u0647\u0627\u062c\u0645 \u0628\u0631\u064a\u062f\u064b\u0627 \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u064b\u0627 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0631\u0627\u0628\u0637 \u062e\u0628\u064a\u062b\u060c \u0648\u0639\u0646\u062f\u0645\u0627 \u064a\u0636\u063a\u0637 \u0639\u0644\u064a\u0647 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u060c \u064a\u062a\u0645 \u062a\u0646\u0641\u064a\u0630 \u0637\u0644\u0628 \u062a\u062d\u0648\u064a\u0644 \u0623\u0645\u0648\u0627\u0644 \u0645\u0646 \u062d\u0633\u0627\u0628\u0647 \u0627\u0644\u0645\u0635\u0631\u0641\u064a \u062f\u0648\u0646 \u0639\u0644\u0645\u0647.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<p>\u0627\u0633\u062a\u062e\u062f\u0645 CSRF Tokens \u0648\u0647\u064a \u0631\u0645\u0648\u0632 \u0633\u0631\u064a\u0629 \u0648\u0641\u0631\u064a\u062f\u0629 \u064a\u062a\u0645 \u0625\u0646\u0634\u0627\u0624\u0647\u0627 \u0644\u0643\u0644 \u0637\u0644\u0628. \u0639\u0646\u062f\u0645\u0627 \u064a\u0631\u0633\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0646\u0645\u0648\u0630\u062c\u064b\u0627\u060c \u064a\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u0645\u0639 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a. \u064a\u0642\u0648\u0645 \u0627\u0644\u062e\u0627\u062f\u0645 \u0628\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0627\u0644\u0631\u0645\u0632 \u0642\u0628\u0644 \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0637\u0644\u0628\u060c \u0645\u0645\u0627 \u064a\u0636\u0645\u0646 \u0623\u0646 \u0627\u0644\u0637\u0644\u0628 \u0642\u0627\u062f\u0645 \u0645\u0646 \u0646\u0645\u0648\u0630\u062c \u062d\u0642\u064a\u0642\u064a \u0639\u0644\u0649 \u0645\u0648\u0642\u0639\u0643\u060c \u0648\u0644\u064a\u0633 \u0645\u0646 \u0645\u0648\u0642\u0639 \u062e\u0627\u0631\u062c\u064a.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 CSRF Token \u0641\u064a PHP:<\/p>\n<pre><code>\/\/ \u0641\u064a \u0645\u0639\u0627\u0644\u062c \u0627\u0644\u0637\u0644\u0628\r\nif (isset($_POST['csrf_token']) &amp;&amp; $_POST['csrf_token'] === $_SESSION['csrf_token']) {\r\n     \/\/ \u0627\u0644\u0631\u0645\u0632 \u0635\u062d\u064a\u062d\u060c \u0642\u0645 \u0628\u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0625\u062c\u0631\u0627\u0621 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\r\n    \/\/ \u0647\u0646\u0627 \u064a\u062a\u0645 \u062a\u062d\u0648\u064a\u0644 \u0627\u0644\u0623\u0645\u0648\u0627\u0644 \u0645\u062b\u0644\u0627\u064b\r\n    echo \"\u062a\u0645\u062a \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0648\u064a\u0644 \u0628\u0646\u062c\u0627\u062d.\";\r\n} else {\r\n    \/\/ \u0627\u0644\u0631\u0645\u0632 \u063a\u064a\u0631 \u0635\u062d\u064a\u062d\u060c \u0623\u0648\u0642\u0641 \u0627\u0644\u0639\u0645\u0644\u064a\u0629\r\n    echo \"\u062e\u0637\u0623 \u0641\u064a \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0631\u0645\u0632 CSRF.\";\r\n    exit;\r\n}<\/code><\/pre>\n<h2>4. \u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631<\/h2>\n<p>\u0644\u0627 \u062a\u0642\u0645 \u0623\u0628\u062f\u064b\u0627 \u0628\u062a\u062e\u0632\u064a\u0646 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0643\u0646\u0635\u0648\u0635 \u0639\u0627\u062f\u064a\u0629 \u0641\u064a \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a. \u0625\u0630\u0627 \u062a\u0645 \u0627\u062e\u062a\u0631\u0627\u0642 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a\u060c \u0641\u0633\u062a\u0643\u0648\u0646 \u062c\u0645\u064a\u0639 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0645\u0643\u0634\u0648\u0641\u0629.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<p>\u0627\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062a\u062c\u0632\u0626\u0629 (Hashing) \u0645\u0639 \u0627\u0644\u062a\u0645\u0644\u064a\u062d (Salting).<\/p>\n<ul>\n<li>\u0627\u0644\u062a\u062c\u0632\u0626\u0629 (Hashing): \u0647\u064a \u0639\u0645\u0644\u064a\u0629 \u062a\u062d\u0648\u064a\u0644 \u0627\u0644\u0646\u0635 \u0627\u0644\u0639\u0627\u062f\u064a (\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631) \u0625\u0644\u0649 \u0633\u0644\u0633\u0644\u0629 \u0645\u0646 \u0627\u0644\u0623\u062d\u0631\u0641 \u0648\u0627\u0644\u0623\u0631\u0642\u0627\u0645 \u063a\u064a\u0631 \u0627\u0644\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u0642\u0631\u0627\u0621\u0629. \u0645\u0646 \u0627\u0644\u0645\u0633\u062a\u062d\u064a\u0644 \u0639\u0643\u0633 \u0647\u0630\u0647 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 \u0648\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u0623\u0635\u0644\u064a\u0629.<\/li>\n<li>\u0627\u0644\u062a\u0645\u0644\u064a\u062d (Salting): \u0647\u064a \u0625\u0636\u0627\u0641\u0629 \u0633\u0644\u0633\u0644\u0629 \u0639\u0634\u0648\u0627\u0626\u064a\u0629 \u0641\u0631\u064a\u062f\u0629 (\u0627\u0644\u0645\u0644\u062d) \u0625\u0644\u0649 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0642\u0628\u0644 \u062a\u062c\u0632\u0626\u062a\u0647\u0627. \u0647\u0630\u0627 \u064a\u0645\u0646\u0639 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062c\u062f\u0627\u0648\u0644 \u0642\u0648\u0633 \u0642\u0632\u062d (Rainbow Tables) \u0644\u0643\u0633\u0631 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631.<\/li>\n<\/ul>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0643\u0648\u062f \u0622\u0645\u0646 \u0641\u064a PHP:<\/p>\n<p>\u0639\u0646\u062f \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645:<\/p>\n<pre><code>$hashed_password = password_hash($password, PASSWORD_BCRYPT);\r\n\/\/ \u0627\u0644\u0622\u0646 \u0642\u0645 \u0628\u062a\u062e\u0632\u064a\u0646 $hashed_password \u0641\u064a \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a<\/code><\/pre>\n<p>\u0639\u0646\u062f \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644:<\/p>\n<pre><code>\/\/ $hashed_password_from_db \u0647\u064a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u0645\u062c\u0632\u0623\u0629 \u0645\u0646 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a\r\nif (password_verify($password, $hashed_password_from_db)) {\r\n    \/\/ \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0635\u062d\u064a\u062d\u0629\r\n} else {\r\n    \/\/ \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u062d\u064a\u062d\u0629\r\n}<\/code><\/pre>\n<h2>5. \u062a\u0623\u0645\u064a\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a (Input Validation)<\/h2>\n<p>\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a \u0647\u0648 \u0623\u0648\u0644 \u0648\u0623\u0647\u0645 \u062e\u0637\u0648\u0629 \u0641\u064a \u062a\u0623\u0645\u064a\u0646 \u062a\u0637\u0628\u064a\u0642\u0643. \u064a\u062c\u0628 \u0623\u0646 \u062a\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u0631\u0633\u0644\u0647\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0648\u0646 \u062a\u062a\u0648\u0627\u0641\u0642 \u0645\u0639 \u0627\u0644\u062a\u0646\u0633\u064a\u0642 \u0627\u0644\u0645\u062a\u0648\u0642\u0639.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<ul>\n<li>\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0646\u0648\u0639 \u0648\u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0649: \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a \u0647\u064a \u0645\u0646 \u0627\u0644\u0646\u0648\u0639 \u0627\u0644\u0635\u062d\u064a\u062d (\u0646\u0635\u060c \u0631\u0642\u0645\u060c \u062a\u0627\u0631\u064a\u062e\u060c \u0625\u0644\u062e) \u0648\u0623\u0646\u0647\u0627 \u0644\u0627 \u062a\u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u062d\u062f\u0648\u062f \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647\u0627.<\/li>\n<li>\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a \u0641\u064a \u062c\u0627\u0646\u0628 \u0627\u0644\u062e\u0627\u062f\u0645 (Server-side): \u0644\u0627 \u062a\u0639\u062a\u0645\u062f \u0623\u0628\u062f\u064b\u0627 \u0639\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a \u0641\u064a \u062c\u0627\u0646\u0628 \u0627\u0644\u0639\u0645\u064a\u0644 (Client-side) \u0641\u0642\u0637. \u064a\u0645\u0643\u0646 \u0644\u0644\u0645\u0647\u0627\u062c\u0645\u064a\u0646 \u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u0641\u064a \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0628\u0633\u0647\u0648\u0644\u0629. \u064a\u062c\u0628 \u0623\u0646 \u062a\u062a\u0645 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0639\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645 \u0623\u064a\u0636\u064b\u0627.<\/li>\n<li>\u0627\u0644\u062a\u0639\u0642\u064a\u0645 (Sanitization): \u0642\u0628\u0644 \u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a\u060c \u0642\u0645 \u0628\u0625\u0632\u0627\u0644\u0629 \u0623\u064a \u0623\u062d\u0631\u0641 \u063a\u064a\u0631 \u0645\u0631\u063a\u0648\u0628 \u0641\u064a\u0647\u0627 \u0623\u0648 \u0623\u0643\u0648\u0627\u062f \u062e\u0628\u064a\u062b\u0629.<\/li>\n<\/ul>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a \u0641\u064a PHP:<\/p>\n<pre><code>\/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0623\u0646 \u0627\u0644\u0645\u062a\u063a\u064a\u0631 \u0631\u0642\u0645 \u0635\u062d\u064a\u062d\r\nif (filter_var($age, FILTER_VALIDATE_INT) === false) {\r\n    \/\/ \u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0627\u0644\u062e\u0637\u0623\r\n}\r\n\r\n\/\/ \u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641 \u063a\u064a\u0631 \u0627\u0644\u0645\u0631\u063a\u0648\u0628 \u0641\u064a\u0647\u0627 \u0645\u0646 string\r\n$sanitized_string = filter_var($string, FILTER_SANITIZE_STRING);<\/code><\/pre>\n<h2>6. \u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0627\u0644\u0622\u0645\u0646 \u0645\u0639 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062a<\/h2>\n<p>\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0646\u0642\u0637\u0629 \u0636\u0639\u0641 \u0643\u0628\u064a\u0631\u0629 \u0625\u0630\u0627 \u0644\u0645 \u064a\u062a\u0645 \u062a\u0623\u0645\u064a\u0646\u0647 \u0628\u0634\u0643\u0644 \u0635\u062d\u064a\u062d. \u064a\u0645\u0643\u0646 \u0644\u0644\u0645\u0647\u0627\u062c\u0645\u064a\u0646 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641\u0627\u062a \u062e\u0628\u064a\u062b\u0629 \u0645\u062b\u0644 \u0645\u0644\u0641\u0627\u062a PHP \u0623\u0648 JavaScript \u0644\u062a\u0646\u0641\u064a\u0630 \u0623\u0648\u0627\u0645\u0631 \u0639\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<ul>\n<li>\u0644\u0627 \u062a\u062b\u0642 \u0628\u0646\u0648\u0639 \u0627\u0644\u0645\u0644\u0641: \u0644\u0627 \u062a\u0639\u062a\u0645\u062f \u0639\u0644\u0649 \u0646\u0648\u0639 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0630\u064a \u064a\u0631\u0633\u0644\u0647 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 (MIME Type) \u0641\u0642\u0637. \u0642\u0645 \u0628\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0646\u0648\u0639 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0641\u0639\u0644\u064a.<\/li>\n<li>\u062a\u063a\u064a\u064a\u0631 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641: \u0642\u0645 \u0628\u062a\u063a\u064a\u064a\u0631 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0625\u0644\u0649 \u0627\u0633\u0645 \u0639\u0634\u0648\u0627\u0626\u064a \u0644\u0645\u0646\u0639 \u0627\u0644\u0645\u0647\u0627\u062c\u0645\u064a\u0646 \u0645\u0646 \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0645\u0644\u0641 \u0645\u0628\u0627\u0634\u0631\u0629.<\/li>\n<li>\u0641\u062d\u0635 \u0627\u0644\u0645\u062d\u062a\u0648\u0649: \u0642\u0645 \u0628\u0641\u062d\u0635 \u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u0644\u0641 \u0628\u062d\u062b\u064b\u0627 \u0639\u0646 \u0623\u0643\u0648\u0627\u062f \u062e\u0628\u064a\u062b\u0629.<\/li>\n<li>\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u062e\u0627\u0631\u062c \u0645\u062c\u0644\u062f \u0627\u0644\u0648\u064a\u0628 \u0627\u0644\u0639\u0627\u0645: \u0644\u0627 \u062a\u0642\u0645 \u0628\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u0645 \u062a\u062d\u0645\u064a\u0644\u0647\u0627 \u0641\u064a \u0645\u062c\u0644\u062f \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647 \u0645\u0628\u0627\u0634\u0631\u0629 \u0645\u0646 \u0627\u0644\u0648\u064a\u0628.<\/li>\n<\/ul>\n<p>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0643\u0648\u062f \u062a\u062d\u0645\u064a\u0644 \u0622\u0645\u0646 \u0641\u064a PHP:<\/p>\n<pre><code>$target_dir = \"uploads\/\";\r\n$file_extension = pathinfo($_FILES[\"fileToUpload\"][\"name\"], PATHINFO_EXTENSION);\r\n$new_filename = uniqid() . '.' . $file_extension;\r\n$target_file = $target_dir . $new_filename;\r\n\r\n\/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0646\u0648\u0639 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0641\u0639\u0644\u064a\r\n$finfo = finfo_open(FILEINFO_MIME_TYPE);\r\n$mime_type = finfo_file($finfo, $_FILES[\"fileToUpload\"][\"tmp_name\"]);\r\nif (in_array($mime_type, ['image\/jpeg', 'image\/png'])) {\r\n    if (move_uploaded_file($_FILES[\"fileToUpload\"][\"tmp_name\"], $target_file)) {\r\n        echo \"\u062a\u0645 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641 \u0628\u0646\u062c\u0627\u062d.\";\r\n    } else {\r\n        echo \"\u062d\u062f\u062b \u062e\u0637\u0623 \u0623\u062b\u0646\u0627\u0621 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641.\";\r\n    }\r\n} else {\r\n    echo \"\u0646\u0648\u0639 \u0627\u0644\u0645\u0644\u0641 \u063a\u064a\u0631 \u0645\u0633\u0645\u0648\u062d \u0628\u0647.\";\r\n}<\/code><\/pre>\n<h2>7. \u062a\u0623\u0645\u064a\u0646 \u0648\u0627\u062c\u0647\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u0629 (APIs)<\/h2>\n<p>\u062a\u0623\u0645\u064a\u0646 APIs \u0623\u0645\u0631 \u062d\u0627\u0633\u0645\u060c \u062e\u0627\u0635\u0629 \u0641\u064a \u0627\u0644\u0623\u0646\u0638\u0645\u0629 \u0627\u0644\u062a\u064a \u062a\u0639\u062a\u0645\u062f \u0639\u0644\u0649 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0648\u064a\u0628 \u0648\u0627\u0644\u0645\u0648\u0628\u0627\u064a\u0644.<\/p>\n<h3>\u0643\u064a\u0641 \u062a\u062d\u0645\u064a \u0646\u0641\u0633\u0643\u061f<\/h3>\n<ul>\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 HTTPS: \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u062c\u0645\u064a\u0639 \u0627\u062a\u0635\u0627\u0644\u0627\u062a API \u062a\u062a\u0645 \u0639\u0628\u0631 HTTPS.<\/li>\n<li>\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0647\u0648\u064a\u0629 (Authentication): \u0627\u0633\u062a\u062e\u062f\u0645 \u0637\u0631\u0642 \u0622\u0645\u0646\u0629 \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0647\u0648\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u062b\u0644 OAuth 2.0 \u0623\u0648 JSON Web Tokens (JWT).<\/li>\n<li>\u0627\u0644\u062a\u0631\u062e\u064a\u0635 (Authorization): \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0644\u062f\u064a\u0647 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u0627\u0644\u0644\u0627\u0632\u0645\u0629 \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0648\u0631\u062f \u0627\u0644\u0645\u0637\u0644\u0648\u0628.<\/li>\n<li>\u062a\u062d\u062f\u064a\u062f \u0645\u0639\u062f\u0644 \u0627\u0644\u0637\u0644\u0628\u0627\u062a (Rate Limiting): \u0642\u0645 \u0628\u062a\u0642\u064a\u064a\u062f \u0639\u062f\u062f \u0627\u0644\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u0645\u0643\u0646 \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0625\u0631\u0633\u0627\u0644\u0647\u0627 \u062e\u0644\u0627\u0644 \u0641\u062a\u0631\u0629 \u0632\u0645\u0646\u064a\u0629 \u0645\u062d\u062f\u062f\u0629 \u0644\u0645\u0646\u0639 \u0647\u062c\u0645\u0627\u062a \u0627\u0644\u062d\u0631\u0645\u0627\u0646 \u0645\u0646 \u0627\u0644\u062e\u062f\u0645\u0629 (DDoS).<\/li>\n<\/ul>\n<h2>8. \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u0648\u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629 (Logging and Monitoring)<\/h2>\n<p>\u062a\u0639\u062a\u0628\u0631 \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0648\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u062c\u0632\u0621\u064b\u0627 \u0644\u0627 \u064a\u062a\u062c\u0632\u0623 \u0645\u0646 \u0627\u0644\u0623\u0645\u0646. \u0625\u0630\u0627 \u062d\u062f\u062b \u0627\u062e\u062a\u0631\u0627\u0642\u060c \u0641\u0625\u0646 \u0627\u0644\u0633\u062c\u0644\u0627\u062a (logs) \u0647\u064a \u0623\u0648\u0644 \u0645\u0627 \u0633\u062a\u0639\u062a\u0645\u062f \u0639\u0644\u064a\u0647 \u0644\u0641\u0647\u0645 \u0645\u0627 \u062d\u062f\u062b.<\/p>\n<h3>\u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a:<\/h3>\n<ul>\n<li>\u0633\u062c\u0644 \u0627\u0644\u0623\u062d\u062f\u0627\u062b \u0627\u0644\u0647\u0627\u0645\u0629: \u0642\u0645 \u0628\u062a\u0633\u062c\u064a\u0644 \u0645\u062d\u0627\u0648\u0644\u0627\u062a \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0627\u0644\u0641\u0627\u0634\u0644\u0629\u060c \u0648\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a\u060c \u0648\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062a\u060c \u0648\u063a\u064a\u0631\u0647\u0627 \u0645\u0646 \u0627\u0644\u0623\u062d\u062f\u0627\u062b \u0627\u0644\u0647\u0627\u0645\u0629.<\/li>\n<li>\u0644\u0627 \u062a\u0633\u062c\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0633\u0629: \u0644\u0627 \u062a\u0642\u0645 \u0628\u062a\u062e\u0632\u064a\u0646 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0623\u0648 \u0623\u0631\u0642\u0627\u0645 \u0628\u0637\u0627\u0642\u0627\u062a \u0627\u0644\u0627\u0626\u062a\u0645\u0627\u0646 \u0641\u064a \u0627\u0644\u0633\u062c\u0644\u0627\u062a.<\/li>\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 \u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629: \u0627\u0633\u062a\u062e\u062f\u0645 \u0623\u062f\u0648\u0627\u062a \u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0623\u062f\u0627\u0621 \u0648\u0623\u0645\u0627\u0646 \u062a\u0637\u0628\u064a\u0642\u0643 \u0628\u0634\u0643\u0644 \u0645\u0633\u062a\u0645\u0631.<\/li>\n<\/ul>\n<h2>9. \u0646\u0635\u0627\u0626\u062d \u0625\u0636\u0627\u0641\u064a\u0629<\/h2>\n<ul>\n<li>\u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a: \u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a \u0648\u0623\u0637\u0631 \u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u062a\u064a \u062a\u0633\u062a\u062e\u062f\u0645\u0647\u0627 \u0628\u0627\u0646\u062a\u0638\u0627\u0645 \u0644\u0633\u062f \u0627\u0644\u062b\u063a\u0631\u0627\u062a \u0627\u0644\u0623\u0645\u0646\u064a\u0629 \u0627\u0644\u0645\u0639\u0631\u0648\u0641\u0629.<\/li>\n<li>\u0645\u0628\u062f\u0623 &#8220;\u0623\u0642\u0644 \u0635\u0644\u0627\u062d\u064a\u0629&#8221; (Principle of Least Privilege): \u0627\u0645\u0646\u062d \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0648\u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062a \u0641\u064a \u0646\u0638\u0627\u0645\u0643 \u0623\u0642\u0644 \u0642\u062f\u0631 \u0645\u0645\u0643\u0646 \u0645\u0646 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u062d\u062a\u0627\u062c\u0648\u0646\u0647\u0627 \u0644\u0623\u062f\u0627\u0621 \u0645\u0647\u0627\u0645\u0647\u0645.<\/li>\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 &#8220;\u0633\u064a\u0627\u0633\u0629 \u0623\u0645\u0627\u0646 \u0627\u0644\u0645\u062d\u062a\u0648\u0649&#8221; (CSP): \u0642\u0645 \u0628\u062a\u0639\u0631\u064a\u0641 \u0647\u0630\u0647 \u0627\u0644\u0633\u064a\u0627\u0633\u0629 \u0644\u0645\u0646\u0639 \u0645\u062a\u0635\u0641\u062d\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0646 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0645\u0646 \u0645\u0635\u0627\u062f\u0631 \u063a\u064a\u0631 \u0645\u0648\u062b\u0648\u0642 \u0628\u0647\u0627.<\/li>\n<\/ul>\n<h2>\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n<p>\u0627\u0644\u0623\u0645\u0646 \u0627\u0644\u0633\u064a\u0628\u0631\u0627\u0646\u064a \u0644\u064a\u0633 \u0645\u0633\u0624\u0648\u0644\u064a\u0629 \u0641\u0631\u0642 \u0627\u0644\u0623\u0645\u0646 \u0641\u0642\u0637\u060c \u0628\u0644 \u0647\u0648 \u0645\u0633\u0624\u0648\u0644\u064a\u0629 \u0643\u0644 \u0645\u0628\u0631\u0645\u062c. \u0645\u0646 \u062e\u0644\u0627\u0644 \u0641\u0647\u0645 \u0647\u0630\u0647 \u0627\u0644\u0645\u0641\u0627\u0647\u064a\u0645 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0648\u062a\u0637\u0628\u064a\u0642 \u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a\u060c \u064a\u0645\u0643\u0646\u0643 \u0628\u0646\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0623\u0643\u062b\u0631 \u0642\u0648\u0629 \u0648\u0623\u0645\u0627\u0646\u064b\u0627. \u062a\u0630\u0643\u0631 \u062f\u0627\u0626\u0645\u064b\u0627: \u0644\u0627 \u062a\u062b\u0642 \u0623\u0628\u062f\u064b\u0627 \u0628\u0645\u062f\u062e\u0644\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0644\u064a\u0644 \u0627\u0644\u0645\u0628\u0631\u0645\u062c: \u0643\u064a\u0641 \u062a\u0643\u062a\u0628 \u0643\u0648\u062f \u0622\u0645\u0646 \u0648\u062a\u062d\u0645\u064a \u062a\u0637\u0628\u064a\u0642\u0643\u061f \u0641\u064a \u0639\u0627\u0644\u0645 \u0627\u0644\u0628\u0631\u0645\u062c\u0629 \u0627\u0644\u064a\u0648\u0645\u060c \u0644\u0645 \u064a\u0639\u062f \u0643\u062a\u0627\u0628\u0629 \u0643\u0648\u062f \u0648\u0638\u064a\u0641\u064a \u0647\u0648 \u0627\u0644\u0647\u062f\u0641 \u0627\u0644\u0648\u062d\u064a\u062f. \u0628\u0644 \u064a\u062c\u0628 \u0639\u0644\u0649 \u0643\u0644 \u0645\u0628\u0631\u0645\u062c&#8230;<\/p>\n","protected":false},"author":21,"featured_media":139659,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"default","_kad_post_title":"default","_kad_post_layout":"default","_kad_post_sidebar_id":"","_kad_post_content_style":"default","_kad_post_vertical_padding":"default","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[72],"tags":[4964,4962,4956,4961,4965,4963,4958,4957,4960,4959],"class_list":["post-139657","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-72","tag-csrf-token","tag-4962","tag-4956","tag-4961","tag-4965","tag-4963","tag--sql","tag-4957","tag--csrf","tag--xss"],"_links":{"self":[{"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/posts\/139657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/comments?post=139657"}],"version-history":[{"count":2,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/posts\/139657\/revisions"}],"predecessor-version":[{"id":139660,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/posts\/139657\/revisions\/139660"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/media\/139659"}],"wp:attachment":[{"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/media?parent=139657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/categories?post=139657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aiacademy.info\/blog\/wp-json\/wp\/v2\/tags?post=139657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}