xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义
2023-09-11 14:20:30 时间
xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义
XSS攻击的防范
XSS攻击造成的危害之所以会发生,是因为用户的输入变成了可执行的代码,因此我们要对用户的输入进行HTML转义处理,将其中的尖括号,引号,单引号等特殊字符进行转义编码,例如“〈”转义后为“<;”,“>”转义后为“>;”,“'”转义后为“&;”,“"”转义后为“";”
1、将能被转换为html的输入内容,在写代码时改为innerText而不用innerHTML
2、实在没有办法的情况下可用如下方法(js代码)
function safeStr(str){
return str.replace(/</g,'<').replace(/>/g,'>').replace(/"/g, """).replace(/'/g, "'");
}
三、XSS防御
我们是在一个矛盾的世界中,有矛就有盾。只要我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。
XSS 漏洞修复
原则: 不相信客户输入的数据
注意: 攻击代码不一定在<script></script>中
将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
需要对用户的输入进行处理,只允许用户输入我们期望的数据,其它值一概过滤掉。例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
对数据进行Html Encode 处理
过滤或移除特殊的Html标签, 例如: <script>, <iframe> , < for <, > for >, " for
过滤JavaScript 事件的标签。例如 “onclick=”, “onfocus” 等等。
XSS具体的防御有如下方式:
相关文章
- js 生成4位随机数及Js知识汇总
- 禁止微信链接分享,禁止转发,禁止收藏JS代码
- ajax 参数data问题 data中的 参数名 参数值为string 提交到后台后,会自动转换参数名相同的 类型 和 js字符串拼接
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- 【Vue/Js】如何解决谷歌浏览器(chrome)扩展插件安装后,再打开自动消失问题(两种解决方案)
- js全局对象Math对象(数学运算) - 8种属性/20种方法与使用
- javascript Date format(js日期格式化)
- JS 这一次彻底理解冒泡排序
- 《WEB安全渗透测试》(19)Vue.js中的XSS攻击
- 【HarmonyOS】【JS】 鸿蒙js开发使用div自带的scroll,滑动条拉不到最下面?
- JS模式:jq中简单的模式--》采摘自js设计(tomxu_version)
- base.js,通用js方法,Js方法封装
- js string类型转换成数组对象类型---eval
- JS教程之使用 P5.js 构建一个贪吃蛇游戏(教程含源码)
- JS高阶---显式原型和隐式原型
- js监听页面标签切换
- Java/Js下使用正则表达式匹配嵌套Html标签
- 字符串js编码转换成实体html编码的方法(防范XSS攻击)
- 推荐4款高星星JS库:canvas库-Fabric.js、JavaScript客户端文件上传库-FilePond、客户端保存文件解决方案-FileSaver、JavaScript在线解压 ZIP 文件-JSZip
- js 简易判断一个数字是否是小数
- 学习NodeJS第一天:node.js引言
- iOS - 使用WKWebView时OC调JS的user-select属性控制用户操作
- js-原生Js汉语拼音首字母匹配城市名
- Knockout.Js官网学习(text绑定)
- JQuery/JS插件 linq.js 获取所有选中行的Id
- JQuery/JS插件 linq.js 入门