我正在構建一個由MySQL服務器支持的Django支持的站點。這個MySQL服務器將從除網站以外的其他來源訪問,以讀取和寫入表格數據;例如用戶在本地運行的連接到數據庫的程序。Django作爲mysql代理服務器?
當前在本地運行的程序使用MySQL/C連接器庫直接連接到sql服務器並執行查詢。在對公衆的最終版本中,這似乎是不安全的,因爲我會在代碼或配置文件中將連接字符串暴露給數據庫。
我正在考慮的一種替代方法是將所有查詢發送到Django網站(使用用戶的登錄名和密碼進行身份驗證),然後該站點將代表用戶清理並執行查詢,並將結果返回給他們。
這有很多缺點,我可以想到。通過處理所有的SQL查詢,網絡服務器將承受更大的負載,這可能會超出我的主機的限制。此外,我將不得不找出一些序列化和傳輸Python結果的方式,然後在客戶端使用C/C++進行反序列化。這將是一個不錯的自定義代碼來編寫和維護。
人們可以想到的這種方法的其他缺點?
這聽起來是否合理,如果有的話,任何可以緩解工作的東西;如Python或C庫來幫助開發代理接口?
如果聽起來像一個壞主意,任何替代解決方案的建議,即專門研究這種代理sql服務器邏輯的Python庫,加密sql連接字符串的方法,以便我可以安全地使用我當前的解決方案等。 ..?
最後,這是一個有效的關注嗎?這個數據庫目前並不包含任何關於用戶的非常敏感的信息(最敏感的是他們的電子郵件和他們可能從其他來源重複使用的網站密碼),但如果它不安全,它可能會在未來引起我的關注。
感謝您的意見,我會研究如何使其適用於我的情況。 – Alex 2013-02-21 16:00:58