标签:脚本 xss 跨站 cookie 提交 input 页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
[type=text]{
width: 1200px;
}
</style>
</head>
<body>
<form action="http://localhost:4010/a.php" method="post">
<input type="text" name="msg">
<button type="submit">提交</button>
</form>
<script>
var form = document.querySelector('form');
var input = document.querySelector('input')
form.addEventListener('submit',subHandler)
function subHandler(){
var str = input.value;
input.value=str.replace(/<script>(.*?)<\/script>/ig,'$1');
// input.value=str.replace(/<script>(.*?)<\/script>/ig,"$1");
}
/*
用户输入的是script标签 或者相关脚本执行语句 或者sql语句的话
在后台就会被执行 这就是跨站脚本攻击
这就是xss攻击
获取当前cookie必须要是同一个域下的cookie
不是同一个域的是不能携带的
必须同域名
php页面解析会生成单独的html页面
如果有脚本语句 就会被执行 就会造成xss攻击
会被php卸载html中 就会执行 执行一个ajax 就可以盗走cookie
*/
/*
例子
一个评论 大家都能看到
评论发送一个脚本 用于获取cookie
当你看我发送的评论时 就会执行脚本从而获取你当前页面的cookie
*/
/*
所以在提交的时候
对于输入的内容进行检测
匹配到的脚本语句 进行替换 使用正则进行替换
*/
/*
xss攻击
1.同一个域的页面中的表单提交 必须有文本内容提交
2.提交的内容必须被放置在页面中 例如评论等内容
3.在提交的文本中出现script标签 并且标签并没有被替代 直接放在页面中
4.这个页面被所有用户查看
5.script标签具备一定盗窃cookie特征
*/
/*
解决方案
将提交页面时 将script标签去除 这样提交的内容就变成文本了
*/
/*
<a href="javascript:void">
<img href=''></img>
</a>
超链接也很危险
<a href="javascript:console.log('超链接')"> <img src='./img/6-.jpg'><img/> </a>
href也能写入脚本注入
上传一张极其具有诱惑性的图片
导致用户点击 跳转就会盗取消息 点击机会去除马赛克 你的cookie就会被盗取了
通过点击 也能触发js脚本攻击 需要将js脚本替换
*/
</script>
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
echo $_POST["msg"];
标签:脚本,xss,跨站,cookie,提交,input,页面 来源: https://blog.csdn.net/qq_44917015/article/details/115872019
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。