Javascript 表单验证的缺点

标签 javascript php

我正在构建一个学校项目,它是一个网站,我有一个表单,并且我使用 javascript 作为验证。如果用户关闭了 JavaScript,他们是否可以提交空表单?或者我最好使用 php 作为我的验证?

最佳答案

客户端

You want to validate input on the client side first because you can give better feedback to the average user. For example, if they enter an invalid email address and move to the next field, you can show an error message immediately. That way the user can correct every field before they submit the form.

如果您只在服务器上进行验证,他们必须提交表单,获取错误消息,并尝试找出问题。

(这种痛苦可以通过制作“粘性”表单来缓解,其中服务器会记住每个字段中输入的内容并将其填回,但客户端验证仍然更快。)

服务器端

You want to validate on the server side because you can protect against the malicious user, who can easily bypass your JavaScript and submit dangerous input to the server.

信任你的用户界面是非常危险的。他们不仅可以滥用您的用户界面,而且可能根本不使用您的用户界面,甚至不使用浏览器。如果用户手动编辑 URL、运行自己的 Javascript、或者使用其他工具调整 HTTP 请求会怎样?例如,如果他们从curl 发送自定义HTTP 请求怎么办?

不允许这样做不仅从安全 Angular 来看是幼稚的,而且也是不标准的:应该允许客户端通过他们希望的任何方式发送 HTTP,并且您应该正确响应。这包括验证。

FOR MORE REFERENCE

关于Javascript 表单验证的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29512795/

相关文章:

javascript - 无法在expressjs中为前端和后端使用多个静态路径

javascript - AngularJs 通过数据绑定(bind)刷新将多个值从数组推送到另一个数组

Javascript:将行从其 HTML 动态添加到 IE 中的表时出现问题

php - 如何访问内部函数PHP中的变量?

php - 库中的 Composer.lock

php - 服务器中的推送通知安装

javascript - 在 PHP 验证之前加载 JS 函数

javascript - 为 DIV 中的元素生成带有 html 控件、动态 ID 和监听器的克隆 div

javascript - 使用jquery倒计时

javascript - 通过JavaScript问题从函数中获取json