xss漏洞防御方法

csp 安全策略

csp介绍: W3C组织还针对XSS攻击制定了一个叫做CSP的安全层,也就是内容安全策略(ContentSecurity Policy)。它的出现是为了帮助检测和缓解某些类型的攻击,比如跨站脚本(XSS)和数据注入等攻击,从而引入的浏览器策略。开发者可以根据CSP的规范,去创建一些很严格的规则,比如说白名单策略,管理网站允许加载的内容。当网站加载了非预期的内容,浏览器会及时阻止并且上报,减少出现安全风险时的损失。

防御原理:

<meta charset="utf-8">
 <?php
 //只允许加载本地源图片:
header("Content-Security-Policy:img-src 'self' ");
 ?>
 //允许加载所有源下的图片
<meta http-equiv="Content-Security-Policy" content="img-src*;">
 //加载的是一张我随意百度的图片
<img src="https://www.baidu.com/img/24lianghui_3fa64faa4dd8496d4ab2a1d411a93dad.gif"/>

当你加入了header("Content-Security-Policy:img-src 'self' ");内容时,他会禁止你访问外部链 接,既然你不能访问外部链接就不会访问到攻击者指定的地址去

我们可以看到图片不能加载,除此之外,我们在网络模块中,可以看到响应头中的确出现了安全政策。 当我们把header("Content-Security-Policy:img-src 'self' ");注释掉的时候,就可以发现图片可以加载了

 

我们可以通过指令添加更多的规则 

csp指令:

  • default-src : 定义针对所有类型(js/image/css/font/ajax/iframe/多媒体等)资源的默认加载策略,如果某类型资源没有单独定义策略,就使用默认的。
  • script-src : 定义针对JavaScript 的加载策略。
  • style-src : 定义针对样式的加载策略。
  • img-src : 定义针对图片的加载策略。
  • font-src : 定义针对字体的加载策略。
  • media-src : 定义针对多媒体的加载策略,例如:音频标签和视频标签。
  • object-src : 定义针对插件的加载策略
  • child-src :定义针对框架的加载策略
  • connect-src : 定义针对 Ajax/WebSocket 等请求的加载策略。不允许的情况下,浏览器会模拟一 个状态为400的响应。
  • sandbox : 定义针对 sandbox 的限制,相当于 的sandbox属性。
  • report-uri : 告诉浏览器如果请求的资源不被策略允许时,往哪个地址提交日志信息。
  • form-action : 定义针对提交的 form 到特定来源的加载策略。
  • referrer : 定义针对 referrer 的加载策略。
  • reflected-xss:定义针对XSS过滤器使用策略。
指令值 说明
* 允许加载任何内容
‘none’ 不允许加载任何内容
‘self’ 允许加载相同源的内容
www.a.com 允许加载指定域名的资源
*.a.com 允许加载a.com任何子域名的资源
https://a.com 允许加载a.com的https资源
https: 允许加载https资源
data: 允许加载data:协议,例如:base64编码的图片
‘unsafe-inline’ 允许加载inline资源,例如style属性、onclick、inlinejs、inlinecss等
unsafe-eval 允许加载动态js代码,例如eval()

 

httponly安全策略

httponly介绍: 跨站点脚本(XSS)攻击通常旨在窃取会话cookie。在这种攻击中,cookie值由使用JavaScript (document.cookie)的客户端脚本访问。然而,在日常使用中,Web应用程序很少需要通过JavaScript 访问cookie。因此,设计了一种保护cookie免受此类盗窃的方法:一个标志,告诉Web浏览器 cookie只能通过HTTP访问-HttpOnly标志。

设置httponly: setcookie('name','xielaoshi',['httponly'=>true]); 当我们设置好之后,我们可以在浏览器发现

此时httponly表示就是开启状态,这个时候你是无法用document.cookie获取到cookie的,所 以利用xss漏洞获取cookie就失效

 

posted @ 2024-05-08 17:28  吃饭睡觉娶岳梅  阅读(4)  评论(0编辑  收藏  举报