配置Nginx以解决http host头攻击漏洞

配置Nginx以解决http host头攻击漏洞

最近开发的应用接受了安全测试,发现了几个安全问题,在解决的过程中记录一下;

一、HTTP Host头攻击漏洞解决

检测应用是否在请求目标站点时返回的URL是直接将Host头拼接在URI前。

解决方法:验证host

server {
  listen 80;
  server_name 127.0.0.1 192.168.1.32;
  if ($http_Host !~* ^192.168.1.32|127.0.0.1$)
  {
    return 403;
  }
}

二、 HTTP Method非POST和GET方式击漏洞解决

尽量用get和post的api的应用,禁用OPTIONS

解决方案:在nginx的server中配置,只允许GET、POST、PUT、DELETE 类型请求通过,其余不安全的请求方式返回403状态码,代码如下。

if ($request_method !~* GET|POST|PUT|DELETE) {
  return 403;
}