web常见XSS攻击解析和解决

一、反射型XSS漏洞

1、当用户浏览器输入网址访问一个网站时,一般网址会形如:www.xxx.com?a=b…这样子,www.xxx.com为域名,a为参数名,b为参数值;而网站后台会更具参数名获取参数,如:$_GET[‘a’],假如后台程序不做任何处理就把这个获取到的数据返回输出到客户端浏览器,就会有XSS攻击的风险。看下面代码。

<?php
$a = $_GET['a'];
echo $a.'ss';

如果用户输入www.xxx.com?a=123敲回车,浏览器会输出:123ss;可如果输入www.xxx.com?a=<script>alert(123)</script>呢?浏览器会输出:

浏览器执行了在url地址输入的JS脚本,如果是攻击者这样输入了具有攻击性的代码比如document.cookie等等,就会盗取用户的cookie信息,比如账号名称密码等等。
2、解决办法:对于用户在浏览器输入的任何信息都要进行过滤;比如htmlentities()函数,将字符转换成HTML实体,$a = htmlentities($_GET['a']); 输出:<script>alert(123)</script>ss;这样就产生不了任何攻击。

二、存储型XSS漏洞

1、当用户注册、登录、搜索、填入个人信息、使用富文本编辑器等类似的信息录入时,比如:
在这里插入图片描述
如果不对用户输入的信息进行过滤,用户在输入用户名时输入一段可在服务器端运行的存储在数据库等的代码就会造成非常严重的后果。
2、比如SQL注入:用户在用户名输入框:abcd 1=1 # 点击登录就有可能不通过密码验证直接登录到abcd账号。
3、解决办法,还是过滤用户输入的信息,多层过滤,包括前端对于输入框进行输入的限制,正则匹配替换危险字符等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值