2014-09-28 48 views
1

當我們想通過ajax發佈一些數據到php頁面時,任何人都可以看到URL以及正在發佈的值。ajax-如何防止瀏覽器顯示ajax url

它可能是非常危險的,有沒有什麼辦法來保證這一點?我是否可以隱藏網址或任何對網址進行編碼的方式,以便用戶無法看到並訪問它?

這是一個示例代碼,正如您所看到的,URL可以將數據公開在源代碼中,也可以在像Firebug這樣的檢查器中公開。

function reg_user(id){ 
$(document).ready(function() { 
$.ajax({ 
    type: "POST", 
    url: "reg_user.php", 
    data: "id="+id, 
    success: function(msg){ 
     str=$.trim(msg) 
     if (str=='ok'){ 

     } 
    } 
    }) 
}) 
}; 

感謝

+0

您可以使用htaccess和modrewrite更改網址。 – 2014-09-28 07:24:15

+6

簡短回答:不可以,尤其是使用開發工具或wireshark時。我建議你改爲保護服務器。 – Joseph 2014-09-28 07:24:26

+0

*它可能是非常危險的* ...其他網站如何做同樣的事情,沒有掩蓋的URL ... – 2016-08-04 08:49:40

回答

1

沒有你導航將通過瀏覽器的工具欄上的發展或淨捕獲工具,如Wireshark的被捕獲的url way.all。

Ajax是一種使javascript能夠發送http請求的工具,但javascript無法加密http消息。當調用ajax函數時,它意味着告訴瀏覽器現在發送一個http請求。

即使javascript有能力加密http消息,您需要在您的JavaScript代碼中編寫加密密鑰。

我犯了一個錯誤,總的http消息在https中被加密,包括頭文件和請求體,但是這個函數是由browser.If在https網站中使用ajax,javascript告訴瀏覽器發送https請求,瀏覽器負責加密發送消息。

0

不,用戶將始終能夠通過開發工具或某個網絡監視工具找出您正在進行的調用。您可以壓縮和縮小JavaScript,但開發人員將始終能夠找到您的URL調用。

同意@JosephtheDreamer評論:客戶端的每一件事情都將是可見的只是保護你的服務器端。

相似問題;

How to hide details in jquery ajax from browser page source

好運

0

你應該保護您的服務器和您的客戶端和服務器應用程序之間的連接。

您可以使用HTTPS進行通信,使用POST在頭中傳遞的數據將自動使用HTTPS進行加密。

爲了隱藏你的API URL你可以考慮使用代理服務器,這樣你的客戶端應用程序就會調用代理服務器,而代理服務器就是你真正的API。通過這種方式,在檢查來自客戶端的請求時,只有代理服務器的URL可見。