XSS рд╣рдорд▓реЛрдВ рд╕реЗ php рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдХреЗрд╡рд▓ рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реИред рдЖрдзреБрдирд┐рдХ рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдмрд╛рд╣рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрдЪрд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдпрд╛ рдЙрдирдХреЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рдЦреНрдд рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдЬреБрдбрд╝реА рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ (рдХреНрд░реЙрд╕ рд╕рд╛рдЗрдЯ рд╕реНрдХреИрдЯрд░рд┐рдВрдЧ, XSS) рд╣реИ, рдЬреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рдВрдХреНрд░рдорд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди, рдПрдХ рд╡реЗрдм рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХрд╛ рд╕рдореНрдорд┐рд▓рди, рдХреБрдХреАрдЬрд╝ рдХреА рдЪреЛрд░реА, рд╕рддреНрд░ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реАред рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬреЛ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА, XSS рдХреЛ рдЕрдкрдиреА рддрд╛рдХрдд рд╕реЗ рд╡рд┐рд░реЛрдз рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ:
1. рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рд░рдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЛрдб рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрдирдореЗрдВ htmlspecialchar (), htmlentities (), рдФрд░ strip_tags () рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
$name = strip_tags($_POST['name']); $name = htmlentities($_POST['name'], ENT_QUOTES, "UTF-8"); $name = htmlspecialchars($_POST['name'], ENT_QUOTES);
PHP рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдп, рд╕реНрд╡-рдирд┐рд╣рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрдо рд╣реЛрддреЗ рд╣реИрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕реБрдзрд╛рд░ред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ OWASP рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдПрдкреАрдЖрдИ (ESAPI), HTML рдкреНрдпреВрд░рд┐рдлрд╛рдпрд░, рд░рд┐рдлреЙрд░реНрдо, рдореЛрдбрд╕рд┐рдЯреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!
2. рд╢реНрд╡реЗрддрд╕реВрдЪреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ "рдЬреЛ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ рд╡рд╣ рдирд┐рд╖рд┐рджреНрдз рд╣реИ"ред рдпрд╣ рд╕рднреА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдХреНрд╖реЗрддреНрд░ рд╕рддреНрдпрд╛рдкрди рддрдВрддреНрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реЗрдбрд░, рдХреБрдХреАрдЬ, рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рд╣рд┐рдбрди рдлрд╝реАрд▓реНрдбреНрд╕, рд╕рд╛рде рд╣реА рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рд▓рдВрдмрд╛рдИ, рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕, рдорд╛рдиреНрдп рд╡рд░реНрдг рдФрд░ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реЗрдмрд╕рд╛рдЗрдЯред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрддреНрд░, рд╣рд╛рдЗрдлрд╝рди рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреА-рдЖрд░реНрдХ рдирд╛рдо рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, PHP рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ "рд╕рдорд╛рдкреНрдд" рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдордп рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдпрд╣ рднреА рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрд╕реЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдХреНрд░рд┐рдп рд╕рд╛рдордЧреНрд░реА рдФрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
3. рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдХрд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб рд╕реЗ рдкрд╣рд▓реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ISO-8859-1 рдпрд╛ UTF-8) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
<?php header("Content-Type: text/html; charset=utf-8"); ?> <!DOCTYPE html> <html> <head> <title>harset</title> <meta charset="utf-8"> </head>
рдпрд╛ рдЕрдкрд╛рдЪреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА .htaccess рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
AddDefaultCharset UTF-8
рдпрджрд┐ http- рд╣реЗрдбрд░ рдпрд╛ рдореЗрдЯрд╛ рдЯреИрдЧ рдореЗрдВ рдХреЛрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреЗрдЬ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред HTML 5 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ JIS_C6226-1983, JIS_X0212-1990, HZ-GB-2312, JOHAB (рд╡рд┐рдВрдбреЛрдЬ рдХреЛрдб рдкреЗрдЬ 1361), рд╕рд╛рде рд╣реА ISO-2022 рдФрд░ EBCDIC рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдирдХреЛрдбрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ CESU-8, UTF-7, BOCU-1, рдпрд╛ SCSU рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА [1] рдХреЗ рд▓рд┐рдП рдХрднреА рдирд╣реАрдВ рдереЗред рдпрджрд┐ рдЯреИрдЧ рдЯреИрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ UTF-7 рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг HTML рдХреЛрдб рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ '<' рдФрд░ '' '' рдЬреИрд╕реЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдЫрд╛рдирддрд╛ рд╣реИред
4. HttpOnly рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрд╣ рдзреНрд╡рдЬ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреБрдХреАрдЬрд╝ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрдкрд▓рдмреНрдз рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИред
- php.ini [2] рдореЗрдВ:
session.cookie_httponly = True
- рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрдВрдХреНрд╢рди рд╕реЗрд╢рди_рд╕реЗрдЯ_рдХреЛрдЗрдХ_рдкрд░рдо () [3]:
void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = true ]]]] )
- рд╕реЗрдЯрдХреНрдпреВрдХреА () рдлрд╝рдВрдХреНрд╢рди [4] рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ:
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = true ]]]]]] )
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, XMLHttpRequest рдФрд░ рдЕрдиреНрдп рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ-рдХреБрдХреА рд╣реЗрдбрд░ рд╕рд╣рд┐рдд HTTP рд╣реЗрдбрд░ рдХреЛ рд░реАрдб рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ HttpOnly рдзреНрд╡рдЬ рд╕реЗрдЯ [5] рд╣реИред
5. рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ (рд╕реАрдПрд╕рдкреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдРрд╕реЗ рд╕реНрд░реЛрддреЛрдВ рдХреА "рд╢реНрд╡реЗрдд рд╕реВрдЪреА" рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирд╕реЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдПрд╕, рд╕реАрдПрд╕рдПрд╕, рдЪрд┐рддреНрд░ рдЖрджрд┐ред рдпрджрд┐ рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдХрд┐рд╕реА рд╡реЗрдм рдкреЗрдЬ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреА рдпрд╣ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕реНрд░реЛрддреЛрдВ рдХреА рдЕрдиреБрдордд рд╕реВрдЪреА рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░реЗрдВред
CSP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╛рдордЧреНрд░реА-рд╕реБрд░рдХреНрд╖рд╛-рдиреАрддрд┐ HTTP рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдПрдХ рдиреАрддрд┐ рднреЗрдЬрдиреА рд╣реЛрдЧреАред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
Content-Security-Policy: default-src 'self'; script-src trustedscripts.example.com style-src 'self' ajax.googleapis.com; connect-src 'self' https://api.myapp.com realtime.myapp.com:8080; media-src 'self' youtube.com; object-src media1.example.com media2.example.com *.cdn.example.com; frame-src 'self' youtube.com embed.ly
'рд╕рд╛рдордЧреНрд░реА-рд╕реБрд░рдХреНрд╖рд╛-рдиреАрддрд┐' рдЖрдзрд┐рдХрд╛рд░рд┐рдХ W3C рдЕрдиреБрдореЛрджрд┐рдд http рд╣реЗрдбрд░ рд╣реИ, рдЬреЛ Chrome 26+, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 24+ рдФрд░ рд╕рдлрд╛рд░реА 7 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред "рдПрдХреНрд╕-рдХрдВрдЯреЗрдВрдЯ-рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА-рдкреЙрд▓рд┐рд╕реА" HTTP рд╣реЗрдбрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 4-23 рдХреЗ рд▓рд┐рдП рдФрд░ IE 10-11 рдХреЗ рд▓рд┐рдП, "рдПрдХреНрд╕-рд╡реЗрдмрдХрд┐рдЯ-рд╕реАрдПрд╕рдкреА" рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЛрдо 14-25, рд╕рдлрд╛рд░реА 5.1-7 [6] рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ, рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд╕реАрдПрд╕рдкреА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рддреИрдирд╛рдд рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдиреАрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
6. рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкреИрда рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░реЗрдВред рдореИрдиреНрдпреБрдЕрд▓ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Nessus, Nikto рдФрд░ OWASP Zed Attack Proxy рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ XSS рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
7. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NoScriptред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рд╡реНрдпрд╛рдкрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рдореБрдЪреНрдЪрдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:1.
HTML рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯред HTML рдХреЗ рддрддреНрд╡ред2.
PHP: рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЯреНрдпреВрдирд┐рдВрдЧред3.
PHP: session_set_cookie_paramsред4.
PHP: setcookieред5.
OWASP HttpOnlyред6.
рдХреНрдпрд╛ рдореИрдВ рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред7.
PHP рд╕реБрд░рдХреНрд╖рд╛ рдЧрд╛рдЗрдбред8.
2011 рд╕реАрдбрдмреНрд▓реНрдпреВрдИ / рдПрд╕рдПрдПрдирдПрд╕ рд╢реАрд░реНрд╖ 25 рд╕рдмрд╕реЗ рдЦрддрд░рдирд╛рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВред CWE-79: рд╡реЗрдм рдкреЗрдЬ рдЬрдирд░реЗрд╢рди ('рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ') рдХреЗ рджреМрд░рд╛рди рдЗрдирдкреБрдЯ рдХрд╛ рдЕрдиреБрдЪрд┐рдд рдЙрдкрдпреЛрдЧред9.
рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХрд╛ рдкрд░рд┐рдЪрдпред10.
OWASP XSSред11.
OWASP рдЯреЙрдк 10 2013-A3-рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ (XSS)ред12.
OWASP XSS рдлрд╝рд┐рд▓реНрдЯрд░ рдПрд╡рд┐рдЬрд╝рди рдЪреАрдЯ рд╢реАрдЯредрд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ: рдкреЗрдВрдЯреЗрд╕реНрдЯрд┐рдЯ рдлреНрд░реАрд▓рд╛рдВрд╕ рд╡рд░реНрдХрд░,
рд╕рд░реНрдЧреЗрдИ рд╕реНрдЯреЛрд░реНрдЪрдХ