当前位置: 旋风说(旋风PHPer分享网)> 技术文章> 正文
xss攻击可以说是最常见的攻击了,防不胜防,因为我们总不能任何的post提交都挨个检查和过滤xss吧?有些正常的xss可能也会被加载怎么办?所以我们就需要使用内容安全政策,简称csp,以下内容我都用简拼csp,就不再说网站安全政策几个字了。
csp说的直白点,就是告诉打开网页的浏览器,哪一些东西在这个网页允许被加载,哪一些东西在这个网页不允许被加载,本质上和白名单差不多。可以说,csp是防止xss攻击的利器!因为目前很多网站攻击,都会基于xss的post提交攻击,当用户post提交之后,xss如果没被过滤,那么打开网页,就会执行这个xss地址了,网站被攻击就变得很容易。
由于csp设置方法很多,防护等级也不同,我这边只介绍最简单和最常用的方法:不符合csp规则的链接和资源禁止被加载!
使用方法:
1.http头信息
2.http的meta标签,我这里主要说一下使用meta标签的方法:
在html中,使用meta标签,如下:
<meta http-equiv="content-security-policy" content="default-src 'self' ">
上面这一行的意思是,当页面加载的时候,所有的引用,比如:css、js、img、iframe、font等,只能引用当前域名下的,其他域名的引用资源将不再被加载!
当然,这是一个范限制,您可以精确到每一个步骤,比如所有资源都是只允许当前域名,但是script可以允许使用其他的域名:
<meta http-equiv="content-security-policy" content="default-src 'self' ;script-src: demo.com">
还可以不限制某些链接,比如不限制css的引入地址:
<meta http-equiv="content-security-policy" content="default-src 'self' ;script-src: demo.com ; style-src:*">
当然除此之外,还可以有其他的限制,就不一一列举了,我直接把限制的名字发出来:
script-src:外部脚本
style-src:样式表
img-src:图像
media-src:媒体文件(音频和视频)
font-src:字体文件
object-src:插件(比如 Flash)
child-src:框架
frame-ancestors:嵌入的外部资源(比如<frame>、<iframe>、<embed>和<applet>)
connect-src:HTTP 连接(通过 XHR、WebSockets、EventSource等)
worker-src:worker脚本
manifest-src:manifest 文件
当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。
上一篇: https页面所有非https协议不加载
下一篇: 老版本宝塔升级后,定时任务无法执行
相关文章
评论:
文明上网理性发言,请遵守 新闻评论服务协议