┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ 1. Base64 定義
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base64是一種使用64基的位置計數法。它使用2的最大次方來代表僅可打印的ASCII 字符。這使它可用來作為電子郵件的傳輸編碼。在Base64中的變量使用字符A-Z、a-z和0-9 ,這樣共有62個字符,用來作為開始的64個數字,最後兩個用來作為數字的符號在不同的系統中而不同。一些如uuencode的其他編碼方法,和之後binhex的版本使用不同的64字符集來代表6個二進制數字,但是它們不叫Base64。
┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ 2. 執行結果
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ 3. 程式碼
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ 4. 心得
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
base64 的好處就是可以把原本用數字 0~255 來表示的字元, 改成用 0~63 來表示, 好處是資料可以放在URL裡被傳遞, 也可以避免掉部份 cross site script 的問題.
下圖是我被植入 script site script 的結果, 因為把字串放到 value="" 屬性裡, 因為變數內容有雙引號, 所以字串就跳脫了.
┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ 5. 資料來源
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
將UTF-8編碼的字串轉成base64編碼
http://achtung.webhop.net/allenj/?p=628
沒有留言:
張貼留言