Webgoat之Insecure Storage

Encoding Basics

在Web应用程序中会根据不同的应用选择不同的编码方案。每一个编码方案都有与其相关的算法。
编码和加密是不一样的。下面讲解几种常用的编码/加密方法。这章是Web安全的编码基础。
 

Base64

Base64是将普通字符编码成二进制数据。

Entity

HTML中常用的特殊字符实体编码

PBE

PBE算法是一种基于口令的加密算法,其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安全性。

MD5

MD5是一种单向散列的哈希算法

SHA-256

也是一种单向散列的哈希算法

Unicode encoding

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

URL encoding

URL编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。

Hex encoding

16进制编码

Rot13

Rot13编码是一种简单的编码,目的是让文本不可读,但它很容易被还原并且不具有安全性

Double URL encoding

当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致乱码。

encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会出现乱码,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时会产生乱码;针对这种情况,可以连续使用两次encodeURI在客户端(主要指浏览器)对非英文字符进行编码,然后在服务端使用Java.net.URLDecoder(String.”UTF-8”)解码,即可得到正确的中文。

Double unicode encoding

XOR

异或运算的加密

Summarize

工作了一整天,感觉好疲惫。要学的东西还有好多。书到用时方恨少。


【版权声明】
本文首发于戚名钰的博客http://qimingyu.github.io/ ),欢迎转载,但是必须保留本文的署名戚名钰(包含链接)。如您有任何商业合作或者授权方面的协商,请给我留言:mingyuqi.java@qq.com
欢迎关注我的微信公众号:科技锐新

本文永久链接:http://qimingyu.github.io/2016/04/26/Webgoat之Insecurity_Storage/

坚持原创技术分享,您的支持将鼓励我继续创作!

热评文章