ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

1.3 Π—Π°Ρ‰ΠΈΡ‚Π°. 
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° систСмы управлСния содСрТимым Π½Π° SQL уязвимости

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вмСсто $Π° Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ запрос. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ intval () нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ число ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Intval () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1 ΠΏΡ€ΠΈ нСпустых значСниях ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° любого Π½Π΅ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ is_numeric (). Для строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ addslashes (), которая экранируСт всС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ символом. А Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

1.3 Π—Π°Ρ‰ΠΈΡ‚Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° систСмы управлСния содСрТимым Π½Π° SQL уязвимости (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. Π”Π°Π½Π½Ρ‹Π΅ ΠΊ Π²Π΅Π±-прилоТСниям ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² GET, POST ΠΈ ΠΈΠ· COOKIE. Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. НСобходимо ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ входящих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

НуТно числСнныС значСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊ Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌ посрСдством intval (), floatval () ΠΈ Ρ‚. ΠΏ.

$a = intval ($_GET['a']);

Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вмСсто $Π° Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ запрос. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ intval () нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ число ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Intval () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1 ΠΏΡ€ΠΈ нСпустых значСниях ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° любого Π½Π΅ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ is_numeric ().

Для строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ addslashes (), которая экранируСт всС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ символом. А Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ html_entities () для кодирования символов сущностями html («ΠΈ Ρ‚.ΠΏ.).

Как Π²ΠΈΠ΄Π½ΠΎ, доступ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π‘Π” ΠΎΡ‡Π΅Π½ΡŒ опасСн. ΠŸΡ€ΠΈ использовании PHP ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… массивов стоит Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ остороТным. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ с ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ относится ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ ΠΏΡ€Π°Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Π°Π·Ρ‹, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ INFORMATION_SCHEMA ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… mysql. НСобходимо Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. На ΡΠ°ΠΉΡ‚Π°Ρ… стоит ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ error_reporting ΠΈ Π΄Π°ΠΌΠΏ ошибок Π‘Π” Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ