首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何理解和减少Rails应用程序中的IP欺骗攻击错误?

如何理解和减少Rails应用程序中的IP欺骗攻击错误?
EN

Stack Overflow用户
提问于 2014-01-22 19:18:44
回答 2查看 1.8K关注 0票数 8

我从我的错误报告服务收到了很多关于IP欺骗攻击的电子邮件,而且频率越来越高。如果我正确理解,当请求设置一个HTTP报头,指定请求来自的IP地址不是原始IP地址时,就会发生这种情况。

错误消息如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
IP spoofing attack?!HTTP_CLIENT_IP="10.212.0.172"HTTP_X_FORWARDED_FOR="10.212.0.172, 68.180.224.232"

如果我正确地阅读了这个错误消息,那么这个错误消息中的两个IP地址是本地IP地址(10.x.x.x)和一个Yahoo!IP地址(68.180.224.232)。

我不确定我是否正确的阅读,但似乎这可能是由雅虎爬虫造成的。错误报告在许多不同的URL上,这使它看起来像一个爬虫。而且,这似乎是一个合法的请求,因为它是通过外部IP路由的内部IP。

我的问题是:

  • 如何确定这些请求是合法请求还是恶意请求。
  • 如果是恶意的,允许这些获取请求有什么坏处?
  • 无论哪种方式,我如何防止这些错误发生(除了关闭电子邮件通知)?我需要找到阻止IP地址的方法吗?如果这是合法的请求呢?我需要设置某种白名单吗?

雅虎更新(Update):我查看了请求参数,用户代理确实是雅虎爬虫:

Mozilla/5.0 (兼容;Yahoo!浆糊;http://help.yahoo.com/help/us/ysearch/slurp)

EN

回答 2

Stack Overflow用户

发布于 2020-11-19 05:47:34

如何确定这些请求是合法的还是恶意的?

IP欺骗本身并不危险,但它主要用于DDoS (分布式拒绝服务)攻击,将IP地址屏蔽到不同的IP地址,使其呈现分布式。您可以使用这个创业板这里来计算出任何一个IP地址都是机器人/爬虫/蜘蛛。

如果是恶意的,允许这些GET请求有什么害处?

通过允许来自欺骗IP的GET请求,您很容易被DDoS‘’ed和您的服务器上的负载将增加,如果您有自动缩放打开,您将不得不花费更多。

无论怎样,我如何防止这些错误发生(除了关闭电子邮件通知)?我需要找到阻止IP地址的方法吗?如果这是合法的请求呢?我需要设置某种白名单吗?

请参考这个答案这里,它详细说明了解决这个问题的最佳方法。我有另一种方法,我将在下面解释。

我还没有测试下面的代码,但简而言之,它检查两个标头是否都存在,如果是,则检查它们是否相等。如果这两种情况都为真,则可以引发异常或重定向到状态代码为400的错误页,由您决定。

代码语言:javascript
代码运行次数:0
运行
复制
    def ip_spoofing_check
        if request.env['HTTP_CLIENT_IP'] && request.env['HTTP_X_FORWARDED_FOR']
            if request.env['HTTP_CLIENT_IP'] != request.env['HTTP_X_FORWARDED_FOR']
            response.status = 400
            response = {:status => false, :message => "IP Spoofing Attempt"}
            respond_to do |format| format.json { render json: response} end
            end
        end
    end

不要忘记在应用程序控制器的before_action中调用此函数。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2014-01-22 20:00:30

也许不是一个完整的答案,但我一直在使用这个gem作为异常通知,它支持过滤出爬虫引发的异常

爬行器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21291959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档