簡體   English   中英

將數據導入Android應用程序的最佳方法?

[英]Best way to get data into an android app?

只是一點點背景。 我是一名熟練的asp.net/c#/sql服務器程序員,他已經學習Android不到2天。

我們有一個現有的.net網站,它存儲MS SQL Server 2008中的位置列表,我正在嘗試創建獲取這些位置並在Google Map上顯示它們的Android應用程序。

問題實際上是如何讓應用程序連接到SQL數據庫。 我猜有幾種選擇......

1)應用程序和遠程數據庫之間的某種直接連接。

2)使用asp.net創建某種中間層,將數據轉換為更適用於Android應用程序中的Java代碼的東西(記住我幾乎知道沒有java),完全相同的是我們有.net為我們的網絡應用程序提供JSON的代碼。

3)創建某種Web服務,只返回Web服務器的XML結果。 我不知道如何保證這一點,以便只有Android應用程序可以請求數據。

任何有關最佳實踐的幫助或建議都非常有用。 我想我只需指出一個好策略的總體方向,我就可以解決它。

我不知道如何保證這一點,以便只有Android應用程序可以請求數據。

你的問題比那更重要。

它與點(3)無關,它與您要選擇的任何可能方法有關。

  • 如果您在Internet中公開任何類型的數據,則可以使用身份驗證或不使用身份驗證來訪問它。
  • 如果使用身份驗證訪問它,則為每個用戶提供一個憑據,或為多個用戶提供一個憑據。
  • 一旦用戶擁有憑證,它可以隨意使用它,您不能限制它,只能完全阻止憑證本身。

現在,您將采用這種方式,即一個對所有用戶都有效的憑證,即應用程序已獲得它並使用它來獲取數據。 用戶自己現在可能不是這樣的事實是無關緊要的。

請記住:通過默默無聞的安全措施不起作用。 如果你想破壞,朦朧只是“一個更煩惱”,它就像一個里面有貴重物品的黑暗房間:黑暗無濟於事,但沒有理由沒有鎖定。 有人會很快偷東西,這只是時間問題。

您的安全問題是網絡基礎架構和協議之一,而不是Android。 OAUTH正在成為實現這一目標的標准方式,並以谷歌為例,或許更好的模擬是訪問Google Docs?

更多:

實際上實現握手等可能需要一些工作,具體取決於你想要的安全性。 同樣,這不是一個真正的“Android事物”,因為它首先是一個架構挑戰,一旦你做出了一些架構決策,你就可以實際實現你決定在Android或其他任何事情上做的事情。

從概念上講,通過Web服務公開您的數據並從您的UI中消費它們就可以了。 您必須確定您的安全策略,OAuth或其他方面。

Android的原生LDAP支持很快就會到來( 很多人都想要它 ),這可能有助於安全性(即使用Exchange Server驗證不同的用戶憑據而不是使用應用程序的憑據)

與此同時,數據可能比它應該更容易訪問。 它敏感嗎?

您實際上無法連接到遠程數據庫,特別是如果它是MS SQL數據庫(android只能處理SQLite)。

您知道要保護數據的最佳選擇是在服務器端構建一個可以訪問您的數據庫的Java接口。

然后,您可以執行一些RMI,或者您可以使用套接字來發送和接收數據(包括加密數據)。

在保護數據的問題下,我將采取的解決任務的方法包括以下步驟:

  • 使用json Web服務在移動設備和數據庫之間進行通信。 由於移動設備的網絡連接不穩定,每次訪問數據庫時都必須重新建立數據庫連接。 Web服務很好地將一個問題包裝到數據庫中。
  • 使用google gson將json解析為java數據對象,以便在應用程序中處理它們。
  • 使用您自己的疊加層創建Mapview ,以在地圖上顯示項目。

安全問題是我想到的很多問題。 如果要限制對數據庫的訪問,則需要應用程序在Web服務器上使用某種密鑰進行身份驗證。 問題是,有人可能只是打開你的應用程序並查找此密鑰,然后重新構建您的應用程序中使用的流量。 您可以使用密鑰與您的網絡API進行https連接,這禁止其他人接入網絡連接,但擁有電話的人始終可以訪問該密鑰。

你總是可以讓攻擊者變得更加困難,但你總是假裝成一個手機應用程序,因為auth令牌需要在手機上。 使其變得更加困難的一些方法是:

  • 加密應用程序內部的密鑰,這使得在類文件中快速搜索和輕松提取密鑰變得更加困難。 但是只有一層隱藏,因為解密的密鑰也必須在你的應用程序中。
  • 根據手機數據生成第二個密鑰,添加imei的哈希值,電話號碼等。問題是這個數據必須最初在服務器上注冊,因此它可以簡單地偽造。

如果您只是希望通過機器人獲取數據來保護您的數據,那么服務器只會響應似乎來自手機的請求。 阻止對Web服務等進行數百次調用的單個IP

暫無
暫無

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

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