2008-12-02 35 views
1

我正在開發一個在Flash AS3中編碼的遊戲,需要讀取/寫入信息到SQL服務器。 目前,爲了測試目的,我使用了ASQL,它非常簡單和健壯,但它需要從客戶端機器到SQL服務器的直接連接(端口3306打開並允許通配符用戶名使用密碼從任何地方連接) ,.swf格式本身沒有加密,所有的反編譯器都會讓你提取AS3代碼,這意味着存儲在代碼中的密碼。AS3和MySQL服務器之間的通信

我已圍捕了一些選擇,但他們都缺乏安全措施:

  1. AS3代碼發送POST REQ到連接到MySQL服務器
  2. 使用amfphp PHP頁面,但AMF協議仍然可以嗅探
  3. 保持當前的方法並強制用戶打開輸出端口3306,這可能會讓用戶感到困惑。

幫助/提示/討論將不勝感激。

回答

0

根據所需命令的數量,我認爲你應該選擇選項1(只有一個或幾個命令)或選項2(如果你有一些更復雜的命令要發送)。不要將數據庫打開到公共互聯網。

你試圖解決/安全的問題是什麼?如果你的所有應用程序(遊戲)邏輯都在客戶端,那麼你不能阻止人們僞造結果。客戶永遠不會被信任,不保護線路(https或任何其他加密通信)將有助於這一點 - 這隻會阻止其他人竊聽。

如果您正在嘗試確保發佈高分或遊戲狀態 - 據我所知,您可以很難僞造它們,但除非您至少將某些遊戲邏輯移至服務器,否則無法使其無法實現。

1

您可以使用HTTP(S)進行身份驗證,例如, PHP。不要讓腳本成爲SQL連接的包裝器,因爲這會破壞腳本的重要性(本質上);有自定義命令作爲協議(例如添加/更新高分)。