- 防止跨站脚本攻击(XSS):通过设置CSP(Content-Security-Policy),可以限制浏览器只加载和执行来自特定泉源的脚本,从而防止恶意脚本注入和执行。
- 防止点击劫持攻击:通过设置X-Frame-Options响应头,可以防止网页被嵌入到其他网站的iframe中,避免用户在不知情的环境下触发恶意代码。
- 提高网站安全性:通过设置STS(Strict-Transport-Security)响应头,欺凌浏览器使用HTTPS协议与服务器通信,从而防止信息在传输过程中被窃取或窜改。
- 防止XSS攻击:通过设置X-XSS-Protection响应头,可以启用特定的XSS过滤器,以防止XSS攻击。
- 保护用户隐私:通过设置Referrer-Policy响应头,可以控制浏览器在请求时发送的referrer信息,以保护用户的隐私。
- 限制API和功能使用:通过设置Permissions-Policy响应头,可以限制网站可以使用的API和功能,从而低落潜在的安全风险。
- 防止信息泄漏:将Server和X-Powered-By响应头设置为“NONE”或删除它们,可以防止袒露服务器类型和软件版本信息,从而低落潜在的安全风险。
二、Nginx配置概览
server {
server_name xxxxx.com;
listen 443 ssl;
add_header Content-Security-Policy "default-src ‘self’ data: *.xxx.com ‘unsafe-inline’ ‘unsafe-eval’ mediastream: ";
add_header X-Content-Type-Options “nosniff”;
add_header X-XSS-Protection “1; mode=block”;
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”;
add_header Referrer-Policy “origin”;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
…
}
三、内容安全战略Content-Security-Policy(CSP)
应对漏洞:XSS攻击
Content-Security-Policy (CSP) 是一种网页安全战略,用于减少和防止跨站点脚本 (XSS)、点击劫持等攻击。CSP通过限制网页可以加载或执行的资源的泉源来保护网站免受恶意代码的攻击。它可以通过HTTP头或网页中的标签来实现。
CSP通过指定可信托的资源泉源,如脚本、样式表、字体、图像和其他嵌入的内容,来限制网页中可以加载的内容。假如网页中引用了来自未被信托的源的资源,如恶意脚本或非法广告,浏览器将拒绝加载这些资源,从而提供额外的安全性。
CSP还提供了其他功能,如报告机制,允许网站管理员获取有关被阻止或粉碎的内容的报告,并通过这些报告来改进网站的安全性。
在 Nginx 中配置 Content-Security-Policy,可以通过在配置文件中添加 add_header 指令来实现。
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy “default-src ‘self’; script-src ‘self’ https://ajax.googleapis.com; style-src ‘self’ https://fonts.googleapis.com;”;
其他配置…
}
}
上述示例中,为全部请求设置了一个简单的 CSP 战略,允许从同一域名加载资源,并允许从 Google 的 AJAX API 和 Google 字体加载脚本和样式
3.1CSP指令集及其阐明
指令 阐明 default-src 设置网站默认的安全战略,适用于未指定安全战略的资源。 connect-src 控制页面可以建立连接的泉源,防止恶意站点通过连接发起攻击。 font-src 控制字体资源的加载泉源,防止加载恶意字体文件。 form-action 控制表单提交的目标URL,防止跨站请求伪造(CSRF)攻击。 frame-ancestors 控制嵌套的frame或iframe的泉源,防止点击劫持攻击。 frame-src 控制frame或iframe中加载的页面的泉源,防止嵌套的恶意页面的攻击。 image-src 控制图片资源的加载泉源,防止加载恶意图片文件。 media-src 控制媒体资源(如音频、视频)的加载泉源,防止加载恶意媒体文件。 object-src 控制object标签和embed标签中加载的内容的泉源,防止加载恶意内容。 script-src 控制JavaScript脚本的加载泉源,防止执行恶意脚本。 style-src 控制CSS样式表的加载泉源,防止加载恶意样式表。 report-uri 指定报告非常信息的URI,方便管理员实时发现和处理安全题目。 upgrade-insecure-requests 要求浏览器将全部HTTP请求升级为HTTPS请求,提高安全性。 sandbox 对页面中的某些元素进行限制,防止恶意代码对其进行操纵。 注:以下是一些常见参数及其阐明和示例。可以根据具体需求进行配置。
3.2default-src指令的参数、阐明和示例
参数 阐明 示例 self 允许加载同源的资源 default-src 'self'; * 允许加载恣意泉源的资源 default-src '*'; none 不允许加载任何资源,是最严格的设置 default-src 'none'; unsafe-inline 允许内联脚本和样式,但存在安全风险 default-src 'unsafe-inline'; unsafe-eval 允许使用eval()函数执行代码,存在安全风险 default-src 'unsafe-eval'; strict-dynamic 只允许动态生成脚本和样式,不允许内联脚本和样式 default-src 'strict-dynamic'; https: 只允许加载HTTPS资源 default-src 'https:'; data: 允许加载data:协议的资源,如文件上传等 default-src 'data:'; 以下是一个示例(允许从同一域名加载资源)ÿ
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |