如何防止 SQL 注入? (2020 年完整指南)- MalCare
已發表: 2023-04-19您是否擔心您網站上的 SQL 注入攻擊? 如果您正在閱讀本文,您可能已經知道攻擊的後果。 在本文中,您將學習防止 SQL 注入的簡單方法。
SQL 注入可以讓黑客劫持您的 WordPress 網站並對其進行訪問控制。 從那裡,他們可以重定向您的流量、竊取機密數據、注入垃圾郵件鏈接、操縱帶有日語字符的搜索結果以及展示非法產品的廣告。 這種攻擊可能會對您的站點和業務造成無法彌補的損害。
幸運的是,如果採取正確的安全措施,SQL 注入是可以預防的。 在本指南中,我們解決了 SQL 注入並深入討論了防止它們和保護您的 WordPress 網站的有效措施。
TL;DR:您可以使用可靠的安全插件來防止 WordPress 網站上的 SQL 注入。 安裝 MalCare,該插件將自動掃描並保護您的站點免受此類攻擊。
[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”最後的想法”]
什麼是 SQL 注入攻擊?
所有 WordPress 站點通常都有允許訪問者輸入信息的輸入區域。 這可以是站點搜索欄、聯繫表單或登錄表單。
在聯繫表中,訪問者將輸入他們的數據,如姓名、電話號碼和電子郵件,並將其提交到您的網站。
此數據將發送到您網站的 MySQL 數據庫。 它在這裡被處理和存儲。
現在,這些輸入字段需要適當的配置,以確保數據在進入數據庫之前得到驗證和清理。 例如,聯繫表單的漏洞是它應該只接受字母和數字。 理想情況下,它不應該接受符號。 現在,如果您的站點通過此表單接受任何數據,黑客就可以利用並插入惡意 SQL 查詢,例如:
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
黑客的目標是安全措施薄弱或存在漏洞的網站,這使他們很容易闖入。根據我們的經驗,插件和主題經常會產生漏洞,黑客對此很清楚。 他們不斷在 Internet 上徘徊,尋找使用易受攻擊的插件和主題的站點。
為了解釋這一點,我們將使用一個示例場景。 假設 A 先生正在使用插件“聯繫表格”來為其網站的聯繫頁面上的表格提供支持。 假設在 2.4 版本的這個插件中發現了一個 SQL 注入漏洞,開發人員修復了它並發布了更新的 2.4.1 版本。
發布後,開發人員會透露更新的原因,使安全漏洞為公眾所知。 這意味著黑客知道 Contact Form 插件 2.4 版中存在安全漏洞。
現在,X 先生將更新安裝推遲了幾週,因為根本沒有時間運行更新。 這就是問題所在。
一旦黑客發現了漏洞,他們就會運行程序或使用漏洞掃描器在互聯網上爬行,並找到使用特定版本插件/主題的網站。
在這種情況下,他們將查找使用 Contact Form 2.4 的網站。 一旦他們找到該網站,他們就會知道確切的網絡漏洞,這使得他們更容易破解。 在這種情況下,他們將利用 SQL 注入漏洞並侵入您的站點。
SQL注入的類型
黑客使用兩種類型的 SQL 注入:
1. 經典 SQL 注入——當您訪問網站時,您的瀏覽器(如 Chrome 或 Mozilla)會向網站服務器發送 HTTP 請求以顯示內容。 Web 服務器從網站的數據庫中獲取內容並將其發送回您的瀏覽器。 這就是您查看網站前端的方式。
現在,您網站的數據庫包含各種數據,包括客戶詳細信息、付款信息以及用戶名和密碼等機密數據。 您的數據庫應配置為僅發布前端數據。 應保護所有其他機密數據。 但是,如果這些應用程序安全檢查沒有到位,黑客就會乘虛而入。
在經典 SQL 注入攻擊中,黑客向您的數據庫發送惡意請求,將數據檢索到他們的瀏覽器。 但是他們使用查詢字符串來請求敏感信息,例如您網站的登錄憑據。如果您沒有保護這些信息,它將被發送給黑客。 通過這種方式,他們可以獲得您的登錄詳細信息並闖入您的網站。 攻擊者還可以使用準備好的語句作為高效重複執行相同或相似數據庫語句的方式。
2. SQL 盲注——在這種情況下,黑客通過您網站上的輸入字段注入惡意腳本。 一旦它存儲在您的數據庫中,他們就會執行它來造成各種破壞,例如更改您網站的內容,甚至刪除您的整個數據庫。在這種情況下,他們也可以使用惡意腳本來獲得管理員權限。
這兩種情況都會對您的網站和業務產生毀滅性的影響。 幸運的是,您可以通過在您的網站上採取正確的安全和輸入驗證措施來防止此類攻擊。
防止 SQL 注入攻擊的步驟
為防止 SQL 注入攻擊,您需要對您的網站進行安全評估。 這裡有兩種類型的措施可以用來防止 SQL 攻擊——一些是簡單的,一些是複雜的和技術性的。
簡單的預防措施
- 安裝安全插件
- 僅使用受信任的主題和插件
- 刪除您網站上的任何盜版軟件
- 刪除不活動的主題和插件
- 定期更新您的網站
技術預防措施
- 更改默認數據庫名稱
- 控製字段條目和數據提交
- 強化您的 WordPress 網站
讓我們開始吧。
簡單的 SQL 注入攻擊預防措施
1.安裝安全插件
激活網站安全插件是您保護網站所需採取的第一步。 WordPress 安全插件將監控您的網站並防止黑客入侵。
有很多插件可供選擇,但根據它所提供的功能,我們選擇 MalCare。 該插件將自動建立一個 Web 應用程序防火牆來保護您的站點免受攻擊。 識別並阻止黑客企圖。
接下來,插件的安全掃描器將每天徹底掃描您的網站。 如果您的網站上有任何可疑行為或惡意活動,您會立即收到警報。 在 Google 有機會將您的網站列入黑名單或您的託管服務提供商決定暫停您的網站之前,您可以立即採取行動並使用 MalCare 修復您的網站。
2.定期更新您的網站
正如我們在前面的 SQL 注入示例中提到的,當開發人員在他們的軟件中發現安全漏洞時,他們會修復它並發布帶有安全補丁的新版本。 您需要更新到新版本才能從您的站點中刪除該缺陷。
我們建議每週花一次時間來更新您的 WordPress 核心安裝、主題和插件。
但是,如果您看到發布了安全更新,請立即安裝更新。
3.只使用受信任的主題和插件
WordPress 是最受歡迎的網站構建平台,部分原因在於插件和主題使其變得簡單且價格合理。 但是在眾多可用的主題和插件中,您需要謹慎選擇。 檢查插件的詳細信息,例如活動安裝數、最後更新日期以及測試過的版本。
我們建議從 WordPress 存儲庫下載它們。 對於任何其他主題和插件,您應該進行適當的研究以驗證它們是否可信。 這是因為某些第三方主題和插件可能會被黑客惡意製作。 它也可能只是編碼錯誤,這會導致漏洞。
4. 刪除您網站上的任何盜版軟件
盜版或無效的主題和插件很誘人。 它使您可以免費使用高級功能。 但不幸的是,這些通常帶有預裝的惡意軟件。 盜版軟件是黑客傳播惡意軟件的一種簡便方法。
當您安裝它時,惡意軟件會被激活並感染您的網站。 最好遠離此類軟件。
5.刪除不活躍的主題和插件
安裝一個插件並在多年後完全忘記它是很常見的。 但是這種習慣會使您的網站暴露給黑客。 您在網站上安裝的插件和主題越多,出現漏洞和黑客利用它們的可能性就越大。
我們建議只保留您使用的插件和主題。 刪除其餘部分並使您的站點更安全。 還要定期掃描您現有的主題和插件。
技術預防措施
這些措施可能需要對 WordPress 的內部運作有更多的了解。 然而,如今,一切都有一個插件。 因此,您不必擔心實施這些措施所涉及的複雜性。 我們讓它變得簡單!
1.更改默認數據庫表名
您的 WordPress 站點由文件和數據庫組成。 在您的數據庫中,默認情況下有 11 個表。 每個表都包含各種數據和配置。 這些表以前綴“wp_”命名。 所以表的名稱可以是 wp_options、wp_users、wp_meta。 你明白了。
這些名稱在所有 WordPress 站點中都是相同的,黑客知道這一點。 黑客知道哪個表存儲什麼樣的數據。 當黑客在您的網站上插入惡意腳本時,他們知道腳本的存儲位置。 使用簡單的方法,他們可以執行 SQL 命令來運行惡意活動。
但是,如果您更改表的名稱,它可以阻止黑客找到腳本所在的位置。 因此,當黑客試圖將 SQL 代碼注入您的數據庫表時,他們將無法找出表名。
您可以使用 Change Table Prefix 或 Brozzme 等插件來完成此操作。 只需在您的站點上安裝其中一個並按照步驟操作即可。
您也可以通過編輯 wp-config 文件手動執行此操作。 提醒一句——這裡的一個小失誤可能會導致數據庫錯誤和站點故障。 在繼續之前進行備份。
- 轉到您的主機帳戶 > cPanel > 文件管理器。
- 在這裡,訪問 public_html 文件夾並右鍵單擊 wp-config 文件。
- 選擇編輯,找到以下代碼
“$table_prefix = 'wp_';” - 將其替換為 -
“$table_prefix = 'test_';”
您可以選擇您選擇的任何前綴。 這裡我們選擇“test_”作為新的數據庫名稱。 一旦完成,黑客將無法找到他們的 SQL 命令。
2. 控製字段錄入和數據提交
您可以將網站上的所有輸入字段配置為僅接受特定類型的數據。 例如,名稱字段應該只允許字母條目(字母),因為沒有理由在這裡輸入數字字符。 同樣,聯繫電話字段應該只接受數字。
您可以使用 sanitize_text_field() 函數來清理用戶輸入。 此輸入驗證可確保阻止不正確或危險的條目。
3. 強化你的 WordPress 網站
這是保護 WordPress 站點免受 SQL 注入攻擊的最重要步驟之一。 什麼是網站加固?
WordPress 網站為您提供了許多功能來幫助您運行網站。 然而,大多數人並不使用其中的許多功能。 如果您不使用它們,WordPress.org 建議禁用或刪除其中的一些。 這將減少攻擊的機會,因為黑客可以嘗試的元素更少!
一些 WordPress 加固措施是:
- 禁用文件編輯器
- 禁用插件或主題安裝
- 實施雙因素身份驗證
- 限制登錄嘗試
- 更改 WordPress 安全密鑰和鹽
- 阻止在未知文件夾中執行 PHP
要實施這些措施,您可以使用 MalCare 等插件,只需點擊幾下即可完成。
或者您可以按照我們的 WordPress 強化指南手動實施。
這使我們結束了防止 SQL 注入攻擊的工作。 如果您實施了我們在此 SQL 注入備忘單中討論的措施,您的站點將是安全的
[ss_click_to_tweet tweet=”可以防止 SQL 注入攻擊! 使用本指南在您的 WordPress 網站上實施正確的安全措施。” 內容=”” 樣式=”默認”]
最後的想法
預防真的勝於治療。 SQL 注入攻擊會造成不必要的壓力和嚴重的經濟負擔。
我們今天討論的大多數措施都可以使用插件輕鬆實現。 因此,如果您不懂技術,也不必擔心! 你仍然可以保護自己!
在實施這些措施的同時,我們強烈建議在您的網站上激活 MalCare。 它的防火牆將積極保護您的網站免受攻擊。 它每天都會掃描您的網站,以檢查您網站上是否存在黑客企圖和惡意軟件。
您可以將其視為您的網站安全衛士,負責監控您的網站並將壞人拒之門外。 知道您的網站受到保護,您可以高枕無憂。
使用我們的 MalCare 安全插件防止黑客攻擊!