nginx 1.19.3 рдФрд░ njs 0.4.4 рдХрд╛ рд╡рд┐рдореЛрдЪрди

рдмрдирд╛рдпрд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд┐рд▓реАрдЬ nginx 1.19.3, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рдирдИ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд╣реИ (рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдорд░реНрдерд┐рдд рд╕реНрдерд┐рд░ рдореЗрдВ)ред рд╢рд╛рдЦрд╛ 1.18 рдХреЗрд╡рд▓ рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред

рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди:

  • рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ ngx_stream_set_module, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

    рд╕рд░реНрд╡рд░ {
    12345 рд╕реБрдиреЗрдВ;
    $true 1 рд╕реЗрдЯ рдХрд░реЗрдВ;
    }

  • рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдкреНрд░реЙрдХреНрд╕реА_рдХреБрдХреА_рдлрд╝реНрд▓реИрдЧ рдкреНрд░реЙрдХреНрд╕реА рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЭрдВрдбреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдХреА "рдПрдХ" рдореЗрдВ "httponly" рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП "nosecure" рдФрд░ "samesite=strict" рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    рдкреНрд░реЙрдХреНрд╕реА_рдХреБрдХреА_рдлрд╝реНрд▓реИрдЧ рдХреЗрд╡рд▓ рдПрдХ http;
    рдкреНрд░реЙрдХреНрд╕реА_рдХреБрдХреА_рдлреНрд▓реИрдЧ ~ рдиреЛрдЬрдХреНрдпреЛрд░ рд╕реЗрдорд╕рд╛рдЗрдЯ=рд╕рдЦреНрдд;

  • рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ userid_flags рдХреБрдХреА рдореЗрдВ рдЭрдВрдбреЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП ngx_http_userid рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

  • рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреЗ рджреГрд╢реНрдп рдкреГрдердХреНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "1_000")ред
  • %TypedArray% рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХрдо рдХрд░реЗрдВ(), рд░рд┐рд╡рд░реНрд╕(), рдХреБрдЫ()ред
  • %TypedArray% рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛: from(), of()ред
  • рдбреЗрдЯрд╛рд╡реНрдпреВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

    : >> (рдирдпрд╛ рдбреЗрдЯрд╛рд╡реНрдпреВ(buf.buffer)).getUint16()
    : 32974

  • рдмрдлрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

    : >> var buf = рдмрдлрд░.рдлреНрд░реЙрдо([0x80,206,177,206,178])
    : рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
    : >> buf.slice(1).toString()
    : '╬▒╬▓'
    : >> buf.toString('base64')
    : 'gM6xzrI='

  • "рдХреНрд░рд┐рдкреНрдЯреЛ" рдФрд░ "рдПрдлрдПрд╕" рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдмрдлрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ fs.readFile(), Hash.prototype.digest() рдФрд░ Hmac.prototype.digest() рдиреЗ рдмрдлрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реМрдЯрд╛рдпрд╛ред
  • ArrayBuffer рд╕рдорд░реНрдерди рдХреЛ TextDecoder.prototype.decode() рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ