检测到目标X-Content-Type-Options响应头缺失
详细描述 | X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。 X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击。 |
---|---|
解决办法 | 将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html |
检测到目标X-XSS-Protection响应头缺失
详细描述 | HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。 X-XSS-Protection响应头的缺失使得目标URL更易遭受跨站脚本攻击。 |
---|---|
解决办法 | 将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html |
检测到目标Content-Security-Policy响应头缺失
详细描述 | HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。 Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。 |
---|---|
解决办法 | 将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html |
检测到目标Strict-Transport-Security响应头缺失
详细描述 | Web 服务器对于 HTTP 请求的响应头中缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效。 当 Web 服务器的 HTTP 头中包含 Strict-Transport-Security 头时,浏览器将持续使用 HTTPS 来访问 Web 站点,可以用来对抗协议降级攻击和 Cookie 劫持攻击。 其可选的值有: max-age=SECONDS,表示本次命令在未来的生效时间 includeSubDomains,可以用来指定是否对子域名生效 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。 |
---|---|
解决办法 | 1)修改服务端程序,给 HTTP 响应头加上 Strict-Transport-Security 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader("Strict-Transport-Security", "value") 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header("Strict-Transport-Security: value") 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader "Strict-Transport-Security", "value" 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response["Strict-Transport-Security"] = "value" 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers["Strict-Transport-Security"] = "value"; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Strict-Transport-Security 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Strict-Transport-Security value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Strict-Transport-Security "value"。 |
检测到目标Referrer-Policy响应头缺失
详细描述 | Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效。 当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也成为了一个不安全的因素,所以就有了 Referrer-Policy,用于过滤 Referrer 报头内容,其可选的项有: no-referrer no-referrer-when-downgrade origin origin-when-cross-origin same-origin strict-origin strict-origin-when-cross-origin unsafe-url 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。 |
---|---|
解决办法 | 1)修改服务端程序,给 HTTP 响应头加上 Referrer-Policy 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader("Referrer-Policy", "value") 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header("Referrer-Policy: value") 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader "Referrer-Policy", "value" 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response["Referrer-Policy"] = "value" 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers["Referrer-Policy"] = "value"; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Referrer-Policy 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Referrer-Policy value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Referrer-Policy "value"。 |
检测到目标X-Permitted-Cross-Domain-Policies响应头缺失
详细描述 | Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效。 当一些在线的 Web Flash 需要加载其他域的内容时,很多 Web 会通过设置一个 crossdomain.xml 文件的方式来控制其跨域方式。很有可能有些开发者并没有修改 crossdomain.xml 文件的权限,但是又有和跨域的 Flash 共享数据的需求,这时候可以通过设置 X-Permitted-Cross-Domain-Policies 头的方式来替代 crossdomain.xml 文件,其可选的值有: none master-only by-content-type by-ftp-filename all 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。 |
---|---|
解决办法 | 1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader("X-Permitted-Cross-Domain-Policies", "value") 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header("X-Permitted-Cross-Domain-Policies: value") 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader "X-Permitted-Cross-Domain-Policies", "value" 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response["X-Permitted-Cross-Domain-Policies"] = "value" 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers["X-Permitted-Cross-Domain-Policies"] = "value"; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies "value"。 |
检测到目标X-Download-Options响应头缺失
详细描述 | Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效。 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。 |
---|---|
解决办法 | 1)修改服务端程序,给 HTTP 响应头加上 X-Download-Options 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader("X-Download-Options", "value") 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header("X-Download-Options: value") 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader "X-Download-Options", "value" 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response["X-Download-Options"] = "value" 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers["X-Download-Options"] = "value"; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Download-Options 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Download-Options value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Download-Options "value"。 |
检测到目标网站存在无效链接
详细描述 | 无效链接是指存在于页面中,但其指向的资源已经不存在。 本漏洞属于Web应用安全常见漏洞。 |
---|---|
解决办法 | 将无效链接从页面中删除。 |
点击劫持:X-Frame-Options未配置
详细描述 | 点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。 HTTP 响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个 iframe 中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在ClickJacking攻击风险。网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。 |
---|---|
解决办法 | 修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种: 1、DENY:不能被嵌入到任何iframe或者frame中。 2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。 3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。 例如: apache可配置http.conf如下: <IfModule headers_module> Header always append X-Frame-Options "DENY" </IfModule> IIS可配置相关网站的Web.config如下: <system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="deny" /> </customHeaders> </httpProtocol> ... </system.webServer> |
?
可以在nginx http块中配置
? ?# 相关安全漏洞响应头
? ?# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
? ?add_header X-Content-Type-Options nosniff;
? ?# 检测到目标 X-XSS-Protection响应头缺失
? ?add_header X-XSS-Protection "1; mode=block";
? ?# 检测到目标 Content-Security-Policy响应头缺失
? ?add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
? ?# 检测到目标 Referrer-Policy响应头缺失
? ?add_header Referrer-Policy "no-referrer-when-downgrade" always;
? ?# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
? ?add_header X-Permitted-Cross-Domain-Policies none;
? ?# 检测到目标 X-Download-Options响应头缺失
? ?add_header X-Download-Options noopen;
? ?# 检测到目标 Strict-Transport-Security响应头缺失
? ?add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
# 相关安全漏洞响应头
# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
add_header X-Content-Type-Options nosniff;
# 检测到目标 X-XSS-Protection响应头缺失
add_header X-XSS-Protection "1; mode=block";
# 检测到目标 Content-Security-Policy响应头缺失
add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
# 检测到目标 Referrer-Policy响应头缺失
add_header Referrer-Policy "no-referrer-when-downgrade" always;
# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
add_header X-Permitted-Cross-Domain-Policies none;
# 检测到目标 X-Download-Options响应头缺失
add_header X-Download-Options noopen;
# 检测到目标 Strict-Transport-Security响应头缺失
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
完整http块
#http块
http {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 256k;
fastcgi_buffers 2 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
# 相关安全漏洞响应头
# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
add_header X-Content-Type-Options nosniff;
# 检测到目标 X-XSS-Protection响应头缺失
add_header X-XSS-Protection "1; mode=block";
# 检测到目标 Content-Security-Policy响应头缺失
add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
# 检测到目标 Referrer-Policy响应头缺失
add_header Referrer-Policy "no-referrer-when-downgrade" always;
# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
add_header X-Permitted-Cross-Domain-Policies none;
# 检测到目标 X-Download-Options响应头缺失
add_header X-Download-Options noopen;
# 检测到目标 Strict-Transport-Security响应头缺失
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
#隐藏nginx版本信息
server_tokens off;
#文件扩展名与文件类型映射表
include /etc/nginx/mime.types;
#默认文件类型,默认为text/plain
default_type application/octet-stream;
#日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main if=$ignore_ua;
sendfile on;
#tcp_nopush on;
#连接超时时间,默认为75s,可以在http,server,location块。
keepalive_timeout 300;
#gzip on;
client_max_body_size 1024m;
#包含的自定义配置文件块
include /etc/nginx/conf.d/*.conf;
#是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。
fastcgi_intercept_errors on;
#Disable logging for ELB healthcheck. It creates lots of noise on logging platform
##关闭健康检测日志的输出
map $http_user_agent $ignore_ua {
default 1;
"clb-healthcheck" 0;
}
}