我使用一些 jquery 和 JS 函数来验证表单并检查例如该字段是否为空或密码是否少于 6 个字符,以及类似的东西,我注意到如果有人禁用了 JS,那么这些函数将毫无用处,并且不再保护表单,可以使用 PHP 更好地制作,所以我现在应该避免使用它们,因为这可能会对我的网站造成侮辱吗?
7 回答
JavaScript 对于改善用户交互以及减少服务器上的请求数量非常有用;但是,正如您所指出的,它可以被禁用。回答您的问题:不,我不建议避免使用 JavaScript,但关键是不要依赖它来执行关键操作,例如验证。您需要在客户端 (JavaScript) 和服务器 (PHP) 端实现验证。这将确保用户无法完全禁用验证。
简而言之:
- JavaScript = 好
- JavaScript 验证 = 对用户很好,但不可靠
- 服务器端验证 = 必不可少
边注:
关于依赖 JavaScript 进行整体用户交互,正如其他答案所建议的那样,使用 JavaScript 来增强整体体验,但不要依赖用户打开它。我建议在睡前阅读Progressive Enhancement,这是一种让事情变得更好的方法,依赖于它,并且不仅可以应用于 JavaScript(CSS3 等)。
您应该使用 javascript 和 jQuery 来增强您网站的功能。如果有人关闭了 javascript,您应该确保该站点仍然可以运行,并且他们可以访问所有区域 - 即使可能有一些他们看不到的东西,例如过渡和效果。
关于验证,您应该始终验证服务器端。客户端验证是可选的,但它是一个非常好的功能,可以改善访问者的用户体验。
我并不是说这是一种抱怨,更多的是一种观察。
Web 开发人员经常将 Javascript 库当作最新的闪亮玩具,而不考虑后果。作为一名数据治理人员,当我们对收集的数据进行审计并找到通过 Javascript 验证的用户时,我经常带来坏消息。
“回去重新开始”。
Javascript 库非常适合呈现数据,但应该也不能依赖于数据验证和用户配置文件的完整性。
您不应避免在您的网站中使用 JS 和 jQuery,但应避免将它们用于验证目的或业务逻辑目的。这些应该在网站的后端完成,而不是在 UI 级别。
验证应始终发生在
- 客户端- 使用 javascript 来增强用户体验。
- 服务器端- 出于安全原因使用首选的服务器端编程语言
- 服务端- 如果您将 SOA / Web API 作为防御性编程实践的一部分。这也可以在数据库级别以及服务层。
你不应该真的避免它们。您应该做的是实现客户端和服务器验证。由于您刚才提到的原因,不要仅仅依赖于客户验证。当数据到达服务器时,您应该始终对其进行验证。
添加客户端验证可为您的页面提供动态外观。用户不必等待表单进入服务器并在出现错误时返回。无需回发即可自动验证。
正如我上面所说,不要依赖客户端验证。始终也实施服务器端验证。
记住我的朋友,Java 脚本是客户端脚本。它的目的是在客户端本身验证表单,这样我们就可以避免开销......您必须在客户端使用 java 脚本。因为 PHP 是服务器端语言。回复需要时间。
哈,服务器端验证同样重要。如果你想这样做,那么你可以使用服务器端语言。您可以通过halfer查看下面对我的帖子的评论。服务器端验证对于安全性和更多目的很重要。
有人禁用 js 是另一回事。您可以检查相同的内容并提供正确的消息以启用。