Laravel & Taipu
Taipu Taipu
Π― Ρ‚ΡƒΡ‚ снова Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡΡŒ с уязвимостями ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ Π² симмСтричном ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π§Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅ΡˆΡŒ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π΅ зависящих ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?
Laravel Laravel
ПонимаСшь, постоянноС врСмя – это всё ΠΏΡ€ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ памяти, зависящих ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΡ‘ΠΌ – Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ состояниС Π² рСгистрах, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ маски вмСсто условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². НапримСр, вмСсто условного копирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `buf ^= mask & (new ^ buf)`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡƒΡ‚ΡŒ Π±Ρ‹Π» ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°. И Π΅Ρ‰Ρ‘ – Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ фиксированной Π΄Π»ΠΈΠ½Ρ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉ Π±Π»ΠΎΠΊΠΈ Π² строгом Ρ†ΠΈΠΊΠ»Π΅, Π±Π΅Π· досрочных Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ². Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΈΡ‰ΠΈ Ρ„Π»Π°Π³ β€œconstant-time” ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ Π½Π° Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΠ»Π° Π°ΡƒΠ΄ΠΈΡ‚. НСбольшиС измСнСния Π²Ρ€ΠΎΠ΄Π΅ этих ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.