html代码不安全,安全 – HTML编码是否会阻止各种XSS攻击?
没有。
抛开允许一些标签(不是真正的问题的点)的主题,HtmlEncode简单地不涵盖所有XSS攻击。
例如,考虑服务器生成的客户端javascript – 服务器动态输出htmlencoded值直接到客户端javascript,htmlencode将不会停止注入脚本执行。
接下来,考虑以下伪代码:
id=textbox>
现在,如果它不是立即显而易见的,如果somevar(由用户发送,当然)设置为例如
a οnclick=alert(document.cookie)
结果输出为
这将明显工作。显然,这可以(几乎)任何其他脚本…和HtmlEncode不会帮助太多。
有一些额外的矢量要考虑…包括XSS的第三种味道,称为基于DOM的XSS(其中恶意脚本是在客户端动态生成,例如基于#值)。
也不要忘记UTF-7型攻击 – 攻击看起来像
+ADw-script+AD4-alert(document.cookie)+ADw-/script+AD4-
没有什么可以编码那里…
解决方案,当然(除了适当和限制性的白名单输入验证),是执行上下文敏感编码:HtmlEncoding是伟大的如果你是输出上下文是HTML,或者也许你需要JavaScriptEncoding或VBScriptEncoding或AttributeValueEncoding ,或…等
如果你使用MS ASP.NET,你可以使用他们的Anti-XSS库,它提供了所有必要的上下文编码方法。
请注意,所有编码不应限于用户输入,也不应限于来自数据库,文本文件等的存储值。
哦,不要忘记显式地设置字符集,在HTTP头和META标签,否则你仍然有UTF-7漏洞…
一些更多的信息,和一个漂亮的定义列表(不断更新),检查出RSnake的作弊表:http://ha.ckers.org/xss.html
html代码不安全,安全 – HTML编码是否会阻止各种XSS攻击?相关推荐
- js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)
js代码在html页面中转换成实体html编码的方法一: js代码转换成实体html js代码转换成实体html--红 function test(){ alert('测试红') } test(); ...
- Python 代码实现哈夫曼编码
一.哈夫曼编码是什么? 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率 ...
- post攻击 xxs_[BUGCASE]CI框架的post方法对url做了防xss攻击的处理引发的文件编码错误...
一.问题描述 页面报错,没法下载 二.问题分析 1.初步分析 通过查看相关代码可以了解到文件下载的过程如下: 取到下载链接中的mid参数 对mid先后进行url解码和base64解码 将解码后的字符串 ...
- IE是怎么处理meta steam的编码的 那100+个xss
IE是怎么处理meta steam的编码的 && 那100+个xss [起源] 最近hei***放言在各个大网站都存在100+个xss.这是的确存在的,问题出在IE处理meta st ...
- 广播代码_代码广播:专为编码而设计的24/7音乐
广播代码 阅读本文时,您可以继续阅读Code Radio. (You can go ahead and start listening to Code Radio while you read thi ...
- 代码神器:拒绝重复编码,这款IDEA插件了解一下.....
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:HeloWxl www.jianshu.com/p/e419 ...
- No Code的世界绝无代码!GitHub CEO:编码的未来根本就没有编码
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 [导读]近年来,无代码开发日渐流行.非专业的人员现在也能够参与到开发中了!越来越多的企 ...
- iapp启动图代码_代码神器:拒绝重复编码,这款IDEA插件了解一下.....
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:HeloWxl www.jianshu.com/p/e419 ...
- java 输出编码_从代码看java输入输出中的编码和解码
在java中,采用Unicode编码,英文字符和汉字都占两个字节,下面的代码都是在中文操作系统上执行的,系统采用GBK编码. 1.看一下下面这段代码的编码和解码:当我们在键盘上敲入字符的时候,其采用的 ...
- python 代码格式规范脚本_Python编码规范
Python自动化测试代码编码规范 一.适用范围: 本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则. 二.编码: 所有的 Py ...
最新文章
- HDU3929(容斥原理)
- idea使用svn拉取项目代码_IntelliJ IDEA 14 拉取SVN maven 多模块项目 部署tomcat 详细图解!...
- javafx 打印控件_Java的新视差控件(JavaFX)
- 【Tensorflow】卷积神经网络实现艺术风格化通过Vgg16实现
- mysql-外键-随堂
- android root 技术,android root实践
- SQLPrompt 注册失效方法
- 软考论文-写作大纲-备考思路总结
- 如何写一份风投喜欢的商业计划书?【转载】
- 视频怎么剪辑才好看?学视频剪辑必读入门指南
- JNA实战系列:JNA与C语言中的数据类型映射以及复杂结构体传参示例
- kotlin 属性重载
- (一)安卓修改屏幕背光默认亮度(framework修改法)
- 什么是ADB,ADB有什么作用?
- 基于android的pc系统,Phoneix OS 系统一款基于安卓打造的个人电脑系统
- 读书笔记 - 多智能体强化学习在城市交通网络信号的综述2018
- OmniPlan 3 Pro for Mac 3.14.4项目管理工具
- 镇魔曲手游服务器维护,网易《镇魔曲》手游好玩到紧急追开6台服务器?
- 3D打印压铸模具正在悄悄改写制造业布局
- Oracle项目管理系统之合同索赔反索赔
热门文章
- Java并发环境下,先操作数据库还是先操作缓存?
- 唯一索引和普通索引的区别
- u_boot移植(二)---u_boot启动流程分析
- error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
- 【避坑】初次接项目的血与泪,扎坑了老铁(二)
- SET FOREIGN_KEY_CHECKS = 0
- Android 第二课——命令行基本操作
- Redhat as5和fedora,centos一样使用yum管理软件
- pandas读取csv文件数据并使用matplotlib画折线图和饼图
- vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版