0

我想验证用户在表单中输入的数据。我只有一个用户名和两个密码字段。我的第一个问题是我用 javascript 检查数据并且工作正常,但我也想用 php 检查数据,以防 javascript 不起作用。如果 javascript 不工作,将从 php 代码检查数据,但我的问题是,如果 javascript 工作,那么数据也将从 javascript 和 php 检查。这样好吗?当输入数据由javascript检查时,有什么方法可以避免用php检查?我也在检查输入(用户名和密码)的字符数,字符(我不允许特殊字符,只有“_”,“。” 数字和字母以避免 sql 注入) - 你觉得如何?对于更好的验证,您还有其他建议吗?

先感谢您。

4

5 回答 5

2

您应该始终对用户输入进行服务器端(php)验证。客户端(javascript)验证只对更好的用户体验有益。此外,您不应将输入限制为某些字符以防止 mysql 注入,还有其他可靠的方法。

于 2012-04-17T21:37:42.280 回答
2

是的,您应该同时验证客户端 (JS) 和服务器端 (PHP)。

在客户端上这样做是为了方便您的用户并获得更好的用户体验。

在服务器上执行此操作以防止恶意攻击,或者如您所说,以防您的用户禁用了 JS。

于 2012-04-17T21:38:12.857 回答
2

您应该始终执行服务器端验证。不能保证客户端验证(例如 javascript 验证)不会被击败。获取调试工具(现在很多都内置在浏览器中)和规避 javascript 验证是一个简单的练习。

通常没有任何问题,甚至建议在 Javascript 和 PHP 的两个地方都进行验证。

于 2012-04-17T21:38:27.120 回答
1

检查两种方式都很好,绝对推荐。如果您想避免在启用 Javascript 的情况下使用 PHP 检查,您可以在表单中附加一个隐藏字段并使用 PHP 进行检查。

例如

if(!isset($_POST['js_hidden_field'])) {

    // Run Validation 

}

因此,您检查隐藏字段,如果未设置,则运行 PHP 验证

于 2012-04-17T21:38:00.647 回答
1

这实际上很好,在我看来,你永远不能做太多的验证。任何具有 Web 开发经验的人都可以操作客户端脚本,但服务器端脚本不能。

客户端脚本验证专家:

  • 在提交数据之前提醒用户,允许他们自行更正
  • 使您的网站看起来更复杂

服务器端验证优点:

  • 没有人可以更改您拥有的任何验证规则
  • 他们无法关闭服务器端验证。

简而言之,两者都做很好,实际上比只做其中一个要好。

于 2012-04-17T21:39:48.053 回答