保护网站免受PHP Curl post方法的侵害?

时间:2010-08-04 09:54:56

标签: php post curl protection

好的,我们假设我们有一个允许人们发表评论的表单。如您所知,“坏人”可以轻松地在PHP Curl的帮助下向我发送垃圾邮件。如何保护我的网站免受不包括验证码的影响?谢谢。

4 个答案:

答案 0 :(得分:4)

如果您的意思是“如何保护我的网站不被浏览器以外的程序访问”,答案几乎就是“您不能”。浏览器只是一个发送HTTP请求的程序。您可以玩试图拒绝看起来不是来自浏览器的HTTP请求的游戏,但对于任意程序(使用curl或Perl / Python / Ruby库的程序)来模拟标题是非常容易的。 “真正的”浏览器发送。

答案 1 :(得分:2)

通常用于生成随机值并将其存储在用户会话中。 当我输出表单时,我将此值添加为隐藏输入。

发布表单时,将发布的值与会话中的值进行比较。仅使用每个值一次(因此在输出表单之前更改它)。

那些垃圾邮件通常不存储cookie,这意味着当执行帖子时,你没有当前的会话 - >没有价值可以比较,所以你知道有什么事情在发生。如果它们碰巧存储了cookie,它们将针对每个帖子更改的表单,只有第一次提交才会成功。如果他们每次都重新加载页面并解析表单,则此方法不起作用。但我认为没有办法防止这种情况发生。

当然,这意味着您需要为您网站上的每个访问者分配会话,这也意味着存储Cookie。无论是那个还是验证码,我都不知道其他方式。

答案 2 :(得分:1)

好吧,你可以尝试在包含有效sessionid的表单上隐藏控件。这个sessionid将在POST时验证,只有在成功的情况下才会有效。

这可以使用/不使用javascript。 吉姆

答案 3 :(得分:1)

最简单的方法是使用某种形式的验证码保护(reCaptcha)或让用户在发布评论之前登录(这实际上并不能防止垃圾邮件,但它可以更容易通过阻止对垃圾邮件发送者采取行动他们的帐户)。

除此之外,您还可以采取一些简单的预防措施,即。限制他们可以在特定时间范围内执行的评论数量 - 并且可能仅在超过此限制时显示验证码以确定它们是人类(如此处为SO)。