Задать вопрос
Milovenskii
@Milovenskii

Как избежать js инъекции?

Здравствуйте, проблема у меня! Запустил свой первый проект, сделал защиту от sql инъекций, но есть другая проблема. Один очень умный пользователь внедрил js код в базу и он выполняется. Как можно этого избежать? Работаю исключительно через pdo и prepare запросы.
Пример:
DIXbbD8.png

Помогите пожалуйста!
  • Вопрос задан
  • 1011 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Это называется XSS и никакого отношения к PDO и вообще к БД не имеет. Эта атака хорошо известна и способы борьбы с ней описаны во множестве статей, выбирайте любую.
Собственно, в блоке "Продаваемый товар" у вас, очевидно, уже всё сделано правильно, раз там скрипт выводится текстом, а не исполняется.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
petushok55
@petushok55
Обучаюсь на практике.
<script>alert('xxx');</script>

Должно в базе данных храниться как

&lt;script&gt;alert('xxx');&lt;/script&gt;
Чтобы потом при выводе скрипт не выполнялся

Для этого перед добавлением в Базу Данных строки используйте функцию фильтра

function filter($m){ 
	if(!is_numeric($m)){
		$m = htmlspecialchars($m);
	} else {
		$m = intval($m);
	}
	return $m;
} /* FILTER */
Ответ написан
Ваш ответ на вопрос

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

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