PHP 的 12 大安全最佳實踐

已發表: 2021-08-14

安全性是所有軟件開發人員的重要話題,但 PHP 開發人員面臨一些獨特的挑戰。 在這篇博文中,我們將探討 PHP 的 12 大安全最佳實踐,以及如何在代碼中實現它們以幫助確保您的網站安全。 您可以隨時使用 WebCitz 的專業人員來處理您的 PHP 編程需求!


1. 定期更新您的 PHP 版本

確保您的 PHP 版本是最新的,以最大程度地降低安全漏洞的風險。 修補程序通常會修復已知錯誤,因此在它們發佈時利用它們很重要。

黑客已經開始利用 PHP 中的最新漏洞。 除非您更改設置,否則那些使用舊版本的人將很容易受到他們的入侵!

您可以嘗試預覽版,但安全顧問會警告公司避免新軟件的預覽版,因為它們可能仍然存在未知的安全漏洞。

PHP 標誌

2. 不要通過未加密的連接將敏感數據暴露給 Internet

許多網站仍然容易受到攻擊,因為他們的開發人員犯了一個錯誤,使用未受保護的 FTP 協議、沒有 SSL 保護的電子郵件帳戶等在公共 Internet 上公開數據庫或文件系統憑據。

在通過任何未使用 TLS/SSL 加密的網絡連接傳輸這些文件和文件夾之前,通過對它們進行加密來保護它們。

安全鎖圖形

3. 防範 SQL 注入攻擊

SQL(結構化查詢語言)注入漏洞發生在查詢中使用用戶輸入而未對其類型和意圖進行適當驗證的情況下,這會影響從提交的字符串拼接在一起的後續查詢所顯示的結果的可靠性。

這聽起來很複雜,但您需要知道的是,這種攻擊可能會暴露您的業務數據和敏感信息。

防止 SQL 注入攻擊的最佳方法是保護輸入——阻止黑客通過表單字段或中斷框將他們自己的代碼注入網站。 您想在將用戶提交的任何值插入 SQL 查詢之前對其進行清理,如下所示: $input = filter_var($_POST['field'], FILTER_SANITIZE_STRING); if(!empty($input)){ echo “您輸入了:“.$input。”

“; }else{echo '請輸入內容';} . 請注意我們如何使用 empty () 來確保沒有空字段。

安全鎖一排都是藍色的,中間是紅色的,解鎖了

4. 確保您安全地存儲敏感數據

在保護密碼和信用卡信息安全方面,沒有犯錯的餘地——如果黑客能夠訪問包含這些信息的這些文件或數據庫,那麼風險就太高了!

為將發生此類攻擊的風險降至最低,在數據庫中存儲敏感數據時始終使用強大的加密算法——最好是採用 128 位 AES 加密的算法,例如 SHA512_RSA。

還有一些軟件可以更輕鬆地管理加密數據庫:MySQL Encryption Utilities (MEU)。 需要注意的是,MEU 僅加密 MySQL 數據庫中的文本字段,但這對於大多數用例來說已經足夠了。

在服務器機架上工作的人

5. 不要重複使用密碼

一遍又一遍地重複使用相同的密碼是遲早讓您的帳戶被黑客入侵的可靠方法! 如果您使用 PHP 的內置函數來生成隨機文本字符串(例如 rand()),請記住它們只是短暫的,因此請務必至少每隔幾個月更改一次。

您希望它包含大寫字母、小寫字母、數字和符號。 圍繞何時應該生成新字符串制定更複雜的規則也沒有壞處——例如每週一次或在使用錯誤密碼嘗試登錄三次之後。 甚至還有可以為您做數學計算的軟件!

用戶名和密碼登錄字段

6. 確保您的應用程序不會受到 XSS 攻擊

XSS(跨站點腳本)是一種將惡意代碼注入網站,然後在訪問者的瀏覽器上執行的攻擊。 這通常會導致 cookie 盜竊或會話劫持,這使黑客無需輸入自己的憑據(例如密碼或信用卡號)即可訪問您的所有敏感數據。

可以通過在網頁上使用 JavaScript 表單驗證來利用此漏洞,以便訪問者輸入的任何輸入通過頁面刷新自動執行,顯示包含活動內容(如圖像)的超鏈接,並將用戶提供的參數附加到動態 URL 上,如“? account=123' 等

坐在辦公桌前的黑客

7. 防範 CSRF 攻擊

CSRF(跨站點請求偽造)是一種攻擊,其中未經授權的命令從攻擊者的站點傳輸到您的 Web 應用程序。 這可能導致會話劫持或 cookie 盜竊等。

乍一看似乎很困難,但您需要做的就是提供一個額外的令牌,該令牌需要對可能暴露敏感信息的任何操作進行驗證,例如登錄另一個用戶的帳戶 - 這將確保不會只有一個單點漏洞,並確保您的網站上沒有使用自動帳戶。

黑客

8. 不要忘記常規補丁!

通常不言而喻,但是當系統提供商或軟件供應商發布新漏洞時,您應該及時修補它們。

您永遠不知道其他人發現了哪些安全漏洞,但您自己卻沒有意識到,而且與其讓您的網站被黑客入侵,還不如隨時了解最新情況!

黑客背後有安全一詞的人

9. 不要在生產環境中啟用調試模式

調試代碼通常具有啟用遠程文件編輯(使用 fopen())和通過 mysql_query() 生成原始 SQL 查詢等功能。

如果您想在發生錯誤時生成完整的堆棧跟踪,這些非常有用,但它會給您的生產網站帶來重大的安全風險。 禁用這些功能並刪除使用它們的任何實例也將為您節省大量修復錯誤的時間!

電腦屏幕上蟲子上方的放大鏡圖形

10.檢查防火牆是否有開放端口

每當 Windows 完成安裝更新時,點擊“下一步”可能很誘人,但不要忘記檢查正在運行的服務以及一切配置是否正確——這包括在需要時更新防火牆。

如果黑客無法找到進入您的系統的入口點,通過該入口點他們可以輕鬆執行攻擊,這將有助於阻止不受歡迎的訪問者。

看著帶有代碼的電腦屏幕的人

11. 不要使用“admin”作為賬戶​​名

如果您想防止他人通過猜測密碼訪問您的網站,請嘗試使用其他用戶名,例如“admin”或其他不那麼明顯的用戶名。

如果有人確實嘗試訪問您的帳戶,他們將更難猜測密碼,而且如果您使用不常見的用戶名,黑客也更難利用暴力破解方法!

以指紋為鍵的鍵盤上的鍵

12. 及時了解新漏洞

乍一看似乎令人生畏,但隨時了解其他人發現的安全漏洞將有助於在發生任何洩漏時確保您的系統安全。

不過,跟踪所有這些更新可能很困難——幸運的是,現在有許多可用的工具使這項任務比以往任何時候都更容易。 其中一種工具稱為“Debian 長期支持”,旨在支持多個版本的操作系統和各種軟件——包括帶有 PHP 的 Web 服務器。

使用電腦時對著相機微笑的人

結論

總之,這些只是您可以應用於網站以確保其安全的一些最佳安全實踐。 這並不總是那麼容易,但是如果您花一些時間付出努力,那麼您將獲得一個不太可能被黑客入侵的在線形象!