在 JavaScript 中验证输入数据


validation of input data in javascript

我想验证用户在表单中输入的数据。我只有一个用户名和两个密码字段。我的第一个问题是我用javascript检查数据并且它工作正常,但是我也想用php检查数据,以防javascript不起作用。如果javascript不工作,将从php代码中检查数据,但我的问题是,如果javascript正在工作,那么数据也将从javascript和php中检查。这样好吗?当javascript检查输入数据时,有没有办法避免使用php进行检查?此外,我正在检查输入(用户名和密码)的字符数,字符(我不允许特殊字符,只允许"_","."数字和字母以避免SQL注入) - 听起来如何?您还有其他更好的验证建议吗?

提前谢谢你。

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

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

在客户端上执行此操作是为了方便用户并提供更好的用户体验。

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

应始终执行服务器端验证。不能保证客户端验证(如 javascript 验证)不会被击败。这是一个简单的练习,可以获取调试工具(现在浏览器中内置了许多工具)并绕过JavaScript验证。

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

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

例如

if(!isset($_POST['js_hidden_field'])) {
    // Run Validation 
}

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

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

客户端脚本验证优点:

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

服务器端验证优点:

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

简而言之,两者都做是好的,实际上比只做一个或另一个要好。