Html-实体编码为空HTML标签
Html-Entity encoded empty HTML Tag
如果在 PHP 代码的开头 "Html-Entity Encoded" 正确地 "Html-Entity Encoded" ,单独在表单字段中的这种字符组合是否可以用于 XSS 或 SQL 攻击?
<>
这是一个非常简单的程序,它在我们提交表单时显示文本字段中的文本值:
<?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>
我确定这不符合最佳编码实践,但就其本身而言,如果回显变量位于 "value" 字段中,则此代码似乎没有风险。
但是当我们在文本字段中尝试“<>”时,虚拟主机防火墙将通过发送 403 错误来阻止请求。
为了清楚起见,我没有在此处指定文档编码,但实际上该文档是在 ISO-8859-1 中制作的。所以它匹配htmlentities函数。
<>
可能行不通但是
" onmouseover="alert(1)
可能会成功,因为它呈现为
<input type="text" name="texte" value="" onmouseover="alert(1)">
如果在 PHP 代码的开头 "Html-Entity Encoded" 正确地 "Html-Entity Encoded" ,单独在表单字段中的这种字符组合是否可以用于 XSS 或 SQL 攻击?
<>
这是一个非常简单的程序,它在我们提交表单时显示文本字段中的文本值:
<?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>
我确定这不符合最佳编码实践,但就其本身而言,如果回显变量位于 "value" 字段中,则此代码似乎没有风险。
但是当我们在文本字段中尝试“<>”时,虚拟主机防火墙将通过发送 403 错误来阻止请求。
为了清楚起见,我没有在此处指定文档编码,但实际上该文档是在 ISO-8859-1 中制作的。所以它匹配htmlentities函数。
<>
可能行不通但是
" onmouseover="alert(1)
可能会成功,因为它呈现为
<input type="text" name="texte" value="" onmouseover="alert(1)">