【问题标题】:form authentication with javascript only + robots仅使用 javascript + 机器人进行表单身份验证
【发布时间】:2011-09-12 13:22:30
【问题描述】:

我正在使用 Javascript 进行字段身份验证的表单。我需要介绍垃圾邮件过滤器。我的问题是。

  1. 我是否应该引入服务器端脚本来解决垃圾邮件问题(更多工作)
  2. 如果 JavaScript 被禁用,是否禁止用户提交表单?
  3. 为禁用 Javascript 的人(例如机器人)制作单独的表单

问题是由垃圾邮件引起的。作为一个侧面问题。 机器人如何工作?他们只是禁用 JavaScript。这是一个蹩脚的问题。

form的编码方式很不正统,这意味着PHP脚本的代码变化会很大,相当于设计一个新的页面。

提前致谢。

【问题讨论】:

    标签: php javascript forms authentication


    【解决方案1】:

    大多数机器人的工作方式是根据 name 属性对要插入表单字段的值进行最佳猜测;例如,email-esque 值将插入<input type="text" name="email"/>,伟哥广告将插入<textarea name="body" />

    虽然阻止禁用 JavaScript 的用户会阻止 一些(大多数?)垃圾邮件通过,但您也冒着阻止 真实的风险用户无法使用您的网站;你愿意冒这个险吗?

    防止垃圾邮件最常见的方法是要求用户完成验证码;给他们一个难以辨认的图像,并让他们写下这个单词。 reCaptcha 被许多网站使用,但我只会将 reCaptcha 包含在表单中作为最后的手段。

    我最喜欢的一种防止垃圾邮件的方法是在表单中插入虚假的、隐藏的输入字段(type="hidden),并为其命名,例如emailwebsite 等。普通用户不会输入这些字段的任何值,因为它们是隐藏的,但垃圾邮件机器人可能

    【讨论】:

      【解决方案2】:

      我是否应该引入服务器端脚本来解决垃圾邮件问题(更多工作)

      是的

      禁止用户提交表单,如果 JavaScript 被禁用?

      你不能。 (您可以放置​​一些阻止他们提交的块,但您无法控制人们向您的服务器发送哪些数据。)

      为禁用 Javascript 的人(例如机器人)制作单独的表单

      没有。 Build on things that work

      机器人如何工作?

      它们发出 HTTP 请求并处理响应。

      他们只是禁用 JavaScript。

      它们通常在最初不支持 JavaScript 的引擎上运行。

      form的编码方式很不正统,这意味着PHP脚本的代码变化会很大,相当于设计一个新的页面。

      听起来它处于维护地狱中,需要进行重构,以便将来可能需要进行任何更改或调试。

      【讨论】:

      • 是的,相当于重写了整个页面,但只是注册表单,重写一次。
      【解决方案3】:

      您可以使用验证码,但这并不能改善用户体验。

      我喜欢使用的一个技巧是添加一个字段名称,例如电子邮件,然后使用 css 隐藏它并检查服务器端的值是否仍然为空。

      【讨论】:

      • 感谢您的回答。我的问题更多与设计相关,哪种方法最好。该网站主要供公司员工使用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多