xss前端预防措施
用户在输入框中输入个js标签
或者在 src 上传图片,路径干个 alert
干扰程序,评论的时候,也干一下
1.输入过滤
对于用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望合适的内容提交,阻止或者忽略除此之外的其他任何数据。比如:电话号码必须是数字,而且要设置长度限制。过滤一些常见的敏感字符,例如:《》‘’ “” &#\javascript expression "onclick=" "onfocus" ; 过滤或者移除的特殊html标签,例如:<script>,<iframe>,<for < > for > , " for ; 过滤javascript事件的标签。
输出编码,当需要将一个字符串输出到web网页的时候,同时又不确定这个字符串是否包含xss特殊字符(如<> & "等),为了确保输出内容的完整性和正确性,可以使用编码(HTMLcode)进行处理
2.DOM型的xss攻击防御
把变量输出到页面的时候要做好编码转义工作,如要输出到<script>中,可以进行JS编码;要输出到html内容或者属性,则要进行html编码处理,根据不同的语境采用不同的编码处理方式。
3.httpOnly cookie
将重要的cookwebie设置为httpOnly,这样的话当浏览器向web服务器发起请求的时候就会带上cookie字段,但是在脚本中却不能访问cookie,这样就避免了xss攻击利用javascript的document。cookie来获取cookie.
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS编码规范
本文档旨在总结出一份通用的编码规范,欢迎随时探讨补充。 代码格式 空格 不要在工程里使用Tab键,使用空格来进行缩进。在Xcode > Preferences > Text Editing将Tab和自动缩进都设置为4个空格。(Google的标准是使用两个空格来缩进,但这里还是推荐使用Xcode默认的设置。) 方法之间应该要有一个空行来帮助代码看起来清晰且有组织。 方法内的空行应该用来分离功能,但是通常不同的功能应该用新的方法来定义。 方法的书写 一个典型的Objective-C函数应该是这样的: - (void)writeVideoFrameWithData:(NSData *)frameData timeStamp:(int)timeStamp { ... } 在-和(void)之间应该有一个空格,第一个大括号{的位置在函数所在行的末尾,同样应该有一个空格。 在使用{的位置都遵循Egyptian风格 (又称 K&R 风格,代码段括号的开始位于一行的末尾,而不是另外起一行的风格。),比如,控制语句 (if-else, for, switch)。 如果一个函数有特别多...
- 下一篇
8月8日云栖精选夜读 | 阿里资深技术专家林轩:云时代软件研发的终局猜想
2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短几年时间,我们看到容器技术星火燎原。但是容器毕竟是个底层产品,距离业务还很远。对云上客户来说,直接需要的终归是直接触达业务的应用。 而在这一层上,还没有形成标准。 热点热议 阿里资深技术专家林轩:云时代软件研发的终局猜想 作者:技术小能手 人民日报推文:欢迎Google重返中国大陆,但必须遵守中国法律 作者:技术小能手 计算成本降低35倍!谷歌发布手机端自动设计神经网络MnasNet 作者:技术小能手 知识整理 前端优化系列 - H5存储及优化 作者:atuanxy 几行python代码搞定农历转阳历,阳历转农历的问题 作者:元谷 【最佳实践】如何授权子账号进行图片样式设置? 作者:figo168hf 一文详解大规模数据计算处理原理及操作重点 作者:技术小能手 几行python代码搞定农历转阳历,阳历转农历的问题 作者:元谷 美文回顾 区块链用AI和大数据改变行业现状 作者:小本聪 自然教育网络大家庭,等你加入! 作者:技术小能手 Kaggle放大招:简单几步实现海量数据分析及可视化 作者:技术小能手 一文详解大规模...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境