Fqyeh29
@Fqyeh29
↓ ИМХО ↓

SQl инъекция. Правильно ли исправил?

Ребят, нашел на своем сайте уязвимость. В бд можно записать любую строчку, и потом в одном месте он выводит данные из бд не фильтруя. Т.е XSS есть(алерт пишется,выводится и срабатывает). Это исправленно.

Было так: собираются данные со разных источников, при нажатии на кнопку шел запрос к скрипту который сразу писал в бд инфу.

Теперь: собираются данные со разных источников,формируется хеш, при нажатии на кнопку отправляется в скрипт который сверяет хэш, и если все ок, то в бд пишется инфа.

Но меня больше интересует SQL инъекция. сейчас фильтруются все кавычки (комментируются обратным слешем, аж 4 шт, хз зачем)

если отправить с скрипт:
' UNION SELECT 1
в бд пишется:
\\\\' UNION SELECT 1

Этого достаточно чтоб не было инъекции?
Можно пример когда это не поможет? (надо :) )

PS двиг куплен у фрила. ОН уверяет что SQL тут не пройдет.

Так то теперь все хэшируется в md5(с некоторыми манипуляциями+соль) и сверятся перед любыми действиями. И подменить результат теперь не реально.
Но мне просто интересно, возможна ли тут SQL инъекция?
Просто возможно что строка с SQL придет сразу из источника информации. Достаточно того что он комментирует кавычки?
  • Вопрос задан
  • 653 просмотра
Решения вопроса 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Вопрос крайне абстрактный. Надо смотреть в код конкретно.
Для защиты от sql injection достаточно использовать PDO или mysqli_real_escape_string на все аргументы в запросах.
Для защиты от xss нужно фильтровать данные на выводе
Ответ написан
@IceJOKER
Web/Android developer
Зачем извращаться со слешами, юзайте:
prepared_statements
OR
real_escape_string();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@hooligan377
Мне тут на форуме посоветовали использовать подготовленные запросы, это сносит на нет все проблемы с инъекциями.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы