рдХрдореНрдкреНрдпреБрдЯрд░ рд╕рдВрд╕рд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд┐рдХреНрдиреЗ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрдХреЛ рджрд┐рдорд╛рдЧ рдХреЗ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫ?

рджрд┐рдирдХреЛ рджрдпрд╛рд▓реБ рд╕рдордпред

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

рдЙрджреНрджреЗрд╢реНрдп


рдХреЗрд╣рд┐ рдЖрд╡рд╢реНрдпрдХ рднрдпреЛ:

  • рд╡рд░реНрдЧрд╣рд░реВ рдмрд╛рд╣реЗрдХ, рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд░рд╛рдЗрдорд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдпреЛ
  • рджреБрдИ рд╢рдмреНрджрдХрд╛ рдзреЗрд░реИ рд░рд╛рдЗрдорд╣рд░реВ рдкрд╛рд░ рдЧрд░реЗ

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

рдирд┐рд░реНрдгрдп


рдорд▓рд╛рдИ рдпрд╕реНрддреЛ рд▓рд╛рдЧреНрдереНрдпреЛ рдХрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдмрд╛рд╢рдорд╛ рд▓рд┐рдкрд┐ рд▓реЗрдЦреНрдиреБ рд╣реЛ рдЬреБрди рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рд░рд╛рдЗрдо рдЬрдирд░реЗрдЯрд░ - HOST рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдореБрдЦреНрдп рд░реВрдкрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╣рд┐рдЬреНрдЬреЗрджреНрд╡рд╛рд░рд╛ рд╣реЛрдЗрди, рд╡реНрдпрдЮреНрдЬрдирджреНрд╡рд╛рд░рд╛ рдЪрдпрди рдЧрд░реНрджрдЫред рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░рдХреЛ HOST? рдХрд┐рдирднрдиреЗ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕рд╛рдЗрдЯрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо рд╕рдВрдХреЗрдд рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╣реЛ рднрдиреЗрд░ рднрдиреНрдиреЗрдЫрдиреНред рдХрд┐рди рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЬрд╛рд░реА рдЫреИрди? рдкрд╣рд┐рд▓реЛ, рд╡реНрдпрдЮреНрдЬрдирдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрд╡рд┐рддрд╛рд╣рд░реВ рдЫрдиреЛрдЯ рдЧрд░реНрдиреЗ рдЖрдлреНрдиреЛ рдлрд╛рдЗрджрд╛рдХреЛ рдмрд╛рдмрдЬреБрдж, рдЙрд╣рд╛рдБрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдЕрдХреНрд╕рд░ рд╡рд░реНрдЧрд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рджреЛрд╕реНрд░реЛ, рддрдкрд╛рдИрдВрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдЖрдлреНрдиреЛ рджрд┐рдорд╛рдЧрд╕рдБрдЧ рд╕реЛрдЪреНрдиреБ рдкрд░реНрдЫ, рдЯреНрдпрд╛рдмрд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рджреБрдИ рд╢рдмреНрджрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╡рд┐рддрд╛ рдЦреЛрдЬреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪреАрдорд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рд╢рдмреНрджрд╣рд░реВ рд╕рдореНрдЭрди рдКрд░реНрдЬрд╛ред

рдмрд▓рд┐рдпреЛ рд░рд╛рдЗрдорд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ

рдорд▓рд╛рдИ рдХреЗ рдерд╛рд╣рд╛? рдорд▓рд╛рдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдерд╛рд╣рд╛ рдЫ рд╡рд┐рдЬреЗрдЯ, рдЬрд╕рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдорд╛ рдкреГрд╖реНрда рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрджрдЫред рдареАрдХ рдЫ, рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реМрдВ - рд╣рд╛рдореАрд▓реЗ rhyming рд╢рдмреНрджрдХреЛ рдирд╛рдордХреЛ рдлрд╛рдЗрд▓рдорд╛ HTML рдкреГрд╖реНрда рдкрд╛рдЙрдБрдЫреМрдВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рдпрд╣рд╛рдБ" рд╢рдмреНрдж рдЦреЛрдЬреМрдВ:

wget https://HOST/rifma/╨╖╨┤╨╡╤Б╤М

рддрд░ рдорд▓рд╛рдИ рдХреЗрд╡рд▓ рд╢рдмреНрджрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЪрд╛рд╣рд┐рдиреНрдЫ, рдо рдХрд╕рд░реА рдЕрд░реВ рд╕рдмреИрдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрди рд╕рдХреНрдЫреБ? рд╣рд╛рдореА рд╣реЗрд░реНрдЫреМрдВ рд░ рд╣реЗрд░реНрдЫреМрдВ рдХрд┐ рд╢рдмреНрджрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдврд╛рдБрдЪрд╛рдорд╛ рдЫ, рдпреЛ рдЬрддрд┐рд╕реБрдХреИ рдЕрдиреМрдареЛ рдХрд┐рди рдирд╣реЛрд╕реН, рд╕реВрдЪреАрдХреЛ рд░реВрдкрдорд╛, рд░ рд╢рдмреНрджрд╣рд░реВ рдЯреНрдпрд╛рдЧрд╣рд░реВрдорд╛ рдЫрдиреНред рдЦреИрд░, рд╣рд╛рдореАрд╕рдБрдЧ рдареВрд▓реЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЫред sed - рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рд▓реЗрдЦреМрдВ:

cat $word | grep '<li>' | sed -e "s%<li>%%" | sed -e "s%</li>%%" | sed -e "s/ //g" | sed -e "/^$/d" 1> $word

рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдЯреНрдпрд╛рдЧ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд╢рдмреНрдж рдлрд╛рдЗрд▓рдмрд╛рдЯ рд▓рд╛рдЗрдирд╣рд░реВ рдЪрдпрди рдЧрд░реНрдЫреМрдВ - рд╣рд╛рдореАрд▓реЗ рдЦрд╛рд▓реА рдЯреНрдпрд╛рдЧрд╣рд░реВ рд░ рд╢рдмреНрджрд╣рд░реВрд╕рдБрдЧ рд▓рд╛рдЗрдирд╣рд░реВ рдкрд╛рдЙрдБрдЫреМрдВред рд╣рд╛рдореАрд▓реЗ рдЯреНрдпрд╛рдЧ рдЖрдлреИ рд╣рдЯрд╛рдЙрдБрдЫреМрдВ рд░ рдпрд╕рдХреЛ рдмрдиреНрдж рдЧрд░реНрдиреЗ рдПрдХ - рдпрд╣рд╛рдБ рд╕реНрд▓реНрдпрд╛рд╢рдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рддреАрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рдХрд┐рдирднрдиреЗ рдЯреНрдпрд╛рдЧрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрд▓реНрдпрд╛рд╢ рдЫ, рддреНрдпрд╕реИрд▓реЗ sed рддрд┐рдореАрд▓рд╛рдИ рдЕрд▓рд┐рдХрддрд┐ рдкрдирд┐ рдмреБрдЭреЗрдиред рд░ рдмреНрдпрд╛рдЬ рд╕рдВрдЧ рд╕рдмреИ рдареАрдХ рдЫред рд╣рд╛рдореА рдлрд╛рдЗрд▓рдмрд╛рдЯ рд╕рдмреИ рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫреМрдВ, рдЦрд╛рд▓реА рд░реЗрдЦрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫреМрдВред Voila - рд╢рдмреНрджрд╣рд░реВрдХреЛ рдПрдХ рддрдпрд╛рд░ рд╕реВрдЪреАред

рдЕрдиреНрддрд┐рдо рдЕрдХреНрд╖рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░рд╛рдЗрдо рдЧрд░реНрдиреЗ рд╢рдмреНрджрд╣рд░реВ рд╣рдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдореВрд▓ рд╢рдмреНрджрдмрд╛рдЯ рдЕрдиреНрддрд┐рдо рджреБрдИ рдЕрдХреНрд╖рд░рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕реВрдЪреА рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН:

squad=${word:((${#word}-2)):2}
cat $word | sed -e "/.$squad$/d" 1> $word

рд╣рд╛рдореА рд╣реЗрд░реНрдЫреМрдВ, рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫреМрдВ - рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрдЫ... рддреНрдпрд╕реЛрднрдП, "рдкреНрд▓реЗ" рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪреА рдХрд╣рд╛рдБ рдЫ? рд░ "рдо рдЬрд╛рдБрджреИрдЫреБ" рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐? рдлрд╛рдЗрд▓ рдЦрд╛рд▓реА рдЫ! рд░ рдпреЛ рд╕рдмреИ рд╣реЛ рдХрд┐рдирднрдиреЗ рдпреА рд╢рдмреНрджрд╣рд░реВ рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╣реБрдиреН, рд░ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд╕рдБрдЧ рддрд╛рд▓рдореЗрд▓ рдЧрд░реНрдиреЗрд╣рд░реВрд▓рд╛рдИ рдХреЗ рдЧрд░реНрдЫрдиреНред рдХреНрд░рд┐рдпрд╛ рдХрд╡рд┐рддрд╛ рдкрдирд┐ рд╡рд░реНрдЧ рдХрд╡рд┐рддрд╛ рднрдиреНрджрд╛ рдЦрд░рд╛рдм рдЫ, рдХрд┐рдирдХрд┐ рд░реВрд╕реА рднрд╛рд╖рд╛рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдмрдвреА рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЫрдиреН, рд░ рддреА рд╕рдмреИрдХреЛ рдПрдЙрдЯреИ рдЕрдиреНрддреНрдпрд╣рд░реВ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рдЕрдиреНрддреНрдпрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реЗрдкрдЫрд┐ рдЕрдиреНрддрд┐рдо рдлрд╛рдЗрд▓рдорд╛ рдерд┐рдПрдирдиреНред

рддрд░, рд╣рд╛рдореА рд╣рддрд╛рд░рдорд╛ рдЫреИрдиреМрдВред рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рд░рд╛рдЗрдорд╣рд░реВ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рд╕рдЩреНрдЧреАрддрд╣рд░реВ рдкрдирд┐ рдЫрдиреН, рдЬреБрди рдХрд╣рд┐рд▓реЗрдХрд╛рдБрд╣реА рдХрд╡рд┐рддрд╛ рднрдиреНрджрд╛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рд▓рд╛рдЧреНрджрдЫ - рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рд╕рдВрдЧрдд рд╣реБрдиреН (рдлреНрд░рд╛рдиреНрд╕реЗрд▓реА рдПрд╕реЛрдирд╛рдиреНрд╕, рд▓реНрдпрд╛рдЯрд┐рди рдПрд╕реЛрдиреЛрдмрд╛рдЯ - рдо рдзреБрдирдорд╛ рдЖрд╡рд╛рдЬ рджрд┐рдиреНрдЫреБ)ред

рд╣рд╛рдореА рд╕рдВрдЧрдд рдкрд╛рдЙрдБрдЫреМрдВ

рдпрд╣рд╛рдБрдмрд╛рдЯ рд░рдорд╛рдЗрд▓реЛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ: рдПрд╕реЛрдирдиреНрд╕рд╣рд░реВ рдЕрд▓рдЧ URL рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ, рд░ рдПрдЙрдЯреИ рдкреГрд╖реНрдардорд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрд░, HTTP рдЕрдиреБрд░реЛрдз рдкрдард╛рдПрд░ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрд░ред рдо рдХрд╕рд░реА рднрдиреНрди рд╕рдХреНрдЫреБ рд╡рд┐рдЬреЗрдЯ'рдХреЗ рддрдкрд╛рдЗрдБ рдмрдЯрди рдерд┐рдЪреНрдиреБрд╣реБрдиреНрдЫ? рддрд░ рдмрд╛рдЯреЛ рдЫреИрдиред рджреБрдГрдЦрдХреЛ рдХреБрд░рд╛ред

рд▓рд╛рдЗрдирдорд╛ URL рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рднрдЗрд░рд╣реЗрдХреЛ рджреЗрдЦреЗрд░, рдореИрд▓реЗ assonances рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реЗрдкрдЫрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗ рдерд┐рдпреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрдВ рд░ рдпрд╕рд▓рд╛рдИ рдирдпрд╛рдБ рдмреНрд░рд╛рдЙрдЬрд░ рдЯреНрдпрд╛рдмрдорд╛ рдЯрд╛рдБрд╕реЗрдВ - рдмрд▓рд┐рдпреЛ рд░рд╛рдЗрдорд╣рд░реВ рдЦреБрд▓реНрдпреЛред рддреНрдпреЛ рд╣реЛрдЗрдиред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдореИрд▓реЗ рд╕реЛрдЪреЗ, рдпрд╕рд▓реЗ рд╕рд░реНрднрд░рд▓рд╛рдИ рдлрд░рдХ рдкрд░реНрджреИрди рдХрд┐ рдпрд╕рд▓рд╛рдИ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╡рд╛ рд╡реНрдпрдХреНрддрд┐рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╣рд╛рддрд▓реЗ рдЯрд╛рдЗрдк рдЧрд░реНрджрдЫред рддрд░? рдХрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рдпрд╕рд▓рд╛рдИ рдЬрд╛рдБрдЪ рдЧрд░реМрдВред

рдХрд╣рд╛рдБ рдкрдард╛рдЙрдиреЗ ? рдХреЗ рдкрдард╛рдЙрдиреЗ ? рд╕рд░реНрднрд░ рдЖрдИрдкреАрдорд╛ HTTP рдЕрдиреБрд░реЛрдз, рддреНрдпрд╣рд╛рдБ GET рдЬрд╕реНрддреЛ рдХреЗрд╣рд┐ рдЫ ... рддреНрдпрд╕рдкрдЫрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ HTTP/1.1 рдЫ ... рд╣рд╛рдореАрд▓реЗ рдмреНрд░рд╛рдЙрдЬрд░рд▓реЗ рдХреЗ рдкрдард╛рдЙрдБрдЫ рд░ рдХрд╣рд╛рдБ рдкрдард╛рдЙрдБрдЫ рд╣реЗрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН wireshark, рдЯреНрд░рд╛рдлрд┐рдХ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН:

0040 37 5d a3 84 27 e7 fb 13 6d 93 ed cd 56 04 9d 82 7]┬г.'├з├╗.m.├н├НV...
0050 32 7c fb 67 46 71 dd 36 4d 42 3d f3 62 1b e0 ad 2|├╗gFq├Э6MB=├│b.├а.
0060 ef 87 be 05 6a f9 e1 01 41 fc 25 5b c0 77 d3 94 ├п.┬╛.j├╣├б.A├╝%[├Аw├У.

рдЙ... рдХреЗ? рдУрд╣реЛ, рд╣рд╛рдореАрд╕рдБрдЧ HTTPS рдЫред рдХреЗ рдЧрд░реНрдиреЗ? рдЖрдлреИрдорд╛ MITM рдЖрдХреНрд░рдордг рд╕реБрд░реБ рдЧрд░реНрдиреЗ? рдЖрджрд░реНрд╢ рд░реВрдкрдорд╛, рдкреАрдбрд┐рдд рдЖрдлреИрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдмреНрд░рд╛рдЙрдЬрд░ рд╕рд░реНрдл рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдкрдЫрд┐, рдореИрд▓реЗ рдЕрдиреНрддрддрдГ рдЕрдиреБрд░реЛрдз рдЖрдлреИрдВ рд░ рдареЗрдЧрд╛рдирд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реЗред рдЬрд╛рдиреБрд╣реЛрд╕реН:

рдЯрд░реНрдорд┐рдирд▓ рд╕рдВрдЧ рд╡рд╛рд░реНрддрд╛

telnet IP PORT
Trying IP...
Connected to IP.
Escape character is '^]'.
GET /rifma/%D0%BC%D0%B0%D1%82%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
Accept-Language: en-US,en;q=0.5
X-Requested-With: XMLHttpRequest
Connection: close

HTTP/1.1 400 Bad Request
Server: nginx/1.8.0
Date: Sun, 03 Nov 2019 20:06:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 270
Connection: close

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
Connection closed by foreign host.

рд╣реЗ рд╣реЗрд╣реЗрд╣реЗред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдореИрд▓реЗ HTTPS рдкреЛрд░реНрдЯрдорд╛ рдирдЧреНрди HTTP рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдБрджрд╛ рдореИрд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗрдХреЛ рдерд┐рдПрдБред рдХреЗ рд╣рд╛рдореАрд▓реЗ рдЕрдм рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫ? рдпреЛ рд╕рдмреИ RSA рдХреБрдЮреНрдЬреАрд╣рд░реВ, рддреНрдпрд╕рдкрдЫрд┐ SHA256 рд╕рдБрдЧ рдЧрдбрдмрдбред рдХрд┐рди, рддреНрдпрд╣рд╛рдБ рдЫ рдЦреБрд▓рд╛ SSL рддреНрдпрд╕реНрддрд╛ рдЪреАрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред рдард┐рдХ рдЫ, рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдерд╛рд╣рд╛ рдЫ, рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рд░реЗрдлрд░рд░ рд░ рдХреБрдХреА рдлрд┐рд▓реНрдбрд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗрдЫреМрдВ - рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдЙрдиреАрд╣рд░реВрд▓реЗ рдпрд╕ рдХреБрд░рд╛рд▓рд╛рдИ рдзреЗрд░реИ рдЕрд╕рд░ рдЧрд░реНрджреИрдирдиреН:

рдЯрд░реНрдорд┐рдирд▓ рд╕рдВрдЧ рд╡рд╛рд░реНрддрд╛

openssl s_client -connect IP:PORT
{╨Т╤Б╤П╨║╨╕╨╡ ╨║╨╗╤О╤З╨╕, ╤Б╨╡╤А╤В╨╕╤Д╨╕╨║╨░╤В╤Л}
GET /rifma/%D0%B7%D0%B4%D0%B5%D1%81%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/javascript,text/html,application/xml,text/xml,*/*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Date: Sun, 03 Nov 2019 20:34:33 GMT
Set-Cookie: COOKIE
X-Powered-By: Phusion Passenger 5.0.16
Server: nginx/1.8.0 + Phusion Passenger 5.0.16
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: block-all-mixed-content
Content-Encoding: gzip

рдХрдореНрдкреНрдпреБрдЯрд░ рд╕рдВрд╕рд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд┐рдХреНрдиреЗ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрдХреЛ рджрд┐рдорд╛рдЧ рдХреЗ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫ?

рдпреЛ рдХреЗ рд╣реЛ, рд╕рд░реНрднрд░рдорд╛ рдХрд╕рдо рдЦрд╛рдиреЗ? рдареАрдХ рдЫ, рдХрдореНрддрд┐рдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдорд▓рд╛рдИ 200 OK рдЬрд╡рд╛рдл рджрд┐рдП, рдЬрд╕рдХреЛ рдорддрд▓рдм рдХреБрдХреАрд╣рд░реВ рд░ рд░реЗрдлрд░рд░рд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рдЕрд╕рд░ рдЧрд░реНрджреИрдиред рдХрдореНрдкреНрд░реЗрд╕рди gzip рд╣реЛ, рддрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрджрд╛, ASCII рд╡рд░реНрдгрд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реБрдиреНрдЫрдиреНред рдареНрдпрд╛рдХреНрдХреИ, рддрдкрд╛рдИрдВ рд░реЗрдЦрд╛ рд╣рдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╕реНрд╡реАрдХрд╛рд░-рдЗрдиреНрдХреЛрдбрд┐рдЩред рд╕рдмреИ рдард┐рдХ рдЫ - рд╣рд╛рдореАрд▓реЗ HTML рдХрд╛рдЧрдЬрд╛рдд рдкрд╛рдЙрдБрдЫреМрдВ, рдЕрдм assonances рд╕рдВрдЧред рддрд░ рдпрд╣рд╛рдБ рджреБрдИрд╡рдЯрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЫрдиреН: рдХрд╕рд░реА OpenSSL рдЪрд▓рд╛рдЙрдиреЗ рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рдорд╛ рдбрд╛рдЯрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ? рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╕рд░реА рдкрдвреНрдиреЗ рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐ рд╣рд╛рдореА рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ "рд╢реЗрд▓" рдорд╛ рд░рд╣рдиреНрдЫреМрдВ? рдпрджрд┐ рддрдкрд╛рдЗрдБ рджреЛрд╕реНрд░реЛ рд╕рдВрдЧ рдХреЗрд╣рд┐ рд╕рдВрдЧ рдЖрдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдкрд╣рд┐рд▓реЛ рд╕рдВрдЧ ...

рддреНрдпрд╣рд╛рдБ рднрдПрдХреЛ рд░рд╛рдореНрд░реЛ рдЫ HabrрдЬрд╣рд╛рдБ рдореИрд▓реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрдвреЗрдВ рдЖрд╢рд╛, рдЬрд╕рд▓реЗ рдорд╛рдирд╡ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрдирд╛рдЙрдБрдЫред рдПрдЙрдЯрд╛ рдЯреЛрд▓реА рд╣реБрдиреБ рдЕрдЭ рдЖрдХрд░реНрд╖рдХ рдЫ рд╕реНрд╡рдд: рдЕрдкреЗрдХреНрд╖рд╛, рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджреИ рдЖрд╢рд╛ рддрдкрд╛рдИрдВрдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд▓рд┐рдкрд┐ред рдард┐рдХ рдЫ, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдпреЛ рд╕рдмреИ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рд▓рд┐рдкрд┐ рдЫред рдХреЗрд╡рд▓ рдЙрд╣рд╛рдБ рдзреЗрд░реИ рдареВрд▓реЛ рд╣реБрдиреБрд╣реБрдиреНрдЫ, рд░ рд╕рдмреИ рдХрд╛рд░рдгрд▓реЗ рдЦреБрд▓рд╛ SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ, рдХреБрдЮреНрдЬреАрд╣рд░реВ, рд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЖрд╢рд╛ рдпреЛ рд╕рдмреИрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХреЛ рдЫред рдХреЗ рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдЪрд╛рд╣рд┐рдиреНрдЫ? рдЫреИрдиред рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрддрд┐рдо рд▓рд╛рдЗрди рдмреНрд░реЗрдХ 'r' рдЫреЛрдбреЗрд░ рд╕рдореНрдкреВрд░реНрдг рдкрд╣рд┐рд▓реЛ рдкреНрд░рдореНрдкреНрдЯ рд╣рдЯрд╛рдЙрдБрдЫреМрдВред рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд░реЛрдзрдмрд╛рдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдиреНрдЯ рд░ рд╕реНрд╡реАрдХрд╛рд░ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкрдирд┐ рд╣рдЯрд╛рдЙрдБрдЫреМрдВ - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреЗрд╣реА рдЕрд╕рд░ рдЧрд░реНрджреИрдирдиреНред рддреНрдпрд╕реИрд▓реЗ, рд╕реБрд░реБ рдЧрд░реМрдВред рд▓рд┐рдкрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рдмрд╣реБрдореВрд▓реНрдп HTML рдХрд╛рдЧрдЬрд╛рдд рдХрд╣рд╛рдБ рдЫ? рдЖрд╢рд╛ рдЦрд╛рдпреЛред рдЙрд╕рд▓рд╛рдИ рдереБрдХрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ:

set results $expect_out(buffer)

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдЕрдиреНрддреНрдп рд╣реБрдиреБ рдЕрдШрд┐ - рдпрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдпрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдЦрд┐рдиреЗрдЫ рдЖрд╢рд╛'om рдЖрджреЗрд╢ рд░ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рддред рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рдпреЛ рдЬрд╕реНрддреИ рдХреЗрд╣рд┐:

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдЕрдкреЗрдХреНрд╖рд╛

#!/usr/bin/expect -f

set timeout -1
spawn openssl s_client -connect IP:PORT
match_max 100000
expect -exact "
---r
"
send -- "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1rHost: HOSTrAccept-Language: en-US,en;q=0.5rX-Requested-With: XMLHttpRequestrConnection: close"
expect -exact "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1r
Host: HOSTr
Accept-Language: en-US,en;q=0.5r
X-Requested-With: XMLHttpRequestr
Connection: close"
send -- "r"
set results $expect_out(buffer)
expect -exact "r
"
send -- "r"
expect eof

рддрд░ рддреНрдпреЛ рд╕рдмреИ рд╣реЛрдЗрди! рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рд░реВрдкрдорд╛, рд╕рдмреИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рдЕрдиреБрд░реЛрдз URL рд╕реНрдерд┐рд░ рдерд┐рдпреЛ, рддрд░ рдпреЛ URL рд╣реЛ рдЬреБрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ рдЬреБрди рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐ assonances рд╕рдВрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╣реБрдиреЗрдЫред рд░ рдпрд╕реИрд▓реЗ рд╣рд╛рдореА ASCII рдорд╛ "%d0%b7%d0%b4%d0%b5%d1%81%d1%8c" рд╡рд╛ UTF-8 рдорд╛ "рдпрд╣рд╛рдБ" рд╢рдмреНрдж рдЦреЛрдЬреНрдиреЗрдЫреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмрд╛рд╣рд┐рд░ рдЖрдЙрдБрдЫред рдХреЗ рдЧрд░реНрдиреЗ? рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдХреЗрд╡рд▓ рд╣рд░реЗрдХ рдкрдЯрдХ рдирдпрд╛рдБ рд▓рд┐рдкрд┐ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд╛рдереАрд╣рд░реВ! рдЖрдм рдирд╛рдИ рд╕реНрд╡рдд: рдЕрдкреЗрдХреНрд╖рд╛'рдУрдо, рд░ рд╕рд╣рдпреЛрдЧрдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐рдзреНрд╡рдирд┐, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореНрд░реЛ рдирдпрд╛рдБрдорд╛, рд╢рдмреНрдж рдмрд╛рд╣реЗрдХ рдХреЗрд╣рд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрдиред рд░ рдирдпрд╛рдБ рд╕рдорд╕реНрдпрд╛ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдмрд╛рдБрдЪреНрдиреБрд╣реЛрд╕реН: рд╣рд╛рдореА рдХрд╕рд░реА рдмреБрджреНрдзрд┐рдорд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рд┐рд░рд┐рд▓рд┐рдХрдмрд╛рдЯ URL рдврд╛рдБрдЪрд╛рдорд╛ рд╢рдмреНрдж рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ? рдЯрд░реНрдорд┐рдирд▓рдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╣реА рдЫреИрдиред рдареАрдХ рдЫ, рдпреЛ рдареАрдХ рдЫ, рд╣рд╛рдореА рдпреЛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд╣реИрди? рд╕рдХреНрдЫ:

рд╣реЗрд░ рдо рдХреЗ рдЧрд░реНрди рд╕рдХреНрдЫреБ!

function furl {
furl=$(echo "$word" | sed 's:╨Р:%d0%90:g;s:╨С:%d0%91:g;s:╨Т:%d0%92:g;s:╨У:%d0%93:g;s:╨Ф:%d0%94:g;s:╨Х:%d0%95:g;s:╨Ц:%d0%96:g;s:╨Ч:%d0%97:g;s:╨Ш:%d0%98:g;s:╨Щ:%d0%99:g;s:╨Ъ:%d0%9a:g;s:╨Ы:%d0%9b:g;s:╨Ь:%d0%9c:g;s:╨Э:%d0%9d:g;s:╨Ю:%d0%9e:g;s:╨Я:%d0%9f:g;s:╨а:%d0%a0:g;s:╨б:%d0%a1:g;s:╨в:%d0%a2:g;s:╨г:%d0%a3:g;s:╨д:%d0%a4:g;s:╨е:%d0%a5:g;s:╨ж:%d0%a6:g;s:╨з:%d0%a7:g;s:╨и:%d0%a8:g;s:╨й:%d0%a9:g;s:╨к:%d0%aa:g;s:╨л:%d0%ab:g;s:╨м:%d0%ac:g;s:╨н:%d0%ad:g;s:╨о:%d0%ae:g;s:╨п:%d0%af:g;s:╨░:%d0%b0:g;s:╨▒:%d0%b1:g;s:╨▓:%d0%b2:g;s:╨│:%d0%b3:g;s:╨┤:%d0%b4:g;s:╨╡:%d0%b5:g;s:╨╢:%d0%b6:g;s:╨╖:%d0%b7:g;s:╨╕:%d0%b8:g;s:╨╣:%d0%b9:g;s:╨║:%d0%ba:g;s:╨╗:%d0%bb:g;s:╨╝:%d0%bc:g;s:╨╜:%d0%bd:g;s:╨╛:%d0%be:g;s:╨┐:%d0%bf:g;s:╤А:%d1%80:g;s:╤Б:%d1%81:g;s:╤В:%d1%82:g;s:╤Г:%d1%83:g;s:╤Д:%d1%84:g;s:╤Е:%d1%85:g;s:╤Ж:%d1%86:g;s:╤З:%d1%87:g;s:╤И:%d1%88:g;s:╤Й:%d1%89:g;s:╤К:%d1%8a:g;s:╤Л:%d1%8b:g;s:╤М:%d1%8c:g;s:╤Н:%d1%8d:g;s:╤О:%d1%8e:g;s:╤П:%d1%8f:g;s:╤С:%d1%91:g;s:╨Б:%d0%81:g')}

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

рдзреЗрд░реИрдХреЛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрдиред рддрд▓реНрд▓реЛ рд░реЗрдЦрд╛

рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рд╡рд╛рд╕реНрддрд╡рдореИ рдХрдо рд╕реЗ рдХрдо рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдг рд╣реЛред рд╣рд╛рдореА рджреБрдИ рд╢рдмреНрджрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдерд┐рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдЫреМрдВ, рддреНрдпрд╕рдкрдЫрд┐ рджреБрдИ рд╕реВрдЪреАрдмрд╛рдЯ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрд▓рд╛рдИ рдкреНрд░рддреНрдпреЗрдХрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдпрджрд┐ рдПрдХ рдорд┐рд▓реНрджреЛ рднреЗрдЯрд┐рдпреЛ рднрдиреЗ, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдЫреМрдВред рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЫ рдЬрд╕рд▓реЗ рджреБрдИ рд╢рдмреНрджрд╣рд░реВрд▓рд╛рдИ рдЗрдирдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдиреНрдЫ рд░ рд╢рдмреНрджрд╣рд░реВрдХреЛ рд╕реВрдЪреА рджреЗрдЦрд╛рдЙрдБрдЫ рдЬреБрди рджреБрд╡реИрд╕рдБрдЧ рддрд╛рд▓ рдорд┐рд▓реНрдЫ, рд░ рдпреЛ рд╕рдмреИрд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдЪрд╛рд░ рдЯреНрдпрд╛рдмрд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдирдЧрд░реА рд░ "рдЖрдБрдЦрд╛рджреНрд╡рд╛рд░рд╛" рд╢рдмреНрджрд╣рд░реВ рдпрд╛рдж рдирдЧрд░реА рдкрдирд┐ - рд╕рдмреИ рд╕рдЩреНрдХрд▓рди, рд╣рд┐рд╕рд╛рдм рд▓рд╛рдЧрд┐ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЦрд╛рд░реЗрдЬред рдЕрджреНрднреБрддред

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

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди