Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Rust-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° actix-web ΡƒΠ΄Π°Π»ΠΈΠ» Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ·-Π·Π° Ρ‚Ρ€Π°Π²Π»ΠΈ

Автор написанного Π½Π° языкС Rust web-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° actix-web ΡƒΠ΄Π°Π»ΠΈΠ» Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° Π½Π΅Π³ΠΎ ΠΎΠ±Ρ€ΡƒΡˆΠΈΠ»Π°ΡΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ° Π·Π° «Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС» языка Rust. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ actix-web, ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ 800 тысяч Ρ€Π°Π·, позволяСт Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² прилоТСния Π½Π° языкС Rust Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ http-сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° достиТСниС максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСстах web-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

НСзадолго Π΄ΠΎ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° Π² issues Π½Π° GitHub Π±Ρ‹Π»ΠΎ сообщСно ΠΎ выявлСнии Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ повСдСния (Undefined Behaviour) Π² ΠΊΠΎΠ΄Π΅ сСрвСра actix-web, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Π² Π±Π»ΠΎΠΊΠ΅, выполняСмом Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ unsafe (допускаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ нСбСзопасных дСйствий с указатСлями). Автор actix-web Π½Π΅ стал ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ unsafe, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π» Π²Ρ‹Π·ΠΎΠ² этого Π±Π»ΠΎΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ unsafe Π°Π²Ρ‚ΠΎΡ€ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΠ», ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ заявив, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ unsafe Π±Π΅Π· нСобходимости ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½ Π² бСзопасности Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π»ΠΎΠΊΠΎΠ².

Участник ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ RustSec, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выявил Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½Π΅ согласился ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… unsafe-Π±Π»ΠΎΠΊΠΎΠ² Π² actix-web Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎ. ПослС этого ΠΎΠ½ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»
ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ нСдопустимости использования unsafe, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ упомянуто, Ρ‡Ρ‚ΠΎ примСняСмый Π² actix-web ΠΏΡ€ΠΈΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с указатСлями (нСсколько измСняСмых ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅) ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ возникновСния уязвимостСй use-after-free ΠΈ Π½Π΅ соотвСтствуСт ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Rust.

ПослС обсуТдСния ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° Reddit, Π² issues Π½Π° GitHub Π½Π°Π±Π΅ΠΆΠ°Π»ΠΈ Ρ‚Ρ€ΠΎΠ»Π»ΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ actix-web Π±Ρ‹Π» ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ ΡˆΠΊΠ²Π°Π»Ρƒ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ оскорблСний Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Rust. Автор Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π» психологичСского давлСния, ΡƒΠ΄Π°Π»ΠΈΠ» Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ написал, Ρ‡Ρ‚ΠΎ завязал с Open Source.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ