我的android應用程序發送數據到我的網站。現在,任何可以跟蹤數據發送位置的人都可以找到我的網站,並能夠運行我的php文件來處理數據。如何禁止用戶通過瀏覽器訪問我的網站?Android網絡服務器安全
回答
這實際上很容易做到。
在您的應用程序和您的Web服務器之間設置相互認證的SSL。基本上,您將使用Android keytool創建一個自簽名證書以部署到服務器上,然後將另一個自簽名證書(針對客戶端)部署到您的應用中。將服務器配置爲需要客戶端身份驗證,並僅接受剛部署到應用程序中的證書。將客戶端配置爲只接受安裝在服務器上的自簽名證書,並在服務器提示時顯示您部署的證書。
這很容易設置,然後你的服務器將只與你的應用程序交談(因爲它是唯一具有特定客戶端證書的),並且應用程序只會與你的服務器通信(因爲它是唯一具有特定服務器端證書的東西)。
關於如何做所有這些事情的更多細節(與walkthrough)在我的書:http://shop.oreilly.com/product/0636920022596.do。
簡答:你不能。
龍答:您可以嘗試使用一些方法,這將使使用你的網站從瀏覽器毫無意義(如使用一些加密,編碼,自定義瀏覽器標題,認證等)。但是總有可能破解和反向工程你的(任何)安全。
我花了兩個星期逆向工程一個這樣的服務,不僅是因爲它是值得的。
你可以嘗試PHP混淆。這裏有幾個選項是:
- http://www.phpprotect.info/
- http://www.zend.com/en/products/guard/
- http://www.semanticdesigns.com/Products/Obfuscators/PHPObfuscator.jsp
注:這並不能使它不可能得到你的代碼...只有更困難。
你有幾種選擇:
添加某種用戶名/密碼認證的到你的服務器,並忽略不包含用戶名/密碼的任何請求。
嵌入長隨機數序列(大約200個字符),你的應用程序中,併發送與每個請求一起,忽略任何請求,除非它包含了精確的字符串。
爲了提高安全性,考慮公共/私人密鑰加密。基本上你有一個公鑰和私鑰,私鑰嵌入在應用程序中,並且服務器上有一個匹配的公鑰。手機使用私鑰加密發送給服務器的任何數據,服務器使用公鑰對數據進行解密。服務器反過來,發送到手機的任何數據都使用私鑰加密,並使用私鑰解密。這(粗略)是SSL/https的工作原理。
最後一個是最安全的,但三者的組合將是理想的 - 在每次請求的用戶名/密碼,公共/私有密鑰對加密,具有200字符隨機字符串,這是加密私鑰存儲在手機上與私鑰不同的位置(大多數公鑰/私鑰加密系統將允許您使用密碼保護私鑰)。
當心沒有這些將保護你免受任何人的身體訪問電話或服務器。最後一種方法可以保護你免受其他人的傷害,即使對於那些有實際接入電話的人也很難。
通過經常更改密鑰,可以使其更難以破解。 SSL不斷創建新的公鑰/私鑰,但與電話和服務器共享新的公鑰可能會變得複雜。
如果你想防止隨意訪問您的服務器,那麼所有的這些都將正常工作。如果你想要嚴格的安全性,那麼你需要製造自己的電話硬件來正確鎖定它,甚至不會給你完美的安全性。
- 1. .NET網絡服務安全
- 2. 使網絡服務安全
- 3. 網絡服務安全
- 4. 安全的網絡服務
- 5. 碼頭網絡服務器安全
- 6. SYN Cookie網絡服務器安全
- 7. 網絡服務器安全,公開服務器
- 8. 在android中的網絡服務器通信安全
- 9. Android網絡服務器
- 10. 安全的網絡服務php/json
- 11. JSON和網絡服務安全
- 12. 亞馬遜網絡服務安全嗎?
- 13. ASIHTTPRequest和網絡服務安全
- 14. 其他安全網絡服務
- 15. 網絡服務安全認證/授權
- 16. Android網絡服務
- 17. 亞馬遜網絡服務和Android的安全問題
- 18. 在網絡服務器上安裝BigBlueButton
- 19. 在網絡上安裝mysql服務器
- 20. 網絡服務器安全wordpress,Django和question2answer
- 21. LoRaWAN安全性:網絡服務器可以生成AppSKey嗎?
- 22. 網絡服務器上的PHP文件安全
- 23. 瞭解網絡服務器上的LinkDemand安全
- 24. 建立一個安全的網絡服務器
- 25. postgres,Django的&一般網絡服務器認證安全(pg_hba.conf等)
- 26. 網絡球體處理服務器中的安全性
- 27. 網絡安全
- 28. 網絡安全
- 29. Android存儲媒體 - 網絡服務器
- 30. 網絡服務器到Android視頻流
這不是什麼意思,但你有很大的幫助我。謝謝 –