首先,我知道這已經被問了幾次了,而且我已經對這個主題做了大量的研究,但是我似乎無法找到明確的答案。我要麼失去了一些至關重要的東西,要麼這是不可能的,我只是在浪費你的時間。這裏是:一個安全的三層連接,從java到mySQL,通過PHP
想象一下,一個數據庫,它存儲我們說的只有1000行,由一個id,一個布爾值(0或1)組成,必須在某個點上更改,並且帶有一些信息的常量字符串值。如果用戶在客戶端Java應用程序中提交了所需的操作,則可以訪問該信息並更改該值。只有這是至關重要的。
在我的全球網絡搜索過程中,我遇到了兩個可以滿足我需求的選項。
爲每個用戶設置數據庫本身的權限,讓用戶使用自己的用戶名和密碼從應用程序登錄。客戶端應用程序隨後可以根據用戶的需要與數據庫通信,根據需要執行讀取和寫入數據庫的任務。
使用三層方法,讓java應用程序與執行查詢的PHP接口進行通信,並返回java應用程序可以解析的排序的編碼json字符串。我明白了基本概念,您將客戶端的用戶名和密碼發送到PHP接口,該接口檢查客戶端是否合格並相應地執行查詢。沒什麼大不了的。
我似乎無法弄清楚的是如何讓只有java客戶端更改和檢索數據。例如,如果有人想知道方法1中字符串的內容,他們可以簡單地使用他們的用戶名和密碼並直接查詢數據庫。查詢很容易從反編譯後的java應用程序中獲取。至於#2,如果應用程序反編譯,則PHP接口也可以進行反向設計,即使不知道數據庫的實際密碼和用戶名,用戶也可以通過利用PHP腳本查詢數據庫。
我必須指出,根本不信任用戶,數據庫的內容應該保密,直到java應用程序中滿足某些條件。有沒有辦法實現這一點?如果有一種方法我不知道,我當然不會停留在這兩個選項上。感謝您提前給予您所有的幫助。
你對「某些條件」有什麼意思?是否可以遠程驗證? – ddmps 2013-04-20 15:33:06
把它看成是一種成就係統,就像在客戶端完成一個遊戲,或者擁有高分等一樣,對不起,我不能將所有這些想法都放棄。我無法想象通過反編譯java代碼無法複製的遠程驗證方式... – JasonX 2013-04-20 15:43:22