巧用Nginx 屏蔽 不安全的HTTP请求

2019年3月28日17:25:18 发表评论 1,109 views

最近公司在做等保三级,里面要求定期去做渗透测试,在测试的过程中发现HTTP请求的方式有多种,很多都不安全,所以这里就建议大家屏蔽掉,前提是你们的业务没有在用哦~~~~ 其实这个功能可以在代码里实现。

巧用Nginx 屏蔽 不安全的HTTP请求

一、Http请求中8种请求方法

  • opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能)
  • Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
  • Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
  • Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
  • Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
  • Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面)
  • Trace 回显服务器收到的请求,用于测试和诊断
  • Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器
http服务器至少能实现get、head、post方法,其他都是可选的

二、Nginx设置屏蔽案例

location / {    #屏蔽那个站点就写在下
   if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 403; 
    }
    root html;
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header           Host $host;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size  100m;
    index index.html index.htm index.do index.jsp home/index.do;
}

重新加载nginx

/etc/init.d/nginx reload #reload有时候会不生效,建议重启加载

三、Tomcat 案例

如果设置全局拒绝,修改conf/web.xml,如果是针对单个应用拒绝,修改应用下的web.xml,在根节点增加以下部分

<security-constraint>
     <web-resource-collection>
         <url-pattern>/*</url-pattern>
         <http-method>PUT</http-method>
         <http-method>DELETE</http-method>
         <http-method>HEAD</http-method>
         <http-method>OPTIONS</http-method>
         <http-method>TRACE</http-method>
     </web-resource-collection>
     <auth-constraint>
     </auth-constraint>
</security-constraint>
<login-config>
     <auth-method>BASIC</auth-method>
</login-config>

注意: Tomcat屏蔽的方法可能会被第三方检测工具异常,建议还是使用nginx。

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: