Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° SQL;

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° SQL β€” это Π°Ρ‚Π°ΠΊΠ°, Π²ΠΎ врСмя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ врСдоносный ΠΊΠΎΠ΄ вставляСтся Π² строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π½Π° экзСмпляр SQL Server для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ выполнСния. Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ инструкции SQL, Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ уязвимости ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ SQL Server выполняСт всС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ запросы. Π”Π°ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ манипуляций ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия Π°Ρ‚Π°ΠΊΠΈ ΠΏΡƒΡ‚Π΅ΠΌ внСдрСния ΠΊΠΎΠ΄Π° SQL

Основная Ρ„ΠΎΡ€ΠΌΠ° Π°Ρ‚Π°ΠΊΠΈ SQL Injection состоит Π² прямой вставкС ΠΊΠΎΠ΄Π° Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ SQL ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. МСнСС явная Π°Ρ‚Π°ΠΊΠ° внСдряСт нСбСзопасный ΠΊΠΎΠ΄ Π² строки, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для хранСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Когда впослСдствии сохранСнныС строки ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ с динамичСской ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SQL, происходит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ нСбСзопасного ΠΊΠΎΠ΄Π°.

Атака осущСствляСтся посрСдством ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ тСкстовой строки ΠΈ присоСдинСния ΠΊ Π½Π΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ вставлСнной ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π½Π΅Π΄Ρ€ΡΠ΅ΠΌΡƒΡŽ строку ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ коммСнтария Β«—Β». Π’Π΅ΡΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π²ΠΎ врСмя выполнСния Π½Π΅ учитываСтся.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ SQL Injection. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ SQL-запрос, выполняя объСдинСниС ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк со строкой, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ этом случаС запрос, построСнный скриптом, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Если вставлСнный ΠΊΠΎΠ΄ SQL синтаксичСски Π²Π΅Ρ€Π΅Π½, искаТСнныС Π΄Π°Π½Π½Ρ‹Π΅ нСльзя Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ всСх Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQL ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° сСрвСрС. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ программирования ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… этого Ρ€Π°Π·Π΄Π΅Π»Π°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° достовСрности всСх Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

ВсСгда провСряйтС всС Π΄Π°Π½Π½Ρ‹Π΅, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, выполняя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠ°, Π΄Π»ΠΈΠ½Ρ‹, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ€ прСдостороТности, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ сцСнарии развСртывания прилоТСния. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, созданныС для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² бСзопасной срСдС, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скопированы Π² Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ срСду. РСкомСндуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ стратСгия:

НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅, Ρ‚ΠΈΠΏΠ΅ ΠΈΠ»ΠΈ содСрТимом Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. НапримСр, рСкомСндуСтся ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

Как ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ вСсти сСбя, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ ошибкС ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π»ΠΎΠΌΡƒ умыслу вставит MPEG-Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10 ΠœΠ‘ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ индСкса?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ‚ΠΈΠΏ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ установитС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ содСрТимоС строковых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ допускайтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ значСния. ΠžΡ‚ΠΊΠ»ΠΎΠ½ΡΠΉΡ‚Π΅ записи, содСрТащиС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ символы коммСнтария. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ скрипта ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Π°Ρ‚Π°ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ провСряйтС всС Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° соотвСтствиС схСмС.

Никогда Π½Π΅ создавайтС инструкции Transact-SQL нСпосрСдствСнно ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π’ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… срСдах ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ всС Π΄Π°Π½Π½Ρ‹Π΅. Π”Π°Π½Π½Ρ‹Π΅, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, слСдуСт ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Π°ΠΏΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ достовСрности. ΠœΠ΅Ρ€Ρ‹ прСдостороТности, прСдпринятыС ΠΏΡ€ΠΎΡ‚ΠΈΠ² случайных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ-Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСэффСктивными ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ. РСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΠΈ Π΄Π°Π»Π΅Π΅ Π²ΠΎ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… пСрСсСчСния Π³Ρ€Π°Π½ΠΈΡ† Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹.
НапримСр, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² клиСнтском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ простоС Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ скрипта. Однако Ссли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‚ΠΎ любой Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ удастся ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ систСму, смоТСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ систСмС.

Никогда Π½Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ОбъСдинСниС строк являСтся основной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° для внСдрСния скрипта.

НС допускайтС использованиС Π² полях ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²: AUX, CLOCK$, COM1–COM8, CON, CONFIG$, LPT1–LPT8, NUL ΠΈ PRN.

По возмоТности отклоняйтС Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, содСрТащиС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы:

ИспользованиС SQL-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² бСзопасных Ρ‚ΠΈΠΏΠΎΠ²

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ @au_id обрабатываСтся ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π½Π΅ исполняСмый ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ провСряСтся ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΈ Π΄Π»ΠΈΠ½Π΅. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @au_id Π½Π΅ соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ограничСниям Ρ‚ΠΈΠΏΠ° ΠΈ Π΄Π»ΠΈΠ½Ρ‹, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° с Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π°Ρ‚Π°ΠΊΠ°ΠΌ SQL Injection, Ссли ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ являСтся уязвимым:

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ‚ΠΎ Π² качСствС ΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

ИспользованиС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Parameters с динамичСским SQL

Если Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, сохраняСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°:

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π²Π²ΠΎΠ΄Π°

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ SQL injection посрСдством удалСния escape-символов ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π²Π²ΠΎΠ΄Π°. Однако этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π΅ являСтся Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ большоС число символов. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ производится поиск Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк:

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ LIKE

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании прСдлоТСния LIKE подстановочныС Π·Π½Π°ΠΊΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ escape-символами:

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ возмоТности Π°Ρ‚Π°ΠΊΠΈ SQL Injection

Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ QUOTENAME() ΠΈ REPLACE()

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² динамичСском Transact-SQL ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π”Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ считываСмыС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ QUOTENAME() ΠΈΠ»ΠΈ REPLACE(). ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @variable, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ QUOTENAME(), ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ Ρ‚ΠΈΠΏΡƒ sysname ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π² 128 символов.

@пСрСмСннаяРСкомСндуСмый ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ
Имя Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°QUOTENAME(@variable)
Π‘Ρ‚Ρ€ΠΎΠΊΠ°, содСрТащая Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 128 Π·Π½Π°ΠΊΠΎΠ².QUOTENAME(@variable, »»)
Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ· > 128 символовREPLACE(@variable,»», »»»)

ΠŸΡ€ΠΈ использовании этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° инструкция SET ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исправлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Атака Injection, проводимая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ усСчСния Π΄Π°Π½Π½Ρ‹Ρ…

Π›ΡŽΠ±ΠΎΠ΅ присваивАՐܐސпСрСмСнной диݐАܐؑǐՑPڐސзначСниС Transact-SQL усСкаСтся, Ссли ΠΎΠ½ΠΎ Π½Π΅ вмСщаСтся Π² Π±ΡƒΡ„Π΅Ρ€, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Если ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π°Ρ‚Π°ΠΊΠΈ способСн ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ усСчСниС инструкции, пСрСдавая Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки, ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. Π’Π°ΠΊ, хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, создаваСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ скрипта, уязвима для Π°Ρ‚Π°ΠΊΠΈ Injection, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ усСчСния.

ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ 154 Π·Π½Π°ΠΊΠ° Π² Π±ΡƒΡ„Π΅Ρ€, рассчитанный Π½Π° 128 Π·Π½Π°ΠΊΠΎΠ², Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для sa, Π½Π΅ зная старого пароля.

УсСчСниС ΠΏΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ QUOTENAME(@variable, »») ΠΈ REPLACE()

Если строки, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ функциями QUOTENAME() ΠΈ REPLACE(), Π½Π΅ ΡƒΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ пространствС, ΠΎΠ½ΠΈ ΡƒΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ Π±Π΅Π· взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π₯ранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, создаваСмая Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ инструкция установит для ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ усСчСниС строки, для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ для Π±ΡƒΡ„Π΅Ρ€Π° пространство ΠΏΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ REPLACE(). Π₯ранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, создаваСмая Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ расчСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎ всСм случаям.

УсСчСниС ΠΏΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ QUOTENAME(@variable, ‘]’)

ΠŸΡ€ΠΈ сцСплСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° sysname рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ достаточно Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΄ΠΎ 128 Π·Π½Π°ΠΊΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. По возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ QUOTENAME() слСдуСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ динамичСского Transact-SQL. Или ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ: ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡΡ… ΠΈ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Π°ΠΊ.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Рассмотрим простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π²Ρ…ΠΎΠ΄Π°. Код HTML-Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ запрос для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° сторонС сСрвСра выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ инструкции SQL :

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π¨Π°Π³ 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² Π»Π΅Π²ΡƒΡŽ панСль:

Π¨Π°Π³ 2. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Β« Build Schema Β».
Π¨Π°Π³ 3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:

Π¨Π°Π³ 4. НаТмитС Β« Run SQL Β». Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСдоставляСт адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ admin@admin.sys ΠΈ 1234 Π² качСствС пароля. Запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΠΎΠΉΠ΄Π΅Π½ ΠΏΡƒΡ‚Π΅ΠΌ вывСдСния Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ части пароля ΠΈ добавлСния условия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ истинным. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ подставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΠ»Π΅ адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹:

ΠΈ xxx Π² ΠΏΠΎΠ»Π΅ пароля.

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ динамичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π₯акСрская Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ Π² Π²Π΅Π±-прилоТСния

Оно обСспСчиваСт Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ санация поля элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ пароля. На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π¨Π°Π³ 1 : Π’Π²ΠΎΠ΄ΠΈΡ‚ xxx@xxx.xxx Π² качСствС адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹;
Π¨Π°Π³ 2 : Π’Π²ΠΎΠ΄ΠΈΡ‚ xxx’) OR 1 = 1 β€” ] ;

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

НаТимаСт ΠΊΠ½ΠΎΠΏΠΊΡƒ Β« ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Β».

Он Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² панСль администрирования. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ запрос Π±Ρ‹Π» сгСнСрирован:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ для достиТСния своих Ρ†Π΅Π»Π΅ΠΉ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Π°Ρ‚Π°ΠΊΠ΅ с использованиСм SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π°Ρ‚Π°ΠΊ с использованиСм SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ

SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ нанСсти Π³ΠΎΡ€Π°Π·Π΄ΠΎ больший ΡƒΡ‰Π΅Ρ€Π±, Ρ‡Π΅ΠΌ Π²Ρ…ΠΎΠ΄ Π² систСму Π² ΠΎΠ±Ρ…ΠΎΠ΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. НСкоторыС ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Π°ΠΊ ΠΌΠΎΠ³ΡƒΡ‚:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ

Π’ΠΎΡ‚ нСсколько простых ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ с использованиСм SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ :

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ β€” ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQL-запросы ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π₯акСрская Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: использованиС для SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ Havij

Π’ этом практичСском сцСнарии ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Havij Advanced SQL Injection для сканирования уязвимостСй сайта.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Упомянутый Π²Ρ‹ΡˆΠ΅ инструмСнт ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ†Π΅Π½ΠΊΠΈ уязвимости / прилоТСния.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Π—Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, подписки, Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π²Π°ΠΌ спасибо!

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, оставляйтС свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. ΠœΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Π²Π°ΠΌ Π·Π° ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ, подписки!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π·Π»Π°ΠΌΡ‹Π²Π°Π΅ΠΌ сайты: ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡΠΌ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π’ΠΈΠΏΡ‹ SQLi

БущСствуСт 5 основных Ρ‚ΠΈΠΏΠΎΠ² SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ:

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΈΡ… Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π΅ΠΉ.

УязвимыС Ρ‚ΠΎΡ‡ΠΊΠΈ

УязвимыС Ρ‚ΠΎΡ‡ΠΊΠΈ для Π°Ρ‚Π°ΠΊΠΈ находятся Π² мСстах, Π³Π΄Π΅ формируСтся запрос ΠΊ Π±Π°Π·Π΅: Ρ„ΠΎΡ€ΠΌΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, поисковая строка, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, REST-запросы ΠΈ нСпосрСдствСнно URL.

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ SQLi

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвСра ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π΅ΡΡ‚ΡŒ свои тонкости ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π½ΠΎ ΡΡƒΡ‚ΡŒ всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°.

НСльзя Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² запрос Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ВсСгда ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π²Π²ΠΎΠ΄ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ запрос ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· бСзопасных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±Π΅Π»Ρ‹Π΅ списки: ΠΈΡ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ, Ρ‡Π΅ΠΌ Ρ‡Π΅Ρ€Π½Ρ‹Π΅. ВсС названия Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π°Π· Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ значСниями Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π­Ρ‚ΠΎ касаСтся ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

ЕстСствСнно, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² доступа ΠΊ Π±Π°Π·Π΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΈΠ±Π΅Ρ€Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ – это Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² нападСния – Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π·Π°Ρ‰ΠΈΡ‚Ρ‹.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ критичСски уязвимого для SQLi ΠΊΠΎΠ΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ Ρ‚Π°ΠΊΠΎΠΉ Π°Π½Ρ‚ΠΈΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия Π°Ρ‚Π°ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим Π½ΠΈΠΆΠ΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ИспользованиС однострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² позволяСт ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ запроса, ΠΈΠ΄ΡƒΡ‰ΡƒΡŽ послС вашСй ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ. НапримСр, Π²Π²ΠΎΠ΄ Π² уязвимоС ΠΏΠΎΠ»Π΅ Username запроса admin’— ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°ΠΉΡ‚ΠΈ Π½Π° рСсурс ΠΏΠΎΠ΄ администратором, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΠΊΠ° пароля Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, сСйчас Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ уязвимости встрСчаСтся ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π½Π΅ΠΉ стоит.

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ справится с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ запросы ΠΎΠ±ΠΎΠΉΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ тСкстовый Π°Π½Π°Π»ΠΈΠ·:

А Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особыС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ позволят ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² цСлях дальнСйшСй эксплуатации уязвимостСй:

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ со строками

БущСствуСт ряд Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… способов ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π½Ρ‹Π΅ списки. НапримСр, ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк:

Π’ MySQL для ΠΎΠ±Ρ…ΠΎΠ΄Π° слоТных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ строки Π² ΡˆΠ΅ΡΠ½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ HEX() ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… посимвольно:

ΠžΠ±Ρ…ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π•ΡΡ‚ΡŒ стандартный ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, содСрТащий Π² сСбС основныС запросы, для ΠΎΠ±Ρ…ΠΎΠ΄Π° уязвимой Ρ„ΠΎΡ€ΠΌΡ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΅Π³ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π»Π΅Ρ‚ 10 Π½Π°Π·Π°Π΄ ΠΈ рСгулярно Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹ рСгистрации Π½Π° своСм сайтС:

Union injection

UNION это SQL-ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π² ΠΎΠ΄Π½Ρƒ. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных ΠΈ опасных классичСских ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ.

Допустим, Π½Π° сайтС Π΅ΡΡ‚ΡŒ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с уязвимой строкой поиска. Π’ΠΎΠ³Π΄Π°, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ количСство ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΠΈΡ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ‡Π΅Ρ€Π΅Π· UNION ΠΌΠΎΠΆΠ½ΠΎ вывСсти практичСски Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ запросы

Если Ρ†Π΅Π»Π΅Π²ΠΎΠΉ сСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° SQL Server ΠΈ ASP/PHP, Π»ΠΈΠ±ΠΎ Π½Π° PostgreSQL ΠΈ PHP, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Π·Π½Π°ΠΊ ‘;’ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° врСдоносных запросов:

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ½

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ нюансов довольно ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ всС. Π“Π»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ комбинируя эти ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ спСцифичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Π±Π°Π·Π΅ ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Error-Based

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ±ΠΎΡ€ΠΎΡ‚ΡŒ этот Ρ‚ΠΈΠΏ Π°Ρ‚Π°ΠΊ, достаточно Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ошибок Π½Π° ΠΏΡ€ΠΎΠ΄Π΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Ρ‡Π΅ΠΌ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Ρ€ΠΎΠ·ΠΈΡ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этой ΠΌΠ΅Ρ€Ρ‹.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросов ΠΊ SQL Server, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² тСкстС ошибки названия столбцов:

Π‘Π»Π΅ΠΏΡ‹Π΅ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ

Π’ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ сдСланном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈ ошибок, Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° UNION-Π°Ρ‚Π°ΠΊΠΈ. Π’ΡƒΡ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΠ»Π΅ΠΏΡƒΡŽ.

УсловныС выраТСния

Атаки с использованиСм IF ΠΈ WHERE – основа слСпого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π²Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π° Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π±Ρ‹ ΠΊΠ°ΠΊ. Бинтаксис для Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ:

Boolean-based

Если Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ всС ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΈΠ»ΠΈ отсутствии ошибки ΠΈΠ· HTTP-статуса, Π² сСрвисС имССтся ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ слСпой Π°Ρ‚Π°ΠΊΠ΅. Рассмотрим запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска посимвольно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π² дальнСйшСм всСх Π΄Π°Π½Π½Ρ‹Ρ…:

Time-Based

Если Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… сСрвСра, остаСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ слСпая Π°Ρ‚Π°ΠΊΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SLEEP ΠΈΠ»ΠΈ WAIT FOR DALAY:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΊ boolean-based, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ true ΠΈ false Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. НСдостатки Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹. Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ слишком ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π±ΡƒΠ΄Π΅Ρ‚ сильноС влияниС сторонних Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° ΠΏΠΈΠ½Π³Π°. Если слишком Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ – Π°Ρ‚Π°ΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Ρ‘, скорСС всСго, остановят.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎ SQLi ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ, Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

SQL injection для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ
ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ тСбя, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ. ПослСднСС врСмя, я ΡƒΠ²Π»Π΅ΠΊΠ°ΡŽΡΡŒ Web-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π΄Π° ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ стСпСни Ρ€Π°Π±ΠΎΡ‚Π° связана с этим. Π’.ΠΊ. я всё Ρ‡Π°Ρ‰Π΅ ΠΈ Ρ‡Π°Ρ‰Π΅ стал Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡ‹ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ…, с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ рассчитана Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ сталкивался с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. Π’ сСти ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ статСй Π½Π° Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ, Π½ΠΎ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТныС. Π― ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всё понятным языком ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π²Π°ΠΌ Π½Π΅ особо понадобится знания SQL-языка, Π° хотя Π±Ρ‹ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ тСрпСния ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ·Π³ΠΎΠ² β€” для запоминания.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прочтСния ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»ΠΎ, Ρ‚.ΠΊ. Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΆΠΈΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ β€” ΠΊΠ°ΠΊ извСстно ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Π² процСссС запоминания, Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ лишнСй. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ уязвимыС скрипты ΠΈ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ….

Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ?

Говоря простым языком β€” это Π°Ρ‚Π°ΠΊΠ° Π½Π° Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ создатСлСм скрипта. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ:

ΠžΡ‚Π΅Ρ†, написал Π² запискС ΠΌΠ°ΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π΄Π°Π»Π° ВасС 100 Ρ€ΡƒΠ±Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» Π΅Ρ‘ Π½Π° стол. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π² это Π² ΡˆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ SQL язык, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:
Π”ΠžΠ‘Π’ΠΠΠ¬ Π˜Π— кошСлька 100 Π Π£Π‘Π›Π•Π™ И ДАЙ ИΠ₯ ВасС

Π’Π°ΠΊ-ΠΊΠ°ΠΊ ΠΎΡ‚Π΅Ρ† ΠΏΠ»ΠΎΡ…ΠΎ написал записку (ΠšΠΎΡ€ΡΠ²Ρ‹ΠΉ ΠΏΠΎΡ‡Π΅Ρ€ΠΊ), ΠΈ оставил Π΅Ρ‘ Π½Π° столС, Π΅Ρ‘ ΡƒΠ²ΠΈΠ΄Π΅Π» Π±Ρ€Π°Ρ‚ Васи β€” ΠŸΠ΅Ρ‚Ρ. ΠŸΠ΅Ρ‚Ρ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Ρ…Π°ΠΊΠ΅Ρ€, дописал Ρ‚Π°ΠΌ Β«Π˜Π›Π˜ ΠŸΠ΅Ρ‚Π΅Β» ΠΈ получился Ρ‚Π°ΠΊΠΎΠΉ запрос:
Π”ΠžΠ‘Π’ΠΠΠ¬ Π˜Π— кошСлька 100 Π Π£Π‘Π›Π•Π™ И ДАЙ ИΠ₯ ВасС Π˜Π›Π˜ ΠŸΠ΅Ρ‚Π΅

Мама ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² записку, Ρ€Π΅ΡˆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ВасС ΠΎΠ½Π° Π΄Π°Π²Π°Π»Π° дСньги Π²Ρ‡Π΅Ρ€Π° ΠΈ Π΄Π°Π»Π° 100 Ρ€ΡƒΠ±Π»Π΅ΠΉ ΠŸΠ΅Ρ‚Π΅. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ πŸ™‚ НС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅ (Мама Π΅Π»Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»Π° ΠΏΠΎΡ‡Π΅Ρ€ΠΊ), ΠŸΠ΅Ρ‚Ρ добился ΠΏΡ€ΠΎΡ„ΠΈΡ‚Π°.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π’Π°ΠΌ понадобится Π°Ρ€Ρ…ΠΈΠ² с исходными скриптами Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΈ распакуйтС Π½Π° сСрвСрС. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ установитС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ cfg.php

Поиск SQL injection

Как Π’Ρ‹ ΡƒΠΆΠ΅ поняли, ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ появляСтся ΠΈΠ· входящих Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ΡΡ. Бамая распространСнная ошибка β€” это Π½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ID. Ну Π³Ρ€ΡƒΠ±ΠΎ говоря ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΎ всС поля ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π‘ΡƒΠ΄ΡŒ это GET/POST запрос ΠΈ Π΄Π°ΠΆΠ΅ Cookie!

Числовой входящий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

Для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π°ΠΌ понадобится скрипт index1.php. Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π²Ρ‹ΡˆΠ΅, подставляСм ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ID новости.

Π’.ΠΊ. Ρƒ нас запрос Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ:

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΏΠΎΠΉΠΌΠ΅Ρ‚ это ΠΊΠ°ΠΊ

SELECT * FROM news WHERE color=»#ff0000″>’

И выдаст Π½Π°ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\WebServ\domains\sqlinj\index1.php on line 16

Если ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π΅ Π²Ρ‹Π΄Π°Π»ΠΎ β€” ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

1.SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ здСсь Π½Π΅Ρ‚ β€” Π€ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈΠ»ΠΈ просто стоит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² (int)
2.ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ Π²Ρ‹Π²ΠΎΠ΄ ошибок.

Если всС ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ‹Π²Π΅Π»ΠΎ β€” Π£Ρ€Π°! ΠœΡ‹ нашли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²ΠΈΠ΄ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ β€” Числовой входящий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉ входящий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

Запросы Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π½Π° index2.php. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, запрос ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π’ΡƒΡ‚ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ новости ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ β€” Π½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ.
ΠžΠΏΡΡ‚ΡŒ посылаСм запрос с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ:

Π’Ρ‹Π΄Π°Π»ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Ок! Π—Π½Π°Ρ‡ΠΈΡ‚ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ. Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Ρ…Π²Π°Ρ‚ΠΈΡ‚ β€” приступим ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ ΠΊ дСйствиям

НСмного Ρ‚Π΅ΠΎΡ€ΠΈΠΈ

НавСрно Π’Π°ΠΌ ΡƒΠΆΠ΅ Π½Π΅ тСрпится ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· этого, ΠΊΡ€ΠΎΠΌΠ΅ ошибок. Для Π½Π°Ρ‡Π°Π»Π° усвойтС, Ρ‡Ρ‚ΠΎ Π·Π½Π°ΠΊ » » считаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ Π² языкС SQL.

Π’ΠΠ˜ΠœΠΠΠ˜Π•! ΠŸΠ΅Ρ€Π΅Π΄ ΠΈ послС Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π’ URL ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ %20

Выполнится ΡƒΠ΄Π°Ρ‡Π½ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ это Π½Π° скриптС index2.php, послав Ρ‚Π°ΠΊΠΎΠΉ запрос:

Π’Ρ‹ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ UNION. Π’ языкС SQL ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово UNION примСняСтся для объСдинСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π΄Π²ΡƒΡ… SQL-запросов Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ИзвлСкаСм ΠΈΠ· этого ΠΏΠΎΠ»ΡŒΠ·Ρƒ

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «Числовой», Ρ‚ΠΎ Π² запросС Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ ΠΈ СстСствСнно ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅. ВСрнСмся ΠΊ скрипту index1.php.

Π’.ΠΊ. ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΈΡ… количСство Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ запросС, Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… количСство Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π²Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ.

ΠŸΠΎΠ΄Π±ΠΈΡ€Π°Π΅ΠΌ количСство ΠΏΠΎΠ»Π΅ΠΉ

ΠŸΠΎΠ΄Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ дСлаСтся ΠΎΡ‡Π΅Π½ΡŒ просто, достаточно ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ запросы:
sqlinj/index1.php?id=1 UNION SELECT 1,2
ΠžΡˆΠΈΠ±ΠΊΠ°β€¦
sqlinj/index1.php?id=1 UNION SELECT 1,2,3
ΠžΠΏΡΡ‚ΡŒ ошибка!
sqlinj/index1.php?id=1 UNION SELECT 1,2,3,4,5
Ошибки Π½Π΅Ρ‚! Π—Π½Π°Ρ‡ΠΈΡ‚ количСство столбцов Ρ€Π°Π²Π½ΠΎ 5.

GROUP BY

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 20 ΠΈΠ»ΠΈ 40 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 60. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ GROUP BY

Если запрос
sqlinj/index1.php?id=1 GROUP BY 2
Π½Π΅ Π²Ρ‹Π΄Π°Π» ошибок, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ большС 2. ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ:

sqlinj/index1.php?id=1 GROUP BY 8
Оп, Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ мСньшС 8.

Если ΠΏΡ€ΠΈ GROUP BY 4 Π½Π΅Ρ‚ ошибки, Π° ΠΏΡ€ΠΈ GROUP BY 6 β€” ошибка, Π—Π½Π°Ρ‡ΠΈΡ‚ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ Ρ€Π°Π²Π½ΠΎ 5

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… столбцов

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запроса Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ, достаточно ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ID, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

sqlinj/index1.php?id=-1 UNION SELECT 1,2,3,4,5

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ
Π­Ρ‚ΠΈΠΌ дСйствиСм, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ столбцы выводятся Π½Π° страницу. Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти Ρ†ΠΈΡ„Ρ€Ρ‹ Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ запрос.

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…

Допустим ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ сущСствуСт Ρ‚Π°Π±Π»ΠΈΡ†Π° users Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ поля id, name ΠΈ pass.
Нам Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ с >
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ построим Ρ‚Π°ΠΊΠΎΠΉ запрос:

sqlinj/index1.php?id=-1 UNION SELECT 1,2,3,4,5 FROM users WHERE >
Π‘ΠΊΡ€ΠΈΠΏΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Для этого, ΠΌΡ‹ подставим Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ, Π·Π° мСсто Ρ†ΠΈΡ„Ρ€ 1 ΠΈ 3

sqlinj/index1.php?id=-1 UNION SELECT name,2,pass,4,5 FROM users WHERE >
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚ΠΎ β€” Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ!
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sql ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ

Π§Ρ‚Π΅Π½ΠΈΠ΅/Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²

Для чтСния ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ², Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π‘Π” Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° FILE_PRIV.

Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²
Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² производится Π΅Ρ‰Π΅ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ запись. Достаточно просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ LOAD_FILE, Π·Π° мСсто Ρ‚ΠΎΠ³ΠΎ поля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ записанный Ρ„Π°ΠΉΠ».

Бпособы Π·Π°Ρ‰ΠΈΡ‚Ρ‹

Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Если Π’Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ числа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅

Как подсказал ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ malroc. Π—Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒΡΡ использованиСм PDO ΠΈΠ»ΠΈ prepared statements.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *