sql иньекция

Lexa0066

Новичок
Доброй ночи, начал изучать php, столкнулся с проблемой иньекций. Ломаю голову как можно фильтр string запросу сделать...

$_POST["queryString"] нужно как-то очистить, т.к подсовывают гадости.

PHP:
// [queryString] => KFNFTEVDVCAoQ0FTRSBXSEVOICgxNDIyPTMzOTMpIFRIRU4gMSBFTFNFIChTRUxFQ1QgMzM5MyBVTklPTiBTRUxFQ1QgNjc4MikgRU5EKSk=
// MSUnIE9SIE5PVCBPUkQoTUlEKChTRUxFQ1QgQ0hBUl9MRU5HVEgoaWQpIEZST00gcGFuZWxjcDE1OTAuaXNwX3VzZXJzIE9SREVSIEJZIGlkIExJTUlUIDIsMSksMSwxKSk+NTEgQU5EICdyd1lHJSc9J3J3WUc=
// u0044%u0020FROM T
// 1%'/**_**/OR/**_**/NOT/**_**/ORD(MID((SELECT/**_**/CHAR_LENGTH(id)/**_**/FROM/**_**/sitedb.isp_users/**_**/ORDER/**_**/BY/**_**/id/**_**/LIMIT/**_**/
// MzA1OS0zMDU4
тоесть кодируют и тд
$_POST["queryString"] по хорошему должен принимать запросы поиска по форуму.
 

Lexa0066

Новичок
Возьмите за правило для любого ввода от пользователя типа поиска использовать:
- обработку строки при помощи https://www.php.net/manual/ru/mysqli.real-escape-string.php
- в совокупности с подготовленными запросами https://www.php.net/manual/ru/mysqli-stmt.prepare.php
как реал стринг спасет от закодированного запроса MzA1OS0zMDU4
 

Valick

Новичок
От инъекций спасают подготовленные запросы, реал стринг позволяет грамотно обработать поисковую строку содержащую например апостроф.
 

weregod

unserializer
От инъекций спасают подготовленные запросы, реал стринг позволяет грамотно обработать поисковую строку содержащую например апостроф.
только подготовленные запросы, первый метод устарел, какахам не учи, пожалуйста, когда он понадобится в реале, ТС должен уже вырасти и сам раздуплить.
 

Valick

Новичок
Lexa0066, ну тут два варанта, либо сидеть и горько плакать. Либо сделать дополнительное подключение к БД с драйвером mysqli или PDO и использовать его для реализации поиска, а в последствии и для всего проекта.
 

weregod

unserializer
а если еще старый mysql, не mysqli
Код:
D:\dev\WinNMP\bin\PHP\32bit-php-5.2\ext

php_pdo_firebird.dll
php_pdo_mssql.dll
php_pdo_mysql.dll
php_pdo_oci.dll
php_pdo_oci8.dll
php_pdo_odbc.dll
php_pdo_pgsql.dll
php_pdo_sqlite.dll
php_pdo_sqlite_external.dll
у тебя что, что-то более заскорузлое и с тех пор не переписали? нах такой код.
да, до PDO как только не извращались и всё равно получали то, о чём ТС пишет, но сейчас не 2009-ый же.
 

Фанат

oncle terrible
Команда форума
а при чем здесь SQL инъекция-то?
кто-то может внятно объяснить?
 
Сверху