nginx 1.19.3, njs 0.4.4 เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฑเดฟเดฒเต€เดธเต

เดฐเต‚เดชเต€เด•เดฐเดฟเดšเตเดšเต เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดฑเดฟเดฒเต€เดธเต nginx 1.19.3, เด…เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตเดคเดฟเดฏ เด•เดดเดฟเดตเตเด•เดณเตเดŸเต† เดตเดฟเด•เดธเดจเด‚ เดคเตเดŸเดฐเตเดจเตเดจเต (เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดธเตเดฅเดฟเดฐเดค เดถเดพเด– 1.18 เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เดชเดฟเดถเด•เตเด•เดณเตเด‚ เด•เต‡เดŸเตเดชเดพเดŸเตเด•เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดตเดฐเตเดคเตเดคเตเดจเตเดจเดคเต).

เดชเตเดฐเดงเดพเดจ เดฎเดพเดฑเตเดฑเด‚:

  • เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต ngx_stream_set_module, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต

    เดธเต†เตผเดตเตผ {
    เด•เต‡เตพเด•เตเด•เตเด• 12345;
    $true 1 เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•;
    }

  • เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดšเต‡เตผเดคเตเดคเต เดชเตเดฐเต‹เด•เตเดธเดฟ_เด•เตเด•เตเด•เดฟ_เดซเตเดฒเดพเด—เตเด•เตพ เดชเตเดฐเต‹เด•เตเดธเดฟเดกเต เด•เดฃเด•เตเดทเดจเตเด•เดณเดฟเตฝ เด•เตเด•เตเด•เดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดซเตเดฒเดพเด—เตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เตเด•เตเด•เดฟ "เด’เดจเตเดจเต" เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต "http เดฎเดพเดคเตเดฐเด‚" เดซเตเดฒเดพเด—เตเด‚ เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพ เด•เตเด•เตเด•เดฟเด•เตพเด•เตเด•เตเด‚ "เดจเต‹เดธเต†เด•เตเดฏเตเตผ", "samesite=strict" เดซเตเดฒเดพเด—เตเด•เดณเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

    proxy_cookie_flags เด’เดจเตเดจเต http เดฎเดพเดคเตเดฐเด‚;
    proxy_cookie_flags ~ nosecure samesite=strict;

  • เดธเดฎเดพเดจเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ userid_flags เด•เตเด•เตเด•เดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดพเด—เตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต ngx_http_userid เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเด‚เดญเดตเดฟเดšเตเดšเต เดฑเดฟเดฒเต€เดธเต njs 0.4.4, nginx เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เด’เดฐเต JavaScript เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต. njs เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต ECMAScript เดฎเดพเดจเดฆเดฃเตเดกเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ nginx-เดจเตเดฑเต† เด•เดดเดฟเดตเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เด’เดฐเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ/เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เดชเดฐเดฟเดทเตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเดฒเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดธเตเดฑเตเดฑเดฌเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดฒเต‹เดœเดฟเด•เต เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเดฟเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเตฝ:

  • เดธเด‚เด–เตเดฏเด•เดณเดฟเดฒเต† เด…เด•เตเด•เด™เตเด™เดณเตเดŸเต† เดฆเตƒเดถเตเดฏ เดตเต‡เตผเดคเดฟเดฐเดฟเดตเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "1_000").
  • %TypedArray%.prototype-เดจเดพเดฏเดฟ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดฐเต€เดคเดฟเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ: every(), filter(), find(), findIndex(), forEach(), include(), indexOf(), lastIndexOf(), map(), reduce(), เด•เตเดฑเดฏเตเด•เตเด•เตเด• เดฑเตˆเดฑเตเดฑเต (), เดฑเดฟเดตเต‡เดดเตเดธเต (), เดšเดฟเดฒเดคเต ().
  • %TypedArray% เดŽเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดฐเต€เดคเดฟเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ: from(), of().
  • DataView เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ.

    : >> (new DataView(buf.buffer)).getUint16()
    : 32974

  • เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดฌเดซเตผ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต.

    : >> var buf = Buffer.from([0x80,206,177,206,178])
    : เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒ
    : >> buf.slice(1).toString()
    : 'ฮฑฮฒ'
    : >> buf.toString('base64')
    : 'gM6xzrI='

  • "crypto", "fs" เดฐเต€เดคเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฌเดซเตผ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต, เด•เต‚เดŸเดพเดคเต† fs.readFile(), Hash.prototype.digest(), Hmac.prototype.digest() เดŽเดจเตเดจเดฟเดต เดฌเดซเตผ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเตฝเด•เตเดจเตเดจเต เดŽเดจเตเดจเต เด‰เดฑเดชเตเดชเตเดตเดฐเตเดคเตเดคเดฟ.
  • TextDecoder.prototype.decode() เดฐเต€เดคเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต ArrayBuffer เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•