参考:http://bobao.360.cn/learning/detail/292.html,算是对前部分作一个总结性的学习

1<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29"></a>

URL 编码 "javascript:alert(1)"  

JavaScript是个伪协议,对协议进行编码后,url解析就不能正常解码,所以认为协议无效,无法弹框。


2<a href="javascript:%61%6c%65%72%74%28%32%29">
HTML字符实体编码 "javascript" 和 URL 编码 "alert(2)"    

html先解码,然后url再解码,这样虽然协议进行了编码,但是url解析器仍然能解析。至于url编码alert(2),不关协议,url解析器可以正常解析。 可以弹框。


  3<a href="javascript%3aalert(3)"></a>
URL 编码 ":"  

同第一个,对JavaScript协议进行编码,不能弹框。


  4<div><img src=x onerror=alert(4)></div>
HTML字符实体编码 < 和 >  

这个就相当于字符<>,而不是代表着标签的开始或者结束的控制字符。无法弹框。


  5<textarea><script>alert(5)</script></textarea>
HTML字符实体编码 < 和 >
<textarea><script>alert(6)</script></textarea>  

< textarea>这个标签很特殊,对于里面的<>他都不当做标签的开始结束,而是当做字符。即使html解码后,他依然不当做开始结束的标志,不弹框。


6<textarea><script>alert(6)</script></textarea>  

参照5 ,不弹框


 7<button onclick="confirm('7');">Button</button>
HTML字符实体编码 " ' " (单引号)  

html把&#39;解码为一个控制字符',能够闭合',能够弹框。


8<button onclick="confirm('8\u0027);">Button</button>
Unicode编码 " ' " (单引号)  

首先,把uniocde\u0027解析为了一个常量',而不是控制字符'。所以无法闭合。


  9<script>aler&#116(9)&#59</script>
HTML字符实体编码 alert(9);  

script块中的字符引用并不会被解析和解码,但是某些情况下会解码unicode


  10<script>\u0061\u006c\u0065\u0072\u0074(10);</script>
Unicode 编码 alert  

当Unicode转义序列出现在标识符名称中时,它会被解码并解释为标识符名称的一部分,比如标识符alert,所以可以弹框。


  11<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>
Unicode 编码 alert(11) 

解析标识符,可是alert(11)并不是一个标识符。不弹框


 12<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>
Unicode 编码 alert 和 12  

没有把12解析为一个常量,必须加上"",才可以弹框


  13<script>alert('13\u0027)</script>
Unicode 编码 " ' " (单引号)  

当用Unicode转义序列来表示一个控制字符时,例如单引号、双引号、圆括号等等,它们将不会被解释成控制字符,而仅仅被解码并解析为标识符名称或者字符串常量。

仅仅是'常量 不弹框


  14<script>alert('14\u000a')</script>
Unicode 编码换行符(0x0A)  

'\u000a'会被解释成换行符文本,这并不会导致真正的换行从而引发JavaScript语法错误。弹框


对于xss等有关的html,url,unicode编码做的一个小总结。的更多相关文章

  1. 【C#基础】实现URL Unicode编码,编码、解码相关整理

    1.Unicode编码 引用系统 System.Web using System.Web; string postdata = "SAMLRequest=" + HttpUtili ...

  2. BIG5, GB(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char说明与区别

    汉语unicode编译方式,BIG5是繁体规范,GB是简体规范 GB是大陆使用的国标码,BIG5码,又叫大五码,是台湾使用的繁体码. BIG5编码, GB编码(GB2312, GBK, ...), U ...

  3. Java基础笔记(六)——进制表示、ASCII码和Unicode编码

    Java中有三种表示整数的方法:十进制.八进制.十六进制. 八进制:以0开头,包括0~7的数字.如:int octal=020;  //定义int型变量存放八进制数据 十六进制:以0x或0X开头,包括 ...

  4. [BUGCASE]CI框架的post方法对url做了防xss攻击的处理引发的文件编码错误

    一.问题描述 出现问题的链接: http://adm.apply.wechat.com/admin/index.php/order/detail?country=others&st=1& ...

  5. C# Unicode编码

    为了避免在浏览器中传输数据的时候出现中文乱码,我们可以将内容进行URL编码,当然也可以将内容进行UNICODE编码.将汉字进行UNICODE编码,如:"王"编码后就成了" ...

  6. JS 和 Java 中URL特殊字符编码方式

    前几天遇到url特殊字符编码的问题,在这里整理一下: JavaScript 1.  编码 escape(String) 其中某些字符被替换成了十六进制的转义序列. 解码 unescape(String ...

  7. unicode 编码在线转换--javascript

    // unicode 编码在线转换工具--javascript 本人在网上搜索,看到有使用javascript做unicode编码转换的,感觉很好玩,所以拿来使用的. 这个功能有目前测试了两种: 1) ...

  8. URL的编码和解码

    URL的编码和解码 参考:阮一峰--关于URL编码 1 为什么要URL编码 在因特网上传送URL,只能采用ASCII字符集 也就是说URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和 ...

  9. JS对url进行编码和解码(三种方式区别)

    Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...

随机推荐

  1. meterpreter > ps

    meterpreter > ps Process List============ PID PPID Name Arch Session User Path --- ---- ---- ---- ...

  2. SSH中懒加载异常--could not initialize proxy - no Session

    SSH进行关联的表进行显示时出现的问题,老是显示你的OGNL表达式错误,但是找了很久确实没错,在网上找了一下,下面的这个方法本人认为是最有效的方法(已经测试可以使用) 在web.xml中加入 程序代码 ...

  3. UVA 11404 Plalidromic Subsquence (回文子序列,LCS)

    最长回文子序列可以用求解原串s和反转串rv的LCS来得到,因为要求回文串分奇偶,dp[i][j]保存长度, 要求字典序最小,dp[i][j]应该表示回文子序列的端点,所以边界为单个字符,即i+j=le ...

  4. Exception handling 异常处理的本质

    异常处理的本质:状态回滚或者状态维护. https://en.wikipedia.org/wiki/Exception_handling In general, an exception breaks ...

  5. js清空表单数据的方式(遍历+reset)

    方法1:遍历页面元素 /* 清空FORM表单内容 id:表单ID*/ function ClearForm(id) { var objId = document.getElementById(id); ...

  6. cin对象的一些常用方法使用总结

    >> 最初定义的是右移,当但是出现在 cin >>中的时候这个符号被重载了,变成了一个流操作,在用户通过键盘输入信息的时候,所有内容都会先直接存储在一个叫输入缓冲区的的地方,c ...

  7. js时间转换

    1. 将时间戳转换成日期格式 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了 ...

  8. IE console报错

    需要注意的是,使用console对象查看对象信息,在IE8浏览器下未打开开发人员工具(F12)的情况下 会报'console'未定义错误. 解决办法:1.打开开发人员调试工具(F12)        ...

  9. API Star:一个 Python 3 的 API 框架

    为了在 Python 中快速构建 API,我主要依赖于 Flask.最近我遇到了一个名为 "API Star" 的基于 Python 3 的新 API 框架.由于几个原因,我对它很 ...

  10. 在生产环境下实现每天自动备份mysql数据库

    1.描述 我相信很多朋友在工作都都会有这种需求,老板或领导让你每天都要备份mysql数据库,你该如何实现呢,是每天到一定的时间在服务器上敲一遍mysql的备份命令,还是想写个脚本,定时定点的自动备份呢 ...