这是来自 Nginx 邮件列表的内容:
Nginx URI处理安全限制绕过漏洞(CVE-2013-4547)
Nginx 的安全限制可能会被某些请求给忽略,(CVE-2013-4547).
当我们通过例如下列方式进行 URL 访问限制的时候,如果攻击者使用一些没经过转义的空格字符(无效的 HTTP 协议,但从 Nginx 0.8.41 开始因为考虑兼容性的问题予以支持)那么这个限制可能无效:
location /protected/ {
deny all;
}
当请求的是 "/foo /../protected/file" 这样的 URL (静态文件,但 foo 后面有一个空格结尾) 或者是如下的配置:
location ~ \.php$ {
fastcgi_pass ...
}
当我们请求 "/file \0.php" 时就会绕过限制。
该问题影响 nginx 0.8.41 - 1.5.6.
该问题已经在 Nginx 1.5.7 和 1.4.4 版本中修复。
补丁程序在:
配置上临时的解决办法是:
if ($request_uri ~ " ") {
return 444;
}
推荐阅读:
Nginx做负载均衡报:nginx: [emerg] could not build the types_hash
Nginx 负载均衡模块 ngx_http_upstream_module 详述
Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器
Ubuntu安装Nginx php5-fpm MySQL(LNMP环境搭建)
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里