相关疑难解决方法(0)

正则表达式匹配DNS主机名或IP地址?

有没有人有一个方便的正则表达式,可以匹配任何合法的DNS主机名或IP地址?

编写一个可以在95%的时间内工作的一个很容易,但是我希望得到一些经过充分测试的东西,以完全匹配最新的RFC主机名规范.

regex dns

358
推荐指数
4
解决办法
33万
查看次数

Rails 3中间件修改请求标头

我的设置:Rails 3.0.9,Ruby 1.9.2

我正在开发我的第一个中间件应用程序,似乎所有示例都涉及修改响应.我需要检查和修改请求标头,特别是删除导致Rack 1.2.3中的错误的一些有问题的标头.这是典型的hello world Rack应用程序.

my_middleware.rb

class MyMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    @status, @headers, @response = @app.call(env)
    [@status, @headers, @response]
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有人有一个例子来处理请求头部并在Rack获得它之前拦截它们?我需要在进入Rack进行解析之前修改请求标头.我有这个设置,认为把它放在Rack之前可能会做到这一点,但我不确定是否以这种方式强制执行.

application.rb

config.middleware.insert_before Rack::Lock, "MyMiddleware"
Run Code Online (Sandbox Code Playgroud)

rack middleware ruby-on-rails-3

15
推荐指数
1
解决办法
8826
查看次数

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

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

错误消息如下所示:

IP spoofing attack?!HTTP_CLIENT_IP="10.212.0.172"HTTP_X_FORWARDED_FOR="10.212.0.172, 68.180.224.232"
Run Code Online (Sandbox Code Playgroud)

如果我正确读取此错误,则此错误消息中的两个IP地址是本地IP地址(10.xxx)和Yahoo! IP地址(68.180.224.232).

我不确定我是否正确阅读,但似乎这可能是由Yahoo抓取工具引起的.错误会报告许多不同的URL,使其看起来像一个爬虫.此外,它似乎是一个合法的请求,因为它是通过外部IP路由的内部IP.

我的问题是:

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

更新:我查看了请求参数,用户代理确实是Yahoo抓取工具:

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

security ip ruby-on-rails spoofing

7
推荐指数
1
解决办法
813
查看次数