如何验证文本字段中的数字并检查安全性?

时间:2018-01-05 21:13:41

标签: php validation security isnumeric

我做了一个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()

非常感谢 马里奥

1 个答案:

答案 0 :(得分:0)

  • 如果输入是数字,则htmlspecialchars和trim都不会执行任何操作。

  • 代码中的第4行毫无意义,因为下一行会覆盖$value

  • htmlspecialchars()无论如何都是_output_encoding函数,您通常不想在输入时使用它。

  • 如果使用正确,htmlspecialchars()可以防范某些类型的 XSS。这不会使任何事情变得安全,甚至不会对XSS产生任何影响,更不用说其他漏洞了。

  • 在大多数情况下,您无法实施通用&#34; checkSecurity&#34;应用程序的功能,以处理所有输入验证。如果这是可能的,为什么你的框架不会这样做? (好吧,.net在某种程度上确实存在,但考虑到它给开发者带来的错误安全感,这是否可以说是总体上是正面的还是负面的。)

  • 您永远不应该从字符串连接html,或在变量中构建html响应(适用于服务器端和客户端)。如果发生这种情况,你需要一个模板引擎。