Sadyrbaev
@Sadyrbaev

Как защититься от таких инъекций или как они называются?

Я плохо шарю в php, сделал систему комментариев, и через нее просто суют что хотят
62021bc7c96a0777205940.png
  • Вопрос задан
  • 176 просмотров
Решения вопроса 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Тег <script> не имеет ни малейшего отношения к mysql.
Наличие этого тега в базе данных никакой инъекцией не является.

"Инъекция" будет только если этот тег будет выведен внутри HTML кода как есть. Называется XSS
"Инъекция" которая относится к mysql называется SQL инъекция, и чаще всего позволяет прочитать из БД любые данные. Скорее всего является неактуальной для данного сайта, поскольку там просто нечего читать.

Чтобы защититься от XSS, надо использовать htmlspecialchars() при выводе данных в HTML
Чтобы защититься от SQL инъекций, надо использовать для работы с БД подготовленные выражения
Чтобы не "совали" всякий мусор, надо использовать защиту от спама, например капчу.
Ответ написан
Комментировать
@Akela_wolf
Extreme Programmer
Это называется XSS. Защищаются от нее путем фильтрации вводимого пользователем содержимого. Самое простое - экранировать HTML-теги, чтобы они выводились пользователю как текст, а не как HTML-код. Более сложный вариант - оставлять только безопасные теги, которые пользователь может использовать для оформления комментария (полужирный шрифт, курсив, подчеркивание, цвет шрифта и т.д.). Для этого есть готовые библиотеки, если будете писать самостоятельно - велик шанс что упустите какой-нибудь corner case и оставить "дырку" в сайте.
Ответ написан
@MrColdCoffee
web
называется xss инъекция

при выводе комментариев их нужно фильтровать функцией htmlspecialchars()

если будете делать проверку на пустой комментарий, учтите что 0 тоже может являться пустым при неправильной проверке
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 18:38
1500 руб./в час
19 апр. 2024, в 18:36
1500 руб./за проект
19 апр. 2024, в 18:36
30000 руб./за проект