Struts2 рдкрд░ рд╣рдорд▓рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ CVE-2013-2115

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




рдкреНрд░рд╛рд░рдВрднред



рдпрд╣ рдХрд╣рд╛рдиреА 16 рдЬреБрд▓рд╛рдИ рд╕реЗ рд╢реБрд░реВ рд╣реБрдИред рдореИрдВ рд╢рд╛рдВрддрд┐ рд╕реЗ рдореЗрдЯреНрд░реЛ рдореЗрдВ рд╕рд╡рд╛рд░ рд╣реБрдЖ рдФрд░ рдЗрд╕рд╣рд╛рдХ рдЕрд╕рд┐рдореЛрд╡ рдХреЛ рдкрдврд╝рд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдЪрд┐рддреНрд░рдг рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдмреАрдЪ, рдореИрдВрдиреЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдореЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдЪреАрдиреА рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдкрддреНрд░ рдорд┐рд▓рд╛ред рджреЛрд╕реНрддреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдЬ рд╕реНрдЯреНрд░рдЯреНрд╕ 2 рдореЗрдВ рдПрдХ рднреЗрджреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдерд╛, рднреЗрджреНрдпрддрд╛ рдиреЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рдЬреЛ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдкреВрд░реНрдг рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ (рдордирдорд╛рдиреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкреЗрд▓реНрдЦрд╕реЗ рд▓реЛрдЧ ... рдХрд░рдВрдЯ рдХрд╛ рджрд┐рди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреАрдиреА рд╣реИрдХрд░ рдлреЛрд░рдо рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдЬрд╣рд╛рдВ рдЕрдиреНрдп рдордЬрд╛рдХрд┐рдпрд╛ рд▓реЛрдЧреЛрдВ рдиреЗ "рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рд╣реИрдХ рдХрд┐рдпрд╛" рдЬреИрд╕реЗ рдкреВрд░реНрдг-рд╢реЛрд╖рдг рдХрд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдм рдпреЗ рд╕рднреА рдордЬрд╛рдХрд┐рдпрд╛ рд▓реЛрдЧ рдЗрд╕ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рддреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдврд╛рдВрдЪреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдЕрдкрдиреЗ рдкреИрд░ рдХреЛ рдорд░реЛрдбрд╝рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд░рдЪрдирд╛ рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдирд╕рд┐рдХ рд░реВрдк рд╕реЗ рддреЗрдЬ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рдЕрдм рдореИрдВ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рднрд╛рдЧрддрд╛ рд╣реВрдВ, рд▓реИрдкрдЯреЙрдк рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╡рд┐рдХреНрд░реЗрддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ - http://struts.apache.org/release/2.3.x/docs/s2-016.html ред рд╣рд╛рдВ, рджреЛрд╕реНрддреЛрдВ рдиреЗ рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рдереЛрдбрд╝рд╛ рдлрд╕рд╛рдирд╛ рдЙрджрд╛рд╣рд░рдг рднреА рдЬреЛрдбрд╝рд╛ред рдФрд░ ... рдпрд╣ рдлрд┐рд░ рд╕реЗ рдУрдЬреАрдПрдирдПрд▓ рд╣реИ ... рд╕реНрдЯреНрд░рдЯреНрд╕ 2 рдХреЛ рдУрдПрдирдЬреАрдПрди рдХреЗ рд╕рд╛рде рдЕрдирдиреНрдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

http://blog.o0o.nu/2010/07/cve-2010-1870-struts2xwork-remote.html (2010)
http://blog.o0o.nu/2012/01/cve-2011-3923-yet-another-struts2.html (2011)
https://communities.coverity.com/blogs/security/2013/05/29/struts2-remote-code-execution-via-ognl-injection (2013, рдордИ)

рдФрд░ рдлрд┐рд░ рдлрд┐рд░ рд╕реЗ ... рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░, рдорд╛рдорд▓рд╛ рд╕рдордп рд╕реЗ рд╕реАрдорд┐рдд рд╣реИ - рдЪреАрдиреА рдордВрдЪ рдкрд░, рдЬрдирддрд╛ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - "рд╕рднреА рдХреЗ рд▓рд┐рдП рд╢реЛрд╖рдг" - http://kuxoo.com/archives/260/ ред

рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдЪрд┐рддреНрд░рд▓рд┐рдкрд┐ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдирд╣реАрдВ рдЦреЛрд▓реЗрдЧрд╛ - рдЕрдкрдиреЗ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦреЗрдВ:

localhost/Struts2/test.action?redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{'netstat'})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#matt=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдордп рд╕реЗрдХрдВрдб рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭ рдЧрдП рд╣реИрдВ рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рд╕реНрдЯреНрд░рдЯреНрд╕ 2 рд╕реЗ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдХреНрд╖реЗрддреНрд░ред рдпреЗ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдордХрд╛рдЬреА рдХреНрд╖рдг рд╣реИрдВ, рдПрдХ рд░рд╛рд╕реНрддрд╛ рдпрд╛ рджреВрд╕рд░рд╛ рдЬрд╣рд╛рдБ рднреА рд╕рдВрднрд╡ рдерд╛ - рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд░реЛрд▓ рдХрд┐рдП рдЧрдП рдереЗ, рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ IPS / WAF рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреАрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╕реЗрд╡рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ - рд╕рд╛рдорд╛рдиреНрдп рдлреИрд╕рд▓реЛрдВ рдореЗрдВ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдЦрддрд░реЗ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛рдП - рдмрд╣реБрдд рдХреБрдЫ, рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдмрдЪрд╛рд╡ рдХрд░рдирд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдорд▓реЗред

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

рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛



рдЗрд╕ рд╕рдордп, рдЗрдВрдЯрд░рдиреЗрдЯ - рдмреНрд▓реЙрдЧ рдЬрдЧрдд рдореЗрдВ, рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рднреА рд╢рд╛рдВрдд рдерд╛ред рдпрд╣ рдЖрдИрдмреА рд╕рдореБрджрд╛рдп рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ - рдмрд╣реБрдд рд╢рд╛рдВрдд, рд╕реНрдЯреНрд░рдЯреНрд╕ 2 рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЕрдЬреАрдм рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯреНрд╡реАрдЯ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдВрдд рдерд╛, рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рддрд╛рдХрдд рдФрд░ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рд▓рдбрд╝ рд░рд╣реЗ рдереЗред
рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж (21 рдпрд╛ 22 рддрд╛рд░реАрдЦ рдХреЛ), рдбреЗрд╡рд▓рдкрд░.apple.com рдХреЗ рд╣реИрдХ рд╣реЛрдиреЗ рдХреА рдЦрдмрд░ рд╕реЗ рд╣рдбрд╝рдХрдВрдк рдордЪ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛, рддрднреА рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдкреЛрд░реНрдЯрд▓ Struts2 рдкрд░ рдерд╛ред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рд╡реЗ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рд╛ ... рдмреЗрд╢рдХ, рдПрдХ рдЦрдмрд░ рдереА рдХрд┐ рдПрдХ рд╢реЛрдзрдХрд░реНрддрд╛ рдиреЗ рднреЗрджреНрдпрддрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреА рдереА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕ рдЖрджрдореА рдиреЗ рдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рднрд╛рдЬрди рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛, рдФрд░ рдПрдХ рдмрдЧ рдХреА рд╕реВрдЪрдирд╛ рджреА, рд▓реЗрдХрд┐рди рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд╣реИрдХ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдиреНрдпрдерд╛, рд╡реЗ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддреЗред рдФрд░ рдлрд┐рд░ рдЗрд╕ рдЖрджрдореА рдиреЗ рдЕрдкрдиреЗ рдкреНрд░рд┐рдп рдХреЗ рд╕рдореНрдорд╛рди рдореЗрдВ рдкреАрдЖрд░ рдЕрднрд┐рдпрд╛рди рдХреЛ рдХреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрд╕рдиреЗ рдПрдкреНрдкрд▓ рдХреЛ рд╣реИрдХ рдХрд░ рд▓рд┐рдпрд╛ред 24 рд╡реАрдВ -25 рд╡реАрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛, рдПрдЯреА рдСрд▓реНрдЯ рдиреЗ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдХреЛ рдЦреБрдж рдХреЛ рдЦрд░реЛрдВрдЪ рдФрд░ рддрдп рдХрд┐рдпрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрдбрд╝реЗ рдмреЗрд▓рд╛рд░реВрд╕реА рдмреИрдВрдХ рдиреЗ рдХреЗрд╡рд▓ 25 рддрд╛рд░реАрдЦ рдХреЛ рддрдп рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ QIWI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ - http://habrahabr.ru/company/qiwi/blog/187724/#comment_6524512 ред рд░реВрд╕ рдореЗрдВ рдмрд╛рдХреА рд╕рдм рд╢рд╛рдВрдд рдФрд░ рдЪрд┐рдХрдирд╛ рд╣реИред рд╕рд░рдХрд╛рд░реА рдЖрджреЗрд╢реЛрдВ рдХреА рдорд┐рд▓реА рд╣реБрдИ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрдордЬреЛрд░ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рд░реВрд╕реА рд╕рдВрдШ рдХреЗ рдордВрддреНрд░рд╛рд▓рдп рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛, рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рд╕рд╛рдЗрдмрд░ рдпреБрджреНрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реБрдХрд╛рддреНрд╕реНрдХреА рдиреЗ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛ - рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдЕрдВрдЬреАрд░, рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рдХрд┐ рдЪреАрдиреА рдХреЙрдорд░реЗрдб рд╢реАрд░реНрд╖ рдкрд░ рдмреИрдХрдбреЛрд░ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ - рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреАрдбреА рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░рдиреА рд╣реИред рдпрд╣ рджреБрдЦрдж рд╣реИ рдХрд┐ рджреЗрд╢ 0day рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╕рдмрд╕реЗ рддреАрд╡реНрд░ рд╕рдордп рдЕрд╡рдзрд┐ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз 1day рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреИрдЪ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рдордп рдмрд╛рдж! рд╕реАрдЖрдИрдПрд╕ рдмреИрдВрдХ рдЕрдзрд┐рдХ рддреНрд╡рд░рд┐рдд рдирд┐рдХрд▓реЗред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд░реВрд╕ рдореЗрдВ рд╣реА рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИ - рддреЛ рдЖрдк рдЧрд▓рдд рд╣реИрдВред рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдирд╣реАрдВ рдерд╛ рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдерд╛ - рдЕрдиреНрдп рджреЗрд╢реЛрдВ рдХреЗ рд╕рд░рдХрд╛рд░реА рд╕рдВрд╕рд╛рдзрди рдЕрднреА рднреА рдХрдордЬреЛрд░ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░ рд╣рдорд▓реЗ рд╕реЗ рднреМрддрд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдгрд╛рдо рд╣реЛрдВрдЧреЗред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ



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

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп



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

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


All Articles