我刚刚开始使用CloudFlare,但仍然存在获取CloudFlare代理IP地址而不是访问者地址的问题.CloudFlare有很多解决方案,但我没有看到任何Rails.
我正在使用Rails 3.2.17.
看起来如果我将custom_proxies参数设置为包含所有CloudFlare的IP范围(以及所有标准本地和私有范围)的正确正则表达式初始化ActionDispatch :: RemoteIp ,它可能会解决我的问题.
问题:
1)这是正确的方法吗?
CloudFlare有一大堆IP范围,所有这些都需要转换为正则表达式.这些范围可能会在未来发生变化,即使CloudFlare说它们并不常见,而且我可能不知道它似乎有点脆弱.
2)如何使用custom_proxies参数初始化ActionDispatch :: RemoteIP?
我标记了字符编码和文本,因为我知道如果你键入'and' == 'and'rails控制台,或者大多数其他编程语言,你会得到true.但是,当我的一个用户将他的文本粘贴到我的网站时,我遇到了问题,由于文本的某些问题,我无法拼写检查或通过copyscape验证它的原创性.(或者我对文本编码的理解?)
例:
如果您将以下行复制并粘贴到rails控制台中,您将获得false.
'?nd' == 'and' #=> false
Run Code Online (Sandbox Code Playgroud)
如果将以下行复制并粘贴到rails控制台中,true即使它们在浏览器中看起来完全相同,也会得到.
'and' == 'and' #=> true
Run Code Online (Sandbox Code Playgroud)
不同之处在于,在第一个示例中,第一个'?nd'是从我的用户文本中复制并粘贴导致问题的文本.所有其他实例'and'都在浏览器中输入.
这是编码问题吗?如何解决我的问题?