Re: [問題] 怎麼防止不透過我寫的swf.直接傳值給php?
※ 引述《a149851571 (yem)》之銘言:
: 了解到flash不能和伺服器的資料庫連結,只能透過asp或php之類的才能存入資料
: 所以小弟也就開始學習php..但是最近想到了一個問題..
: 假如我寫了一個swf,傳值給php,php再存入資料庫
事實上,你用 swf 呼叫 php,不用反組譯 swf 就可以知道你的 php 接收了甚麼參數。
swf 呼叫 php 的方式其實就和你的瀏覽器打上 php 的網址是一樣的。
(就算是用Post的,其實我也可以看到你Post了甚麼,然後用程式去模擬Post動作...)
: 那如果有心人士反組譯了我的swf,知道該傳什麼給php
: 那就有可能被以作弊的方式,達到他想要的目的(而不是照著我的規則走)
這裡有一個重點,作弊的方式,是甚麼方式?
又你想要保護的資料是甚麼?保護的對象是誰?是使用者還是Server?
而不單單是要怎麼保護 "我傳給php的值"...
提供一些解法:
1. 我要保護我 php?param= 後面的參數:
最直覺的,在Flash中用一組動態的Key加密後傳給php,再由php解密。
只是我覺得反正你那些值到後來也是要顯示在Flash裡面...何必那麼麻煩...
這只能防防小人,真正要防Hacker還是防不了...
(不過我想Hacker應該也沒啥興趣駭這種無聊的東西)
用 AS3 + Encryption 搜尋應該有一些東西參考,我個人是沒作過用AS3加密...
2. 我要保護我的Server不會被人用機器人攻擊。(例如討論版被瘋狂灌水)
例用 CAPTCHA (認證圖),由Server產生一張圖給Flash,
然後要使用者輸入圖上顯示的數字,確認是"人眼"看到圖才能繼續貼文的動作。
搜尋 php + CAPTCHA 應該有一些免費的解決方案可以用。
3. 我要防止User跳過某些步驟。
利用 Session 將資料寫在 Server 端。和寫網頁一樣,翻翻Php的Session那章吧~XD
4. 我要保護我的資料庫不會被 SQL Injection。
只要記住一點,所有User傳入Server的參數都一定要用Server端的程式(即Php)檢查!
例如,我輸入了電話,裡面不應該出現中文,或是長度太長(電話不可能大於20碼)。
資料存進資料庫之前要用 mysql_real_escape_string 跳脫字元一下...
這也和寫網頁程式的觀念一樣。搜尋 SQL Injection 有一大堆討論。
5. 我要保護資料傳遞過程不被竊聽。
使用 SSL (即https) 進行網頁的動作,但要注意的是,用SSL是防止在"傳輸過程"
不被第三者(即Server和用戶兩者"以外")竊聽,而不是資料到了Server和用戶的"面"
前還加密的(加密解不開是要怎麼看)。Flash可以接收https傳進去資料。
以上是在網頁裡面很常用的方法... 其實對Flash而言其實沒啥兩樣...@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.171.19
推
07/16 00:59, , 1F
07/16 00:59, 1F
推
07/16 01:02, , 2F
07/16 01:02, 2F
→
07/16 01:03, , 3F
07/16 01:03, 3F
→
07/16 01:03, , 4F
07/16 01:03, 4F
→
07/16 01:04, , 5F
07/16 01:04, 5F
→
07/16 01:05, , 6F
07/16 01:05, 6F
→
07/16 01:17, , 7F
07/16 01:17, 7F
→
07/16 01:21, , 8F
07/16 01:21, 8F
→
07/16 01:22, , 9F
07/16 01:22, 9F
推
07/16 02:03, , 10F
07/16 02:03, 10F
推
07/16 11:06, , 11F
07/16 11:06, 11F
※ 編輯: dreamboxer 來自: 59.115.164.227 (07/21 21:11)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):