addlashes (stripslashes ($ field)) гарантирует неуязвимость SQL-инъекций? - PullRequest
0 голосов
/ 07 июля 2011

Минус весь addlashes () vs mysqli_real_escape_string () аргументация будет разделение, а затем добавление слешей гарантирует sql неуязвимость инъекций?В любом случае это изменит данные, например, отобразит строку с двойной косой чертой после извлечения ее из базы данных?

Ответы [ 5 ]

1 голос
/ 07 июля 2011

НЕТ использования: mysql_real_escape_string.

Почему: вы не рассматриваете кучу проблем, в основном кодирование строк и т.д ...

1 голос
/ 07 июля 2011

Выходящие символы (addslashes()) могут защитить вас от SQL-инъекций.Я не эксперт в том, как дезинфицировать входные данные, и вот почему:

Я пропустил весь процесс «дезинфекции» и сразу перешел к подготовленным утверждениям.Обеззараживание / экранирование означает, что вы должны сделать обратное на выходной стороне, что означает удвоение усилия каждый раз и удвоение шансов испортить что-нибудь где-нибудь - допуская плохой ввод.* PDO между каждым выполненным вами запросом к базе данных и самой базой данных ваши опасения закончились.

Конечно, нельзя сказать, что PDO защищает вас от таких атак, как CSRF.или XSS, но фактические сохраненные значения безопасны для SQL-инъекций, и вы можете удалить html или все, что вам нужно сделать, прежде чем сохранять его для защиты от подобных атак.

1 голос
/ 07 июля 2011

так что вы хотите сделать, это

$input='bla" SELECT * FROM blabla"';
$escaped=stripslashes(addslashes($input));

в этом случае

$input==$escaped is true

так что нет, это, вероятно, ничего не сделает вот почему вы должны предпочесть mysql_real_escape_string

0 голосов
/ 07 июля 2011

addlashes () защитит вас в большинстве случаев.Что касается получения выходных данных, это зависит от того, как вы их отправляете, если вы выполните

$input = addslashes("Bob's shoes")

, вы получите обувь Боба.

Когда вы положите это в свою базу данных

insert into tbl (txt) values (Bob\'s shoes)

Результатом

select txt from tbl

будет обувь Боба, как вы и предполагали, косые черты удаляются с помощью sql при вставке.

Если ваш анальный об этом выМожно сказать, добавить другие меры предосторожности, но если вам нужна быстрая и простая вещь, которая не является смехотворно безопасным веб-сайтом, все будет в порядке.есть также встроенные функции php sanitize, если вы посмотрите их

0 голосов
/ 07 июля 2011

Нет, наличие правильного количества косых черт помогает с некоторыми уязвимостями, но вам все равно нужно проверить ввод пользователя Нет гарантии, что SQL инъекция неуязвима.

...