按照等保要求,跨域的不安全性,需要修复。 这个需要根据客户端传递的请求头中的Origin值,进行安全的跨站策略配置,目的是对非法的origin直接返回403错误页面。 漏洞复现复现方式为在 Header 中指定 Origin 请求头,看是否可以请求成功。 能够请求成功,说明未对请求头进行控制,有漏洞。 curl-H'Origin:http://test.com'http://192.168.15.32:80 修复办法在http中定义一个通过map指令,定义跨域规则并返回是否合法 http { ... // 再白名单里边返回0,不在返回1 map $http_origin $allow_cors { default 1; "~^https?://.*?/.tripwolf/.com.*$" 1; "~^(https?://(dmp.finerice.cn)?)$" 1; "~*" 0; } server { # 指定允许其他域名访问 add_header Access-Control-Allow-Origin $http_origin; # 允许的请求类型 add_header Access-Control-Allow-Methods GET,POST,OPTIONS; # 许的请求头字段 add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"; location / { # 进行请求拦截 if ($allow_cors = 0){ return 403; } root /mnt/data; } }} 验证方法通过POSTMAN进行请求模拟,配置不同的Origin,查看返回结果。 如果不需要跨域,则直接清理掉add_headerAccess-Control-Allow-Origin等相关配置,就不这么复杂了。 下载地址: docker docker命令中必须加上sudo的问题解决方法 |