【问题标题】:Should I let non-members add comment to a post? [closed]我应该让非会员在帖子中添加评论吗? [关闭]
【发布时间】:2014-07-21 16:55:25
【问题描述】:

只要是SQL注入证明,我可以让非会员在帖子中添加cmets并赋予作者删除它们的能力吗?

【问题讨论】:

  • 是否适合您由您决定。我可以穿T恤吗?
  • 在显示之前,您还需要在从数据库中获取 cmets 时对其进行 HTML 转义,否则您将打开 XSS。
  • 但是……这有点取决于你还有什么其他的东西。您是否设置了良好的速率限制方案,以便用户不能只用随机生成的 cmets 填充您的硬盘驱动器?您是否有一个系统来自动禁止似乎滥用的用户/IP 地址?您对每页加载的 cmets 的数量/千字节数是否有限制(因此有人无法用 cmets 填充页面,从而使页面永远加载/通过提出大量请求来轻松地拒绝您那个页面)?

标签: security anonymous


【解决方案1】:

在做之前,请考虑以下问题

(以及您可能想到的任何其他特定于您的项目的问题)

  • 您是否设置了良好的速率限制方案,以便用户不能只用随机生成的 cmets 填充您的硬盘?
  • 您是否有一个系统来自动禁止似乎滥用的用户/IP 地址?您对每页加载的 cmets 的数量/千字节数是否有限制(因此有人无法用 cmets 填充页面,从而使页面永远加载/通过提出大量请求来轻松地拒绝您那个页面)?
  • 是否可以将网页上的 cmets 折叠起来,以便用户轻松隐藏他们不想看到的垃圾邮件 cmets?
  • 合法用户是否可以举报垃圾邮件?

当然,这些都是适用于正式会员的问题。但这对匿名用户也很重要,而且由于匿名发帖是唾手可得的成果,因此机器人管理员更有可能将其作为目标。主要的事情只是简单地考虑“如果我是一个熟练的程序员,讨厌这个网站,或者想通过在上面做广告赚钱,并且我有一个小型僵尸网络,那么我可以使用匿名 cmets 对这个网站做的最糟糕的事情是什么?鉴于我拥有的资源?”这是一个棘手的问题,这在很大程度上取决于您还准备了哪些其他东西。

如果你这样做,这里有几个指针:

  • HTML 转义 cmets,当您在显示之前从数据库中获取它们,否则您会对 XSS 开放。
  • 确保你永远不会在用户给你的输入上运行任何类似 eval 的函数(这包括 printf; 做一些你想要坚持使用printf("%s", userStr); 的事情,所以 printf 不会直接尝试解释userStr。如果您关心为什么这是一个问题,请在 Google 上搜索 Aleph One 关于堆栈粉碎的开创性论文),
  • 永远不要依赖输入的大小在特定范围内(即使您在 Javascript 中检查;事实上,特别是如果您尝试在 Javascript 中确保这一点)和
  • 永远不要相信有关内容的任何事情都是真实的(例如,不要对字符编码做任何假设。请记住,恶意用户不需要使用浏览器;他们可以随心所欲地制作电话) .
  • 默认为偏执狂 如果有人在一分钟内发布了 20 个 cmets,请暂时禁止他们发表评论。如果他们继续这样做,请禁止他们的 IP。如果他们是真实的人,并且他们在乎,他们会要求您撤消它。另外,如果他们是真实的人,并且他们有每分钟发布 20 个 cmets 的历史,那么这些 cmets 很有可能会在一段时间内得到改善;没有人那么诙谐。

【讨论】:

  • 我会记住的所有要点。感谢您的信息。
  • @user3753805 因此,作为考虑向我的站点添加匿名 cmets 的一部分,我询问了this question,并得出了关于速率限制实施的结论(尽管我可能有用)。希望这也会有所帮助。 As usual, math came to the rescue.
【解决方案2】:

这类问题通常取决于社区的类型,以及您给予作者的控制权。绝对要实施安全和验证系统(例如 CAPTCHA),但随着时间的推移,您必须经常评估这一点。如果用户表现良好,那很好。如果他们开始在收到的每个帖子中发送垃圾邮件,那么可能是时候取消此类功能了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2011-07-24
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多