Один из моих сайтов недавно и постоянно (постоянно), под атакой. Скрипт JavaScript как-то вставляется в базу данных MySQL.JavaScript MySQL предотвращение инъекций
Я использую следующие:
$unsafe_variable = addslashes(htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['user_input']))));
mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Однако хакер все еще в состоянии вставить «сценарий» тег. Я понятия не имею, как это сделать. У меня есть фильтр слов и занесено в черный список слово «скрипт», которое блокируется при отправке теста на сайт. Как он/она может это пройти?
Выше скриншот записи в базу данных. У кого-нибудь есть идеи о том, как я могу это предотвратить?
Все четыре функции не являются «механизмами защиты». Они конвертируют данные. Как эти данные попадают в вашу базу данных. Пожалуйста, напишите * этот * код вместо этого, чтобы мы могли помочь. –
Здесь действительно недостаточно информации. Как применяются указанные вами функции и в каком порядке? Это возможно, если они находятся в неправильном порядке, тогда ваша защита будет побеждена. – Chris
Не устанавливайте * вход *. Исправьте * выход *. Используйте «htmlspecialchars», где это поле отображается вашим пользователям. – ceejayoz