有的時候 我們需要和flash互動 這就涉及到資料的互動 flash給我們提交資料 我們往處理後添加資料庫.
這個時候 就會有安全問題 flash提交的資料 可能被截獲。然後把偽裝提交資料。 比如說flash遊戲 玩完遊戲加積分 然後把積分加到資料庫裡 。每次玩完flash都提交post提交一個 userid:2,gamenumber:30 如果被別人截獲後 (推薦個截取工具 httpwatch) 修改下 userid:2,gamenumber:300000 然後就一下子加了幾萬份 (曾經QQ空間裡的遊戲 我就這樣刷分過 全部刷到9999999) 這就有很大的安全隱患 尤其是我們的積分可以兌換實物的時候
目前網上的做法是使用 https 協議
我這裡使用的是另一種
首先 和flash開發人員 約定一個MD5公開金鑰 (比如 wlf 然後把wlf用MD5加密(也可以用別的方式加密) 變為fc6796eaaf289c444c76c8fc818bf73c
)
然後flash 提交的時候 假設提交 userid:2,gamenumber:30 這是不安全的 現在開始加密 現在他要給我傳的是
userid:2,gamenumber:30,t:2011051011053232,m:EUDHSKBHJSHDUIWHDJKHJ
這裡面 t 是時間戳記 就是flash提交時的目前時間 m則很關鍵 m是個密鑰 時間戳記(這裡是2011051011053232)+userid(這裡是2)+gamenumber(這裡是30)+公開金鑰) 拼接成一個字串 然後再用MD5加密出來的
現在 我們接受到了上述東西 其他人也截獲了上述東西
我們把 時間戳記+userid+gamenumber+公開金鑰 組成個字串 然後用MD5加密 看看是不是與傳過來的m相等 相當 則說明沒有被篡改活
如果對方把gamenumber改為90 那麼m一定是不相同的 則是篡改過的
如果誰有更好的方法 希望告訴下~~謝謝