簡體   English   中英

如何從Android應用程序連接到MySQL數據庫

[英]How to connect to a MySQL database from an Android app

我在網上遇到了一些教程,這些教程解釋了如何從Android應用程序連接到MySQL,但是它們有些表面化。

如果我只是編寫SQL並在POST中發送/接收它,出於以下幾個原因,這似乎是有問題的:

1)對存在明顯問題的SQL進行硬編碼2)關於發送sql的安全問題-發送請求是否安全? 還是只能通過SSL完成? 3)要連接到數據庫,為了插入東西,我需要在應用程序內部具有數據庫連接信息-這樣安全嗎? 破解設備和應用程序的人可以讀取代碼嗎?

從Android應用程序連接和使用遠程數據庫的最佳方法是什么?

謝謝!!

使用Web服務與數據庫進行通信。 最終用戶客戶端通常不通過Internet與數據庫進行通信。 多層架構

將所有內容包裝在API中,並使用公共/專用密鑰或基於令牌的系統進行加密來管理身份驗證。 你應該永遠,永遠, 永遠接受原始SQL從任何設備或網站上的任何方式,形狀或形式。 通常,如果您需要實時的遠程數據來運行,則應重新考慮應用程序的工作流程並處理稍有陳舊的數據,或者由於可能存在連接錯誤而在后台提供信息。 甚至連API都需要付出高昂的代價,因此不應該經常發生。

要合並上面的一些想法,您可以做幾件事。 有關公鑰/私鑰的信息,請訪問http://en.wikipedia.org/wiki/Public-key_cryptography 基本概念是,您將公用密鑰存儲在設備上,然后在安裝了同樣存儲在設備上的應用程序之后協商私有密鑰(盡管未編碼到應用程序中)。 該密鑰是您必須保護的密鑰,因此應在安裝時進行協商,並與應用程序的生命周期一起存儲。 您可以使用設備的唯一哈希值(例如設備ID)和用戶可以設置的密碼來聯系API。 這樣,如果擦除了數據,則由於密碼存儲在服務器上,因此您可以驗證生成新密鑰的請求對該設備ID有效,並且還可以防止攻擊者嘗試破壞每個人的密鑰。

顯然,這仍然容易受到某人攔截初始請求的影響,但是,如果您使用的是HTTPS(應使用),則應該可以緩解大多數此類問題。

您必須確保攻擊者無法發送隨機的設備ID請求來生成新密鑰,因為這會破壞該哈希的實際用戶設備,因此密碼設置很重要。 當然,他們也可以針對當前未注冊的設備ID進行此操作,但是您可以輕松地針對初始API實施限制和黑名單。

您可以做很多事情,但是根據您的敏感數據,這可能會顯得過分殺傷力。 您必須做出判斷,找出要保護誰免受數據攻擊的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM