2011-10-20 103 views
0

我有興趣使用Java開發多人遊戲。我很擔心黑客修改遊戲數據,現在我有興趣在Applet中運行我的遊戲,並從那裏連接到我的MySQL數據庫。我來自於C#和XNA,所以我對Java還不是非常熟悉,所以我想知道Applet的安全性如何。有人能以某種方式修改在瀏覽器中運行的Applet的遊戲變量嗎?他們能以某種方式訪問​​我的數據庫?修改Java Applet的變量

+0

可能沒有。很難訪問服務器數據庫或applet變量。 – Samrat

+0

我會更關心applet和服務器和/或數據庫之間的流量。 –

回答

2

從技術上說,他們當然可以:只要applet下載完成,就可以保存,解壓縮,反編譯和更改。

實際上,我懷疑有人會關心。但是,如果你關心的話,正確的做法是編寫你的服務器,以便在處理之前驗證客戶端的每一個請求。

作爲連接到MySQL的,有兩個問題:

  1. 你要通過MySQL的憑據小程序。你如何使它足夠安全,以便用戶不會直接進入數據庫?
  2. 許多防火牆不會讓你進入MySQL端口。這是可以解決的,但是你有解決方案嗎?在大多數情況下,這個問題比解決問題更容易避免。
+0

感謝您的回覆。我正在閱讀更多關於如何在我的情況下完成我可能做到的事情。正如你所提到的,對於我想嘗試的事情,我懷疑許多人是否願意嘗試。儘管如此,仍然值得多讀一點,以獲得更好的理解。 – Ted

+0

+1好答案。 *「您將通過MySQL證書到applet」。*訪問數據庫應該由服務器端代碼(例如servlet,ASP,PHP等)調解。否則,預計數據庫將被丟棄。 –

+0

當我參加PHP和MySQL課程時,請原諒我的無知,所以我的知識仍然受限於安全等主題。我有WAMP設置和從Java我使用:「conn = DriverManager.getConnection(url + dbName,userName,password);」和「rs = stmt.executeQuery(」SELECT ...「);」所以我會讓人們通過一個網站註冊一個帳戶,這將使他們的帳戶訪問數據庫的能力有限。當然這意味着修改與其賬戶有關的價值的能力。我不明白的是這種憑證的想法。有人能進一步解釋嗎? – Ted