|
4 / 4 / 0
Регистрация: 11.10.2008
Сообщений: 47
|
|
Защита от SQL инъекций25.04.2009, 00:02. Показов 27539. Ответов 18
Метки нет (Все метки)
Тема избитая. По ней куча статей, но информация зачастую противоречивая.
Во-первых, вопрос - является ли слэширование (' -> \', " -> \") переменных, участвующих в SQL запросах, 100% защитой? Если нет - приведите, пожалуйста, пример такой инъекции. И второй вопрос - на сколько функция mysql_real_escape_string(); справляется с задачей безопасности, хватает ли этой функции?
0
|
|
| 25.04.2009, 00:02 | |
|
Ответы с готовыми решениями:
18
Защита от SQL инъекций
|
|
Почетный модератор
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
|
||||||
| 25.04.2009, 08:15 | ||||||
|
Ещё когда числа используешь, то их вначале надо приводить к типу integer.. а то вдруг, это будет не число, а часть SQL запроса.
Лично я для экранирования использую функцию addslashes.
0
|
||||||
|
4 / 4 / 0
Регистрация: 11.10.2008
Сообщений: 47
|
|
| 25.04.2009, 11:43 [ТС] | |
|
Humanoid, спасибо за ответ. Т.е. экранирование кавычек является достаточной защитой против SQL-инъекций? А почему вы используете именно addslashes(), а не mysql_real_escape_string()?
0
|
|
|
Почетный модератор
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
|
|
| 25.04.2009, 17:23 | |
|
Не знаю... просто так повелось. Честно говоря, я даже не понял в чём у них разница. Думаю, важно заметить, что я пишу страницы, которые в инете не видны... и попыток атак не было. Поэтому мои знания о надёжности только теоретические.
0
|
|
|
26 / 20 / 5
Регистрация: 28.04.2009
Сообщений: 75
|
||||||
| 02.05.2009, 22:25 | ||||||
|
гарантированная защита от иньекций всех типов :
0
|
||||||
|
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
|
|
| 03.05.2009, 00:56 | |
|
А не проще ли и эффективнее использовать регулярные выражения? При этом можно обеспечить (и гарантировать) попадание в SQL-запрос ТОЛЬКО того, что нужно и ничего более... Хотя, это просто размышления на заданную тему...
0
|
|
|
aristokrat74
|
||||||
| 18.01.2010, 05:45 | ||||||
|
глупость. все что насоветовали та еще.
mysqli_real_escape_string (PHP 5) mysqli::real_escape_string -- mysqli_real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection Report a bug Description Object oriented style (both methods are equivalent): string mysqli::escape_string ( string $escapestr ) string mysqli::real_escape_string ( string $escapestr ) Procedural style: string mysqli_real_escape_string ( mysqli $link , string $escapestr ) This function is used to create a legal SQL string that you can use in an SQL statement. The given string is encoded to an escaped SQL string, taking into account the current character set of the connection. http://ru2.php.net/manual/en/m... string.php а теперь включаем мозг и понимаем что разработчики за вас все сделали и остается лишь проверить
NEOSYS, зачем так систему напрягать-то?? - вообще действия безсмысленные. SiTH, разница вот в чем: escape_string: The string to be escaped. Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z. , а addslashes These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte). |
||||||
|
Robert29
|
||||||
| 11.08.2011, 19:35 | ||||||
|
Во врем авторизации я предлагаю не использовать переменные в sql запросах. Во время поверки введённых данных нужно считывать все строки в таблице и в цикле проверять совпадения.
Вот пример кода
|
||||||
|
Почетный модератор
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
|
||
| 11.08.2011, 19:41 | ||
|
0
|
||
|
Почетный модератор
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
|
|||||||||||
| 11.08.2011, 22:17 | |||||||||||
|
Всё же, я не соглашусь. Такой способ подойдёт для данных, которые хранятся в текстовом файле... их придётся по одному доставать и анализировать. А тут MySQL предоставляет огромные возможности по поиску и их лучше использовать. Все эти циклы PHP всё равно будут выполняться гораздо медленнее, чем внутренний поиск MySQL. Да и код получится гораздо компактнее.
Кстати, конструкция
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 17.01.2012
Сообщений: 5
|
|
| 03.04.2012, 10:08 | |
|
Здравтвуйте, хороший толковый материал. Многое подчерпнул для себя. Так же всем интересующимся данной темой рекомендуй почитать, изложенный мной метод защиты от SQL инъекций:
http://lifeexample.ru/php-prim... ktsiy.html
0
|
|
|
154 / 146 / 20
Регистрация: 12.03.2011
Сообщений: 806
|
|
| 03.04.2012, 11:22 | |
|
0
|
|
|
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
|
|||||||
| 04.04.2012, 05:33 | |||||||
|
Потом вгоняем это в цикл, и там все это лопатим... Да и с какой целью были созданы копии двух одинаковых массивов в памяти? А если там over 9000?.. да со всем барахлом... Не целесообразнее ли использовать запрос с WHERE чтобы отсеять over 9000 пользователей? А затем использовать mysql_fetch_row? Вот так:
0
|
|||||||
|
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
|
|
| 04.04.2012, 07:54 | |
|
Про защиту
http://ru2.php.net/manual/ru/s... ection.php
0
|
|
|
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 401
|
|
| 18.01.2013, 01:44 | |
|
0
|
|
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
||
| 18.01.2013, 01:50 | ||
|
ставим слеши mysql_real_escape_string потоом убираем слеши stripslashes а потом опять ставим слеши addslashes и в конце еще и перезаписываем суперглобальный массив $_GET["запрос"]
0
|
||
|
|
|
| 18.01.2013, 07:38 | |
|
Не вижу смысла рассуждать о проблеме защиты от SQL в контексте функций библиотеки mySQL учитывая что с PHP 5.5.0 она будет помечена как deprecated и ближе к 6 версии будет и вовсе удалена.
Идеи типа addslashes и mysql_real_escape_string лично я считаю признаком не профессионализма. Сам лично считаю минимальной защитой использование placeholder's в PDO или mySQLi. P.S Представляю визг быдлокодеров когда mySQL и её быдло плюшки работать перестанут. P. P. S Против библы mySQL ничего против не имею библа хорошая НО для своего времени(лет этак 10 назад) но её место вместе с PHP 4 в прошлом.
0
|
|
| 18.01.2013, 16:35 | |
|
1
|
|
| 18.01.2013, 16:35 | |
|
Помогаю со студенческими работами здесь
19
Защита от инъекций Защита от инъекций Защита от sql инъекций одним файлом Защита от инъекций strip_tags сканер на наличие sql инъекций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|