簡體   English   中英

如何知道我的帖子請求來自PHP服務器中的phonegap / cordova應用程序

[英]How to know my post request came from my phonegap/cordova app in a PHP server

假設我有一個Phonegap / cordova應用程序,我想通過AJAX通過POST和GET向我的服務器發出請求。

如果帖子來自我的應用程序,我怎樣才能保護我的php文件。 例如

if($_POST["key"]==$secret_key_got_from_server) {
   // Do the things
}

我想用openssl創建一個安全的唯一密鑰,但是如果我在代碼中對它進行硬編碼以通過AJAX發送它,任何人都可以反編譯我的源代碼並獲取密鑰並做任何他想做的事情。

我怎么能確保我的帖子來自我的phonegap應用程序,或者我如何安全地編碼該密鑰/令牌?

我不太確定這個問題是在這里還是在安全SE中。

我怎么能確保我的帖子來自我的phonegap應用程序,或者我如何安全地編碼該密鑰/令牌?

你不能 完全停止。 世界上存在逆向工程,而且這種精靈已經被淘汰了至少40年。

問問自己,“為什么有必要確保數據只能來自我的應用程序?” 你很可能試圖解決錯誤的問題。

要檢查給定POST消息的來源是否是合法用戶,您應該考慮對消息進行身份驗證 可以有多種方式來實現身份驗證,但常見的方法是使用在注冊或登錄過程中發出的令牌 如果發布消息包含有效令牌,我們可以認為該消息是從有效用戶發送的,否則不是有效請求。 最近, JWT被廣泛用於Web應用程序。 這些網站可能會有所幫助: JWT.ioJWT - Wikipedia

在這種情況下,如果攻擊者可以捕獲並修改您的POST消息,那么您的方案將失敗。 要防止此攻擊情形,您需要加密郵件。 正如您所說,如果您在客戶端應用程序上對密鑰進行硬編碼,攻擊者可以通過分析客戶端應用程序來了解密鑰。 因此,更好的方法是使用服務器的公鑰加密消息。 公鑰僅用於加密,並且在計算上不可能使用公鑰解密消息。 解密由私鑰完成,私鑰應安全地存儲在服務器中。

這些基於公鑰和私鑰的加密方法稱為公鑰密碼系統(PKC)。 例如,RSA和ECC是最着名的公鑰密碼系統。

對於Web應用程序,提供HTTPS協議。 您可以使用HTTPS加密POST消息。

請注意, 加密本身不提供完整性和身份驗證。 加密只是隱藏消息,但不保證消息是從有效用戶發送的。

暫無
暫無

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

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