我們都知道 WordPress 歷來(lái)非常容易受到各種黑客攻擊。所以大多數(shù)優(yōu)秀的網(wǎng)絡(luò)主機(jī)都會(huì)練習(xí)良好的WordPress 安全性安全措施,以避免成為黑客攻擊的受害者。但是,很難跟蹤所有風(fēng)險(xiǎn)并開(kāi)發(fā)真正保護(hù)您網(wǎng)站的安全解決方案。在這里,我們將討論最危險(xiǎn)的入侵之一是如何發(fā)生的。通過(guò) SQL 進(jìn)行代碼注入。繼續(xù)閱讀以了解什么是SQL 注入,它是如何發(fā)生的,以及您可以采取哪些措施來(lái)確保您的 WordPress 網(wǎng)站不會(huì)成為注入攻擊的受害者。
了解數(shù)據(jù)庫(kù)注入
將代碼注入數(shù)據(jù)庫(kù)的黑客并不少見(jiàn)。事實(shí)上,將惡意代碼推送到 WordPress SQL 數(shù)據(jù)庫(kù)中是一種常用的方法來(lái)獲得對(duì)站點(diǎn)的未經(jīng)授權(quán)的訪問(wèn)。這一切都?xì)w結(jié)為 WordPress 對(duì) SQL 數(shù)據(jù)庫(kù)的依賴。這對(duì) WordPress 的安全性有很大影響。
WordPress 如何存儲(chǔ)內(nèi)容
每個(gè) WordPress 網(wǎng)站都有一個(gè)專用的 MySQL 數(shù)據(jù)庫(kù)——WordPress 網(wǎng)站使用的標(biāo)準(zhǔn) DBMS。每當(dāng)請(qǐng)求頁(yè)面時(shí),WordPress 都會(huì)生成一個(gè) SQL 查詢。它查詢數(shù)據(jù)庫(kù)的內(nèi)容。然后將數(shù)據(jù)庫(kù)內(nèi)容插入頁(yè)面主題以呈現(xiàn)用戶友好的內(nèi)容版本。
在 PHP SQL 的幫助下,向系統(tǒng)提供查詢以對(duì) WordPress 數(shù)據(jù)庫(kù)進(jìn)行更改。包括添加、刪除或更改數(shù)據(jù)庫(kù)本身。但是,黑客不一定通過(guò) WordPress 或控制面板連接數(shù)據(jù)庫(kù)。事實(shí)上,代碼可以通過(guò)很多不同的方式插入到 WordPress 數(shù)據(jù)庫(kù)中。
黑客如何將代碼注入 WordPress SQL 數(shù)據(jù)庫(kù)
形式。是的,黑客使用您的網(wǎng)站表單將代碼注入您的 WordPress SQL 數(shù)據(jù)庫(kù)。接收到用戶輸入的任何東西都可能成為最糟糕形式的安全問(wèn)題的入口: SQL 注入。聯(lián)系表單、登錄框、注冊(cè)框甚至搜索欄之類的任何東西
表單的問(wèn)題在于,在許多情況下,提交是在數(shù)據(jù)庫(kù)中捕獲的。在提交中添加流氓代碼,代碼存儲(chǔ)在 SQL 數(shù)據(jù)庫(kù)中。因此,黑客需要做的就是將這個(gè)流氓 SQL 代碼輸入到表單中,而不是真正的表單響應(yīng)。
一個(gè)示例是應(yīng)該只接受有效電話詳細(xì)信息的表單字段。是的,您應(yīng)該限制表單回復(fù)的格式為 XXX-XXX-XXXX。但是,如果您將該字段保留為自由格式,則黑客可以輕松地使用該字段注入 SQL 代碼。
那么,在 SQL hack 之后會(huì)發(fā)生什么?
黑客可以通過(guò)兩種方式將代碼插入您的 SQL 數(shù)據(jù)庫(kù)。這樣做的經(jīng)典方法包括將數(shù)據(jù)返回到黑客使用的網(wǎng)絡(luò)瀏覽器。實(shí)際上,這與您在網(wǎng)站上使用表單的方式相同。
像這樣的查詢可能會(huì)導(dǎo)致您的數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)庫(kù)內(nèi)的信息。而這個(gè) WordPress 安全黑客的目的是竊取敏感信息,包括可能導(dǎo)致進(jìn)一步黑客攻擊的 SQL 結(jié)構(gòu)。
另一種插入代碼的方法是使用盲 SQL 注入。這里的注入不涉及數(shù)據(jù)的返回。但相反,黑客將使用插入的代碼在您的數(shù)據(jù)庫(kù)上運(yùn)行代碼。此代碼可能會(huì)造成各種損害,包括刪除所有數(shù)據(jù)庫(kù)數(shù)據(jù)。
WordPress 安全不能阻止 SQL 注入嗎?
是的,WordPress 已經(jīng)竭盡全力嘗試阻止這些常見(jiàn)的 SQL 注入攻擊。WP 安全性涉及驗(yàn)證和清理通過(guò)表單提交的數(shù)據(jù)。
例如,驗(yàn)證確保表單上接收的數(shù)據(jù)符合指定的條件。就像將輸入到電話號(hào)碼字段中的數(shù)據(jù)與真實(shí)電話號(hào)碼的性質(zhì)進(jìn)行匹配一樣。另一個(gè)例子是 WordPress 從輸入中刪除多余和受限字符的方式。
盡管如此,仍有一些問(wèn)題是當(dāng)前 WordPress 安全策略無(wú)法解決的。這意味著 WordPress 無(wú)法完全防止操縱 SQL 代碼的數(shù)據(jù)庫(kù)注入。
例如,2017 年,WordPress 發(fā)布了一個(gè)安全更新,修復(fù)了 WordPress 團(tuán)隊(duì)檢測(cè)到的已知 SQL 漏洞。這保護(hù)了 WordPress 的核心。然而,該更新并未保護(hù)易受攻擊的主題和插件。總體而言,主題和插件在使用表單時(shí)很容易受到利用。
這些 WordPress 插件背后的開(kāi)發(fā)人員需要非常了解 WordPress 安全實(shí)踐。這樣數(shù)據(jù)庫(kù)注入就不會(huì)給 Web 主機(jī)帶來(lái)問(wèn)題。從本質(zhì)上講,最好采取額外的緩解措施。因?yàn)橥耆芾?WordPress 或插件開(kāi)發(fā)人員所做的事情是不可能的。
讓我們看看您可以采取哪些措施來(lái)管理您的WordPress 安全性,以避免由于 SQL 漏洞導(dǎo)致的黑客攻擊。
防止 SQL 漏洞利用
WordPress 本身有一些技巧。但最終,優(yōu)秀的系統(tǒng)管理員會(huì)添加額外的措施來(lái)確保他們的 WordPress 網(wǎng)站不會(huì)遭受 SQL 攻擊。以下是您需要實(shí)施的實(shí)踐的簡(jiǎn)短列表:
1.信任是關(guān)鍵
您應(yīng)該非常小心使用插件和主題的原因有很多。但 SQL 注入風(fēng)險(xiǎn)是最大的風(fēng)險(xiǎn)之一。僅使用來(lái)自可靠、合格和值得信賴的開(kāi)發(fā)人員的插件和主題。
2.定期更新
還記得我們之前提到的 2017 WordPress 修復(fù)嗎?它對(duì)很多人都不起作用。原因很簡(jiǎn)單,這些用戶禁用了自動(dòng) WordPress 更新。因此,更新從未推廣到他們的 WordPress 實(shí)例。
在更新方面,您需要非常警惕。因?yàn)椴粌H僅是 WordPress 核心需要頻繁和定期更新。您還需要確保您的 MySQL 數(shù)據(jù)庫(kù)軟件已更新。此外,始終將您的 PHP 保持在最新版本。通常,您的網(wǎng)站管理控制臺(tái)可以輕松地使您網(wǎng)站的所有這些方面保持最新。
跨多個(gè)站點(diǎn)管理更新可能很困難。但是您可以嘗試使用WordPress Toolkit之類的工具,它可以通過(guò)儀表板界面管理許多站點(diǎn)的更新。因此,它會(huì)自動(dòng)執(zhí)行更新過(guò)程。金票?您無(wú)需登錄數(shù)百個(gè)網(wǎng)站即可管理網(wǎng)站、插件和主題的更新。
3.控制字段條目和數(shù)據(jù)提交
我們已經(jīng)解釋了 SQL 注入是如何工作的。想要一個(gè)簡(jiǎn)單的 WordPress 安全技巧來(lái)阻止它們嗎?控制可以通過(guò)表單字段提交的數(shù)據(jù)類型。
名稱字段應(yīng)該只允許輸入字母,因?yàn)闆](méi)有理由讓數(shù)字字符出現(xiàn)。同樣,電話或支付卡數(shù)據(jù)不應(yīng)包含字母或特殊字符。此外,考慮部署 sanitize_text_field() 以便阻止不正確或簡(jiǎn)單危險(xiǎn)的條目。
4.不要使用默認(rèn)的WordPress數(shù)據(jù)庫(kù)名稱
這是一個(gè)非常簡(jiǎn)單的 WordPress 安全技巧:更改標(biāo)準(zhǔn) WordPress 數(shù)據(jù)庫(kù)名稱。默認(rèn)情況下,您的 WordPress 數(shù)據(jù)庫(kù)將具有前綴“wp-”。因此,使黑客更容易使用您的數(shù)據(jù)庫(kù)憑據(jù),尤其是使用機(jī)器人和自動(dòng)腳本。更改此默認(rèn)名稱會(huì)使他們更加困難。
5.跟蹤誰(shuí)使用數(shù)據(jù)庫(kù)
永遠(yuǎn)不要訪問(wèn)您的 MySQL 憑據(jù)。如果無(wú)法避免,請(qǐng)記錄憑據(jù)的使用和整體 SQL 活動(dòng)。如果進(jìn)行了未經(jīng)請(qǐng)求的更改,您可以更快地檢測(cè)到問(wèn)題。包括WordPress Toolkit在內(nèi)的 WordPress 安全工具可以幫助您做到這一點(diǎn)。
6.使用網(wǎng)站應(yīng)用防火墻
是的,您可以為您的網(wǎng)站安裝防火墻。網(wǎng)站應(yīng)用程序防火墻或 WAF 可以通過(guò)代表您分析表單輸入來(lái)檢測(cè) SQL 注入嘗試。WAF 還會(huì)阻止來(lái)自您網(wǎng)站的已知不良 IP,因此他們甚至無(wú)法進(jìn)行嘗試。市場(chǎng)上有很多WAF,請(qǐng)查看。
最終阻止 SQL 注入
數(shù)據(jù)庫(kù)注入是一種非常常見(jiàn)的入侵網(wǎng)站的方法,但幸運(yùn)的是它們是可以預(yù)防的。良好的WordPress 安全實(shí)踐可以使即使是最堅(jiān)定的黑客也難以將代碼注入您的數(shù)據(jù)庫(kù)。它可以幫助您進(jìn)行 WordPress 安全工作。它還提供了一系列其他 WP 工具,使管理和維護(hù) WordPress 應(yīng)用程序變得更加容易。