错误的HTTP客户端没有转义哈希标志并将它们发送到nginx,如下所示:
GET /foo/escaped%23stuff
而不是:
#
这会破坏我的nginx配置,因为nginx会删除proxy_pass
指令中return 200 "$request_uri";
之后的文本。如何逃避哈希标志?
location
确实告诉我nginx正在阅读它,所以看起来它是可能的。但是,Nginx在import socket
def get(host, port, uri):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
sock.send('GET {} HTTP/1.0\r\nHost: {}\r\n\r\n'.format(uri, host))
return sock.recv(1000)
块中忽略它,所以我实际上无法将它与任何东西匹配。您可以使用以下代码在Python中发送未转义的HTTP GET请求:
#rightDivider