-2

我对验证表单输入感到困惑。
例如一个简单的表单,输入为nameemailweb addresspasswordtextarea

据我了解,我需要使用文本输入:

trim()
tripslashes()
htmlspecialchars()
FILTER_SANITIZE_STRING  

用于电子邮件和网址

preg_match()
FILTER_SANITIZE_EMAIL
FILTER_SANITIZE_URL
FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_URL

密码

hash()

我想有一个更简单的方法。请提出建议,如果可能的话,请提供正确验证表格的示例。

4

1 回答 1

2

我建议在盲目地将它们用作“安全措施”之前了解它们中的每一个什么,因为你可能弊大于利。

trim是删除左边或右边的空格。

stripslashes取消引用带引号的字符串。

htmlspecialchars将在 HTML 中具有重要意义的特殊字符转换为 HTML 实体,您应该在输出HTML 时使用它。

过滤器标志(FILTER_VALIDATE_EMAIL、FILTER_VALIDATE_URL 等)您可以将它们与filter_var函数一起使用,如下所示:

if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    // Email is valid
}

对于密码,您可以使用hash指定散列算法(md5、sha512 等)的函数。您可能还想查看密码盐以提供进一步的安全性。

于 2013-10-03T16:53:17.883 回答