【问题标题】:Where to include a captcha?在哪里包含验证码?
【发布时间】:2010-12-20 03:44:39
【问题描述】:

我第一次开发 Web 应用程序,并且有一个关于在哪里显示验证码的问题。

在我的网站上,我在公共(即未登录)“联系”页面上有 Recaptcha,任何人都可以在其中提交问题或反馈。但是在用户成功登录后,会话启动后,是否需要在同一页面上有一个 Recaptcha?由于该网站现在就坐,如果用户登录,我不会显示 Recaptacha。

我见过一些网站,即使您已登录,您也必须输入验证码才能提交评论,但这对我来说似乎有点奇怪。

感谢您的帮助!

注册

【问题讨论】:

    标签: php security


    【解决方案1】:

    如果您要完全删除经过身份验证的用户的验证码 - 那么就可以(手动)传递验证码并做任何您想做的事情(垃圾邮件、烦人等)。

    现在的常见想法是在某个特定操作的每 N 个请求中显示验证码,例如发表评论。

    或者像 stackoverflow 那样:它是某个时间间隔内可能存在的 cmets 数量,之后您将获得一个验证码。

    【讨论】:

    • 我喜欢 Gmail 的一些地方:如果您遇到过一次或多次密码错误,您需要验证码。第一次,没必要。我认为这是在登录表单中使用验证码的最佳方式。
    • 同意,让注册用户反复通过验证码测试的网站对我来说毫无意义。一旦用户通过了表明他们值得信赖的某个点(例如 SO 上的声誉),您也可以删除验证码。
    • @Rafe Kettler:即使有 11k+ 代表,我有时也需要填写验证码;-)
    • 是的,这是 SO 未实现的功能。我用 SO 作为一个网站的例子,其中可信度有一个明确的指标。
    【解决方案2】:

    您在您担心垃圾邮件的地方放置了验证码。

    即使在用户登录后,垃圾邮件仍可能是一个有效的问题。毕竟,我可以轻松地创建一个帐户,然后在以该用户身份登录时运行脚本。

    但是,您主要关心的可能不是有针对性的攻击,而是那些在互联网上搜索简单表单以发送垃圾邮件的机器人,这种情况出人意料地普遍。为了击败这种攻击,登录用户不需要验证码,因为这些机器人只会是访客。

    因此,您必须在用户便利与阻止有针对性的攻击威胁之间取得平衡。我建议您不要为已登录的用户使用验证码,直到您变得足够大以产生这种担忧,但这是您的决定,完全取决于您的具体情况。

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多