我做了一个PHP脚本来检查表单textfielt中的输入if a。)这是一个数字 b。)如果它是安全的
我尝试了一个功能
<?php
function checkSecurity($glob) {
if (is_numeric($glob)) {
$value = htmlspecialchars($glob);
$value = trim($glob);
return $value;
}
else
{
echo "<p style='color:red;'>Wrong Input</p>";
die;
}
}
我的回答:是否有必要使用 htmlspecialchars()和 trim()检查安全性,或者仅仅使用 is_numeric()
非常感谢 马里奥
答案 0 :(得分:0)
如果输入是数字,则htmlspecialchars和trim都不会执行任何操作。
代码中的第4行毫无意义,因为下一行会覆盖$value
。
htmlspecialchars()
无论如何都是_output_encoding函数,您通常不想在输入时使用它。
如果使用正确,htmlspecialchars()
可以防范某些类型的 XSS。这不会使任何事情变得安全,甚至不会对XSS产生任何影响,更不用说其他漏洞了。
在大多数情况下,您无法实施通用&#34; checkSecurity&#34;应用程序的功能,以处理所有输入验证。如果这是可能的,为什么你的框架不会这样做? (好吧,.net在某种程度上确实存在,但考虑到它给开发者带来的错误安全感,这是否可以说是总体上是正面的还是负面的。)
您永远不应该从字符串连接html,或在变量中构建html响应(适用于服务器端和客户端)。如果发生这种情况,你需要一个模板引擎。