gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:07:04 26 4
gpt4 key购买 nike

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

错误消息如下所示:

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。

我的问题是:

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

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

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

最佳答案

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

IP 欺骗本身并不危险,但它主要用于 DDoS(分布式拒绝服务)攻击,将 IP 地址屏蔽为不同的 IP 地址,使其看起来是分布式的。您可以使用这个 gem here找出任一 IP 地址是机器人/爬虫/蜘蛛。

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

通过允许来自欺骗性 IP 的 GET 请求,您很容易受到 DDoS 攻击,并且服务器上的负载将会增加,如果您启用了自动扩展,您将不得不花费更多。

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

引用这个答案here其中详细介绍了解决此问题的最佳方法。我有另一种方法,我将在下面解释。

我没有测试下面的代码,但简而言之,它检查两个 header 是否都存在,如果存在,则检查它们是否不相等。如果这两个条件都成立,那么您可以引发异常或重定向到状态代码 400 的错误页面,具体由您决定。

    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

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

祝你好运!

关于ruby-on-rails - 如何理解和减少 Rails 应用程序中的 IP 欺骗攻击错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com