Задать вопрос
passshift
@passshift
php, js, html5, css

Как очистить строку для защиты от XSS и SQl-инъекции, но пропускать спец-символы?

Здравствуйте уважаемые!

Возможно есть у кого-то проверенная временем функция?

И насколько, кстати, вообще безопасно пропускать спец-символы? В Вк например их повсюду вставляют в сообщения, хотелось бы реализовать подобное, но при этом защититься от XSS и SQl-инъекций...

Спасибо
  • Вопрос задан
  • 1478 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
@AndryG
Ваш вариант защиты от инъекций в корне неверный. Для защиты необходимо не строку "очищать", а правильно с ней работать, как описал выше Алексей Николаев.

"Очисткой" вы защититесь лишь от примитивных попыток взлома и 100% будут случаи, когда вы будете "портить" содержимое строки. Бесят сайты, гд в коментарии нельзя нормально указать кусок html-кода (именно как текст). Их создатели тоже решили, что надежней "вырезать".

Добавлено
В итоге уточнений пришёл к выводу такому:
<?php
  function my($text){
#    return $text;
#    return htmlspecialchars($text);
    return htmlspecialchars($text, null, null, false);
  }
  ?>
<br>&#174;
<br><?=my('&#174;')?>
<br><?=my('<b>text-&#174;-text</b>')?>
<br><?=my('<script>alert("XSS &#174;")</script>')?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
passshift
@passshift Автор вопроса
php, js, html5, css
Вероятно нужно использовать strip_tags(), а не htmlspecialchars() , но что-то меня смущают "красные" комментарии в мануале php.net/manual/ru/function.strip-tags.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы