注意:请阅读完整的问题
我试图理解为什么每次请求页面时浏览器都没有向我显示任何X-Forwarded-For标头
BTW这里是我的请求标题看起来像
Request URL:http://localhost:3000/users/sign_in
Request Method:GET
Status Code:304 Not Modified
Run Code Online (Sandbox Code Playgroud)
请求标题:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Cookie:undefined=0; poasterapp=s%3A4faaa6b1723e7c6fbd949083532c52598652547b.sNX%2BKOEed2TEQkQN7I7K5lgpoHMRpwerKFvUegMnTVI; _minerva_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGOgphbGVydFQ6DEBjbG9zZWRGOg1AZmxhc2hlc3sGOwpJIgAGOwBUOglAbm93MEkiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--6bd89ce9d29e9bdcf56573f9a153dc663a8fe755
Host:localhost:3000
If-None-Match:"785d34e3998360353567fc710af123fb"
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
响应标题(不需要但仍然)
Cache-Control:max-age=0, private, must-revalidate
Connection:close
ETag:"785d34e3998360353567fc710af123fb"
Server:thin 1.5.0 codename Knife
Set-Cookie:_minerva_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--dfb3ce9f5c97463cfcd0229a133654e6cc606d98; path=/; HttpOnly
X-Request-Id:41a6f3062dc8bc36b7b3eae71dc5075d
X-Runtime:89.238257
X-UA-Compatible:IE=Edge
Run Code Online (Sandbox Code Playgroud)
现在如上所述,我在请求标头中看不到任何 X-Forwarded-For
阅读X-Forwarded-For的维基页面让我觉得,它是由缓存服务器完成的(在我的情况下,我相信是我的ISP提供商)so am I safe to believe that the **X-Forwarded-For** headers is something that is added at the caching …
在这个例子中,
[1, 2, 3].each_with_index.map{|i, j| i * j}
# => [0, 2, 6]
Run Code Online (Sandbox Code Playgroud)
我的理解是,由于each_with_index
枚举器被链接到map
,map
行为类似于each_with_index
在块内传递索引,并返回一个新数组.
为了这,
[1, 2, 3].map.each_with_index{|i, j| i * j}
# => [0, 2, 6]
Run Code Online (Sandbox Code Playgroud)
我不知道如何解释它.
在这个例子中,
[1, 2, 3, 4].map.find {|i| i == 2}
# => 2
Run Code Online (Sandbox Code Playgroud)
我期待输出[2]
,假设它map
被链接到find
,map
并将返回一个新数组.
另外,我看到了这个:
[1, 2, 3, 4].find.each_with_object([]){|i, j| j.push(i)}
# => [1]
[1, 2, 3, 4].each_with_object([]).find{|i, j| i == 3}
# => [3, []]
Run Code Online (Sandbox Code Playgroud)
你能让我知道如何解释和理解Ruby中的枚举链吗?
每次我尝试在ack中添加类型似乎都失败,即在ack中添加一个type(log
)
ack --type-set log:ext:log
ack: No regular expression found.
Run Code Online (Sandbox Code Playgroud)
要么
ack --type-add log:ext:log
ack: No regular expression found.
Run Code Online (Sandbox Code Playgroud)
任何人都有这个或它的线索
我正在寻找在Ruby中构建一个bittorrent客户端(尽管语言在这里并不重要).
我读了一个BEP规范,它说查询/announce
(没有DHT支持)跟踪器会给出一个当前为给定信息哈希连接的对等列表.
检查一下.我创建了一个torrent文件,我发现跟踪器返回我的机器的IP以及端口(我确认是我的机器上的Bittorrent客户端的运行端口,即Utorrent)
但是问题是Peers信息返回了我的ISP的IP即111.125.209.41
(面向IP的公众,因为我在NAT后面).
现在我无法通过我的ISP 连接(通过TCP)到我的机器上运行的进程.
任何人都可以建议bitorrent如何在这方面工作,我该怎么做才能解决这个问题.
它可能会通过UDP Bittorrent使用UDP保持打孔不确定TCP上发生了什么.
似乎Rails管理员的文档确实很差我只能找到这个链接https://github.com/sferik/rails_admin/wiki/Custom-action
但是没有在这个链接中提到如何在rails中使用自定义操作和视图管理员只安装下一个插件.我没有足够的时间来查看rails管理代码并找出如何做到这一点
这里我想要的是可以在这里的屏幕截图中引用
每当我尝试使用actionmailer传递邮件时,我无法使用actionmailer发送邮件它报告错误
ArgumentError:SMTP-AUTH已请求但缺少用户名
这是奇怪的,因为我能够通过Telnet发送邮件但不使用ActionMailer
附加Telnet屏幕截图
这是我的SMTP设置
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => '216.224.183.100',
:port => 25,
:domain => '[domain_name]',
:username => "[username]",
:password => "[password]",
:authentication => 'plain',
:enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉通过邮件没有被发送
今天早上突然我的HTTP客户端(HTTParty)抛出了一个错误 OpenSSL::SSL::SSLError: hostname does not match the server certificate
首先,我无法理解,今天我们几乎整天都在过去2年没有任何问题地拨打api电话
其次我不明白如何解决它,因为它是HTTParty内部的
我唯一知道的是我无法SSL_CERT_FILE
进入,ENV
但据说我已经在我的/etc/ssl/certs
(SSL_CERT_DIR
)中列出了ROOT CA
这是我的输出
irb(main):001:0> require "openssl"
=> true
irb(main):002:0> puts OpenSSL::OPENSSL_VERSION
OpenSSL 1.0.1 14 Mar 2012
=> nil
irb(main):003:0> puts "SSL_CERT_FILE: %s" % OpenSSL::X509::DEFAULT_CERT_FILE
SSL_CERT_FILE: /usr/lib/ssl/cert.pem
=> nil
irb(main):004:0> puts "SSL_CERT_DIR: %s" % OpenSSL::X509::DEFAULT_CERT_DIR
SSL_CERT_DIR: /usr/lib/ssl/certs
Run Code Online (Sandbox Code Playgroud)
最后,正如所说Openssl上没有任何变化,代码明智的唯一的事情就是openssl版本引用HEARTBLEED漏洞 的补丁
请注意,我们只修补openssl版本,但这didnt recompile the RUBY
可能是一个问题
有问题的Ruby是 ruby 1.9.3p327
Net :: HTTP库是版本httparty-0.13.0
注意: - 作为解决方案,我没有在OPENSSL中使用VERIFY_NONE选项
请遵循以下代码:
__ENCODING__
# => #<Encoding:UTF-8>
Encoding.default_internal
# => #<Encoding:UTF-8>
Encoding.default_external
# => #<Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)
案例1:HAML抛出 Encoding::UndefinedConversionError
string = "j\xC3\xBCrgen".force_encoding('ASCII-8BIT')
string.encoding
# => #<Encoding:ASCII-8BIT>
Haml::Engine.new("#{string}").render
## => Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8
ERB.new("<%= string %>").result(binding)
# => "jürgen"
# => Resulting encoding is #<Encoding:UTF-8>
Erubis::Eruby.new("<%= string %>").result(binding)
# => "j\xC3\xBCrgen"
# => resulting encoding is #<Encoding:ASCII-8BIT>
Run Code Online (Sandbox Code Playgroud)
案例2:HAML不会抛出错误
string = "Ratatouille".force_encoding('ASCII-8BIT')
string.encoding
# => #<Encoding:ASCII-8BIT>
Haml::Engine.new("#{string}").render
## => "Ratatouille\n"
## => resulting encoding is #<Encoding:UTF-8>
ERB.new("<%= string %>").result(binding)
# => "Ratatouille"
# …
Run Code Online (Sandbox Code Playgroud) 我通过HTTP重定向绑定收到SAML请求,SAML请求的内容如下所示
{ "SigAlg"=> " http://www.w3.org/2000/09/xmldsig#rsa-sha1 ", "SAMLRequest"=>"lVLLaoQwFP0VyT5jEqPG4AiFoSDMtNApXXQzxDxaQRObRDqfX3XoolAKXd7DPQ/uuXUQ4zDxo3tzc3zSH7MOMWkPe3DpcixzVVVQl4RBqoiCncEYEmkoY7k00hCQvGgfemf3gOwQSNoQZt3aEIWNC4RwCRGGiD6jkmPMs2KHUPYKksPi0lsRN + Z7jFPgafqpvejtbtQpSK7jYAPfsu3B7C13IvSBWzHqwKPk57vTkS + WfPIuOukG0NSbub9R/yaJELRfzUGzrhmtFut15qdeeheciY926K2u05toUz8sIu0huXd + FPFv9RXpFTTbKp/WA4WobQT/jEYrykwhNaQ66yDNMwY7wijEtMCmysqqo6xOb8Ga + tbjWYe1jtYqfW0uCucoYwWCHS3F0kRGoajWTpAiiJRZJRmu01 Y3 + CPt2i + AA =="}
它还具有Signature值
WkDaGzC6vPTlzh + EnFA5/8IMmV7LviyRh2DA5EHF0K0nl + xzBlKfNCYRnunpwoEvGhereGdI5xBpv + mc9IguiCaLZSZjDh6lIDdpvctCnmSNzORqzWQwQGeZ9vjgtCLjUn35VZLNs3WgEqbi2cL + ObrUDS2gV1XvBA3Q3RRhoDmi + XE89Ztnd1cNpR3XdA + EL2ENbMI2XAD9qSgMufUJY/3GBBpT7Vg1ODtPxBudq + sXrgPh/+ + WtUUitLkkfC8tdRTCS1EZPv h27I5g/VNza23Xl8w2HdAuYP0F2FjREo8VV2aUtaOUd/jAF9 + bfkGV93y1PzFttLxdBbFoxp6qBg ==
但我不明白如何验证此签名是否正确.
有关SAML绑定的第3.4.4.1节https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
To construct the signature, a string consisting of the concatenation of the RelayState (if present),
SigAlg, and SAMLRequest (or SAMLResponse) query string parameters (each one URLencoded)
is constructed in one of the following ways …
Run Code Online (Sandbox Code Playgroud) 建立 HTTP 连接时会导致什么导致返回EBADF(错误的文件描述符)。
这是我的以下代码,其中建立了 HTTP 连接。虽然现在错误很少(发生得很少)但是在我将这些错误进行救援之前,我需要了解EBADF的原因是什么
def make_http_request(url, headers={})
uri = URI(url)
Net::HTTP.start(uri.host, uri.port) do |http|
req = Net::HTTP::Get.new(uri, headers)
resp = http.request(req)
if resp.code.to_i != 200
logger.error "Retrieve #{resp.code} with #{url} and #{headers}"
return false
end
return resp.body
end
rescue SocketError, Net::ReadTimeout, Errno::ECONNREFUSED => e
logger.error "make_http_request #{url} with #{headers} resulted in #{e.message} \n #{e.backtrace}"
return false
end
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,connect syscall
即收到了在该给定时间点无效的 FD。但还是无法理解怎么会这样。
如果它有帮助,该代码可用于使用多线程运行的应用程序。
简而言之,上述方法的定义是这样的……
module Eval
def make_http_request(url, headers={})
...
...
..
end
def request_local_endpoint(url, …
Run Code Online (Sandbox Code Playgroud) ruby ×4
ack ×1
actionmailer ×1
bittorrent ×1
browser ×1
encoding ×1
enumerator ×1
haml ×1
http ×1
http-headers ×1
httparty ×1
list ×1
mailer ×1
nat ×1
net-http ×1
openssl ×1
padrino ×1
rails-admin ×1
saml-2.0 ×1
smtp ×1
ssl ×1
telnet ×1
xml ×1