簡體   English   中英

保護 PHP web 服務/相關連接數據的最佳方法?

[英]Best way to secure a PHP web service / relevant connection data?

所以我目前正在構建一個使用 PHP 作為 web 服務的應用程序,該服務隨后與我存儲數據的數據庫進行對話。 我選擇了這條路線,因為我將有一個前端應用程序,它將與數據庫對話並將被分發,並且我不想在其中包含任何敏感的連接數據。 截至目前,這是我的應用程序的工作方式:

1) 客戶端應用程序將數據打包為 JSON 並通過 AJAX 發送到外部 PHP Z2567A5EC9705EB7AC29D 服務。

2) PHP web 服務接收請求並驗證它。 This validation is done by checking that the correct parameters were supplied via the query string, that the JSON string that was passed along is valid JSON, that the properties within the json_decoded JSON object have the same names as the JSON object that I'm expecting ,並且每個屬性的值類型都是我期望的 JSON object 的正確類型。

3) 如果 JSON 有效,則 PHP 連接數據庫並調用與輸入參數對應的存儲過程。 連接數據保存在單獨的 config.php 文件中,並包含在 web 服務中。

4) 如果數據庫調用成功,所有相關數據通過JSON返回給調用者。 發生的任何錯誤都會終止線程並向客戶端返回錯誤。

現在,有了這種架構,是否有任何人看到的尖叫漏洞? 為了更好地保護連接數據(因為這主要是我希望對用戶隱藏的內容),我正在考慮執行以下操作:

- 在我選擇的基礎上對 config.php 中的數據進行編碼,然后在連接到數據庫時對其進行解碼。

- 混淆服務和配置文件。

就保護我的連接值而言,這聽起來足夠嗎? 除了 config.php 文件之外,還有更好的方法來存儲敏感連接數據嗎? 有沒有辦法讓某人輕松訪問包含敏感數據的.php 文件? 對於如何進一步保護此應用程序免受攻擊,你們都可以給我任何建議,我們將不勝感激。

此致,

您可以使用 PHP OpenSSL 庫來加密配置文件中的敏感數據(而不是通過晦澀使用安全性)。 首先使用 OpenSSL 生成 PKCS #12 證書,然后創建一個 PHP 頁面,該頁面使用 OpenSSL 庫導入該證書並加密部分或整個配置文件。 然后從連接到數據庫的 PHP 代碼中,再次導入該證書,解密您的敏感配置數據,然后使用它連接到數據庫。 根據您要加密的數據大小,您可能必須使用 AES 封裝數據,然后使用 RSA 密鑰加密 AES 密鑰。 這對每個人來說都變得有點復雜,我想我要為此編寫一個庫,謝謝你的想法。

除此之外,似乎你有一些相當不錯的安全性。

從服務器的角度...

如果您的數據庫位於單獨的服務器上(我建議) - 鎖定防火牆以僅接受來自 web 服務器的請求。

您基本上只允許從 web 服務器的 IP 訪問端口 3306。 如果您使用的是 Amazon Web 服務之類的東西,則此配置非常易於設置。

這樣,即使有人獲得了登錄憑據,您也將面臨另一個進入障礙。

此外,我會確保您不在共享主機上,為 web 服務器獲得一個體面的專用服務器,並使用具有良好 SLA 的信譽良好的托管服務提供商。

暫無
暫無

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

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