2015-05-24 144 views
1

我有一個API密鑰,用於檢索瀏覽器上顯示的信息。我遇到的問題是使用Chrome - Inspect Element - Source,可以查看API密鑰。代碼如下所示:從瀏覽器中隱藏API密鑰

<meta charset="utf-8"> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
     <link href="/styles.css" rel="stylesheet" type="text/css" /> 
     <script type="text/javascript"> 
     //<![CDATA[ 
     var dbtKey = "<?php echo $apiKey; ?>"; 

$apiKey是坐在我的config.php文件一個變種:$apiKey = 'my key'

有沒有什麼辦法可以防止這種顯示?

+0

要麼使用post方法來傳遞數據或加密,如果是嚴重使用ssl – user1844933

+0

如果在客戶端需要該API密鑰,那麼在瀏覽器中訪問您的服務器(從描述中不太清楚),那麼你就沒有辦法做到這一點,所以真正保持私密性。在這種情況下,問題是_如果你想保持私密性。這樣的關鍵當然不應該完全取代認證。如果是這樣,你必須改變你的架構。 – arkascha

+1

您是否可以不將數據從客戶端發送到PHP,然後使用服務器上的API密鑰,然後發回響應。 AKA Ajax – Dendromaniac

回答

0

您需要通過PHP處理所有請求,並將結果作爲JSON返回,您可以處理客戶端。

爲了提高安全性,請使用SSL,這將有助於抵禦外部威脅,但不會對內部造成威脅。