Может ли эта комбинация символов, только в поле формы, использоваться для атаки XSS или SQL, если правильно «Html-Entity Encoded» в самом начале кода PHP?Html-Entity закодированный пустой тег HTML
<>
Вот очень простая программа, которая показывает обратно текстовое значение в текстовом поле, когда мы подаем форму:
<?php
foreach ($_POST as &$_HTTP_FIELD) {
$_HTTP_FIELD = htmlentities($_HTTP_FIELD,ENT_QUOTES,'ISO-8859-1');
}
foreach ($_GET as &$_HTTP_FIELD) {
$_HTTP_FIELD = htmlentities($_HTTP_FIELD,ENT_QUOTES,'ISO-8859-1');
}
?>
<html><body>
<form action="/index2.php" name="abcd" method="post">
<input type="text" name="texte" value="<? echo $_POST['texte'];?>">
<input type="submit" name="Soumission" value="Submit">
</form>
</body></html>
Я уверен, что это не следуйте лучшим методам кодирования, но сам по себе этот код не кажется рискованным, если переменная echo-ed находится в поле «значение».
Но когда мы попробуем «<>» в текстовом поле, брандмауэр веб-хостинга заблокирует запрос, отправив ошибку 403.
Я не указываю здесь кодировку документа по соображениям ясности, но на самом деле документ сделан в ISO-8859-1. Таким образом, он соответствует функции htmlentities.
Существует не так много информации прямо сейчас, но давайте говорить, что мой веб-узел не будет препятствовать мою PHP кода пытаются самостоятельно дезинфицировать данные POST. Ошибка 403 вызывается, даже если я петлю во всех переменных POST и удаляю их. –
Можем ли мы увидеть ваш PHP-код? – bigben3333
См. Отредактированный вопрос. –