最近公司在做等保三级,里面要求定期去做渗透测试,在测试的过程中发现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精品交流群
-
- 微信公众号
-