【问题标题】:how to stop anybody from abusing my contact page如何阻止任何人滥用我的联系页面
【发布时间】:2012-06-18 22:08:57
【问题描述】:

我有一个网站和联系页面。任何人都可以去那里写一些东西来联系我们,它会被发送到我的电子邮件地址。今天我注意到我的收件箱中有近 100 封电子邮件,有人试图使用一些 javascript 发送垃圾邮件。我该如何阻止这个?我想到的一种方法是放一个验证码。但是有没有更好的方法来停止在客户端本身而不是在服务器上检查?

【问题讨论】:

  • 我如何确定它是否是合法客户端?人工客户还是自动化客户?
  • 过滤所有输入,htmlentities 是你最好的朋友:P
  • 要阻止任何人,请使其脱机。如果那时有人可以使用它,那你就有问题了。

标签: javascript security spring-mvc spring-security


【解决方案1】:

长话短说:如果您不希望脚本或机器人控制您,请设置诸如验证码之类的内容。或者您可以将 ip 限制为每个 ip 发送 1 次提交或在允许再次重新发送之前在计时器倒计时.

【讨论】:

  • 旁注:如果你是一个真正的黑客/a-hole,你可以欺骗 IP,但大多数愚蠢的 ermm.... 不太聪明... 孩子们会被阻止。
【解决方案2】:

实现一个简单的技术是放置一个蜜罐输入,如<input type="text" name="email2" />,并通过css input[name="email2"] { display: none; } 隐藏它。您在服务器端所要做的就是检查机器人是否已将此字段设置为某个值。如果他们这样做了,他们就是机器人。

【讨论】:

  • 只是出于好奇,你有没有在某个地方实际使用过它?
  • GravityForms 提供了这样的挑战。
  • 您的意思是说我可以将其设置为某个值,例如 XYZ,机器人会将其设置为其他值,然后我可以在服务器端进行比较?如果是这样,机器人创建者所要做的就是检查我的页面源并查看我设置的内容。所以我有点不清楚这个解决方案的去向
  • 该技术对懒惰的偷渡机器人有效,但对针对性攻击无效(它也是一种服务器端技术)。
【解决方案3】:

但是有没有更好的方法来停止客户端本身而不是检查服务器?

不——客户端在用户的控制之下,所以你在那里做的任何事情都可以被绕过。

必须在服务器上检查任何反垃圾邮件措施(速率限制、贝叶斯过滤、验证码等)。

【讨论】:

  • 因此,如果我必须检查服务器端,垃圾邮件发送者仍然会通过让我的网络服务器忙于他的请求来损害我的网站。有没有办法阻止这种情况?
  • Defending against DOS attacks 更像是一个系统问题而不是编程问题,并且之前已被标记为离题。
猜你喜欢
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2017-03-16
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多