nginx 1.17.8 āĻāĻŦāĻ‚ njs 0.3.8 āĻāϰ āϰāĻŋāϞāĻŋāϜ

āĻ—āĻ āĻŋāϤ āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āĻļāĻžāĻ–āĻž āĻĒā§āϰāĻ•āĻžāĻļ nginx 1.17.8, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āύāϤ⧁āύ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻ…āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāϕ⧇ (āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞāĻ­āĻžāĻŦ⧇ āĻļāĻžāĻ–āĻž 1.16 āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϗ⧁āϰ⧁āϤāϰ āĻ¤ā§āϰ⧁āϟāĻŋ āĻāĻŦāĻ‚ āĻĻ⧁āĻ°ā§āĻŦāϞāϤāĻž āĻĻā§‚āϰ⧀āĻ•āϰāĻŖ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ)āĨ¤

āĻĒā§āϰāϧāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ:

  • āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻžāϝāĻŧ grpc_pass āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻž āĻāĻ•āϟāĻŋ āĻ āĻŋāĻ•āĻžāύāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻ āĻŋāĻ•āĻžāύāĻžāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĄā§‹āĻŽā§‡āύ āύāĻžāĻŽ āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ āύāĻžāĻŽāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŦāĻ°ā§āĻŖāĻŋāϤ āĻ—ā§āϰ⧁āĻĒāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚, āϝāĻĻāĻŋ āύāĻž āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāϧāĻžāύāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ;
  • āĻāĻ•āϟāĻŋ SSL āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāĻžāχāĻĒāϞāĻžāχāύāϝ⧁āĻ•ā§āϤ āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻž āϘāϟāϤ⧇ āĻĒāĻžāϰ⧇;
  • āύāĻŋāĻ°ā§āĻĻ⧇āĻļ⧇ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻĄāĻŋāĻŦāĻžāĻ—_āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ HTTP/2 āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧāĨ¤

āωāĻĒāϰāĻ¨ā§āϤ⧁, āĻāϟāĻž āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻāύāĻœā§‡āĻāϏ 0.3.8, nginx āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĻā§‹āĻ­āĻžāώ⧀āĨ¤ njs āχāĻ¨ā§āϟāĻžāϰāĻĒā§āϰ⧇āϟāĻžāϰ ECMAScript āĻŽāĻžāύ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϕ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ nginx-āĻāϰ āĻ•ā§āώāĻŽāϤāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āωāĻ¨ā§āύāϤ āϝ⧁āĻ•ā§āϤāĻŋ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇, āĻāĻ•āϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇, āĻ—āϤāĻŋāĻļā§€āϞāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇, āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ/āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇, āĻŦāĻž āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋ āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĻā§āϰ⧁āϤ āĻ¸ā§āϟāĻžāĻŦ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇āĨ¤

āύāϤ⧁āύ āϰāĻŋāϞāĻŋāĻœā§‡ nginx āĻŽāĻĄāĻŋāωāϞ⧇ r.subrequest-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ r.parent āϏāĻŽā§āĻĒāĻ¤ā§āϤāĻŋ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“:

  • āϝ⧋āĻ— āĻ•āϰāĻž āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āϏāĻŽāĻ°ā§āĻĨāύ;
  • āϟāĻžāχāĻĒ āĻ•āϰāĻž āĻ…ā§āϝāĻžāϰ⧇āϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • ArrayBuffer āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻĒā§āϰāϤ⧀āĻ• āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • JSON.stringify() āĻāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāĻšā§āϝāĻŋāĻ• āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āϝ⧋āĻ— āĻ•āϰāĻž Object.is();
  • āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ Object.setPrototypeOf();
  • āĻāĻ•āϟāĻŋ āύāĻžāϞ āϏāĻ‚āϝ⧋āϜāύ āĻ…āĻĒāĻžāϰ⧇āϟāϰ (āϕ⧋āϞ⧇āϏāĻŋāĻ‚);
  • āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Object.getPrototypeOf() āĻŦāĻŋāĻļ⧇āώāĻ¤ā§āĻŦ āĻŽā§‡āύ⧇ āϚāϞāϤ⧇;
  • āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Object.prototype.valueOf() āĻŦāĻŋāĻļ⧇āώāĻ¤ā§āĻŦ āĻŽā§‡āύ⧇ āϚāϞāĻžāϰ āϜāĻ¨ā§āϝ;
  • āĻ…-āĻŽā§āĻĻā§āϰāĻŖāϝ⧋āĻ—ā§āϝ āĻŽāĻžāύ āϏāĻš JSON.stringify() āĻāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚
    āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĢāĻžāĻ‚āĻļāύ;
  • āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻ¸ā§āĻĨāĻŋāϰ "āχāύ" āĻ…āĻĒāĻžāϰ⧇āϟāϰ;
  • āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ Object.defineProperties() āĻāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇
    āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϏāĻš;
  • āĻ¸ā§āĻĨāĻŋāϰ Object.create() āĻ¸ā§āĻĒ⧇āϏ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€āĨ¤
  • āĻĢāĻžāĻ¸ā§āϟ āĻŽā§āϝāĻžāĻĨ āϚāĻžāϞ⧁ āĻšāϞ⧇ Number.prototype.toString(radix) āĻ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • RegExp() āωāĻĻāĻžāĻšāϰāĻŖ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āφāĻŽāĻĻāĻžāύāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻĨāĻŋāϰ āφāĻŽāĻĻāĻžāύāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋāĨ¤

āωāĻ¤ā§āϏ: opennet.ru

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster