使用内容安全策略(CSP)
CSP 通过指定哪些内容资源是可信的,来减少和报告 XSS 攻击(跨站脚本攻击)。你可以通过在 HTTP 响应头中添加 Content-Security-Policy 或在 HTML 中使用 <meta> 标签来实现 CSP。示例:通过 HTTP 响应头实现 CSP
在服务器配置文件或服务器脚本中,为 HTTP 响应添加 Content-Security-Policy 头部。例如,在 Apache 服务器中,你可以在 .htaccess 文件中添加如下指令:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted-source.com;"这条策略指定,所有的资源(如脚本、样式等)默认只能从当前域名加载('self'),而脚本资源只能从当前域和 https://trusted-source.com 加载。
示例:通过 HTML <meta> 标签实现 CSP
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://trusted-source.com;">
使用子资源完整性(SRI)
SRI 通过验证载入资源(如脚本或样式表)的完整性哈希值,来保护网站免受篡改的三方资源威胁。当资源的实际哈希值与指定的哈希值不匹配时,浏览器将不会加载该资源。示例:为脚本和样式表添加 SRI
首先,使用像是 SHA-256、SHA-384 或 SHA-512 这样的加密哈希函数计算资源的哈希值。然后,使用 integrity 属性在资源标签上指定哈希值,并指定 crossorigin 属性用于跨域资源。
<script src="https://trusted-source.com/library.js" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9DDeJnDqz7vgqWoP4KpVbFaw/58A" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://trusted-source.com/style.css" integrity="sha384-xxxxx/yyyyy/zzzzz" crossorigin="anonymous">通过这种方式,你的网页就可以利用 CSP 和 SRI 来增强安全性,有效防止内容和脚本被篡改。记住,实施这些安全措施时仔细测试网站,确保没有意外阻止了有效资源的加载。
网友回复