CSP рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд╣реИред
CSP рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рд╣реЗрдбрд░ рдореЗрдВ рдкреВрд░реНрд╡-рдЕрдиреБрдореЛрджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, XSS рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрддреНрдХреГрд╖реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ред рд╣рдорд▓рд╛рд╡рд░ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрдирд▓рд╛рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдЕрдХреНрд╖рдо рд╣реИрдВ ...
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрддрд░ рдкрд░, рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд┐рд╖рд┐рджреНрдз рд╣реЛрдВрдЧреЗред рдЗрд╕ рддрдВрддреНрд░ рдХреЗ рд▓рд╛рдн рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХрд╛ рддрдереНрдп рдкрддрд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИ! рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
function does_redirect(url, cb){ var allowed = url.split('?')[0]; var frame = document.getElementById('playground'); window.cb = cb; window.tm = setTimeout(function(){ window.cb(false); },3000); frame.src = 'data:text/html,<meta http-equiv="Content-Security-Policy" content="img-src '+allowed+';"><img src="'+url+'" onerror=parent.postMessage(1,"*") onload=parent.postMessage(2,"*")>' }
рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рджреВрд╕рд░реЗ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1 рд╕реЗ рдПрдХ рд▓рд╛рдЦ рддрдХ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рдХреА рдЧрдгрдирд╛ рднреА рдХрд░рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛)
рдбреЗрдореЛ рдкреГрд╖реНрда рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВредрдЗрд╕ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ "рд╕рд╣реА рдврдВрдЧ рд╕реЗ" рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рд╕реАрдПрд╕рдкреА рдХрд╛рд░реНрдп рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рдСрдирд▓реЛрдб рдШрдЯрдирд╛рдУрдВ рдХрд╛ "рдЕрдиреБрдХрд░рдг" рд╣реИ, рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: URL, рдЬреИрд╕рд╛ рдХрд┐
XSS рдСрдбрд┐рдЯрд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдмрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╡реИрд╕реЗ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдЧ, рдФрд░ рдЕрднреА рднреА рддрдп рдирд╣реАрдВ рд╣реИ)ред
рдлрд┐рд▓рд╣рд╛рд▓, рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рдкреЗрд╢ рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рдо рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдФрд░ рдЪрд╛рд╣реЗ рд╡рд╣ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╣реЛред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рд╕рдлрд╛рд░реА рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, IE рдореЗрдВ рд╕рдорд░реНрдерди рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред