Π²ΡΠΏΡΡΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ , Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ (Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π½ΠΎΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΠ·Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ :
- Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
server {
listen 12345;
set $true 1;
} - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² Π΄Π»Ρ Cookie Π² ΠΏΡΠΎΠΊΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊ Cookie Β«oneΒ» ΡΠ»Π°Π³Π° Β«httponlyΒ», Π° Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Cookie ΡΠ»Π°Π³ΠΎΠ² Β«nosecureΒ» ΠΈ Β«samesite=strictΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
proxy_cookie_flags one httponly;
proxy_cookie_flags ~ nosecure samesite=strict; - ΠΠΎΡ ΠΎΠΆΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² ΠΊ Cookie ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ngx_http_userid.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΡΡΠΊ , ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ·ΡΠΊΠ° JavaScript Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° nginx. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ njs ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ ECMAScript ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ nginx ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π‘ΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°/ΠΎΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π³Π»ΡΡΠ΅ΠΊ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΡΡ Π² ΡΠΈΡΠ»Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«1_000Β»).
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ %TypedArray%.prototype: every(), filter(), find(), findIndex(), forEach(), includes(), indexOf(), lastIndexOf(), map(), reduce(), reduceRight(), reverse(), some().
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ %TypedArray%: from(), of().
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ DataView.
: >> (new DataView(buf.buffer)).getUint16()
: 32974 - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ Buffer.
: >> var buf = Buffer.from([0x80,206,177,206,178])
: undefined
: >> buf.slice(1).toString()
: βΞ±Ξ²β
: >> buf.toString(βbase64β)
: βgM6xzrI=β - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Buffer Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΠΌΠ΅ΡΠΎΠ΄Ρ Β«cryptoΒ» ΠΈ Β«fsΒ», Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Buffer Π² fs.readFile(), Hash.prototype.digest() ΠΈ Hmac.prototype.digest().
- Π ΠΌΠ΅ΡΠΎΠ΄Π΅ TextDecoder.prototype.decode() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ArrayBuffer.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
