是一個簡單,超快速的插件,可保護您的網站免遭惡意URL請求。燒烤檢查所有傳入流量,并悄悄塊壞請求包含討厭的東西一樣eval(
,base64_
和過長請求字符串。對于無法使用強大的.htaccess防火墻的站點,這是一個簡單而可靠的解決方案。
- 官方介紹: https://perishablepress.com/block-bad-queries/
- 官方下載: https://wordpress.org/plugins/block-bad-queries/
本站下載:
[zrz_file link="https://cdn.getimg.net/npc/2019/wordpress/plugin/block-bad-queries.20191109.zip" name="block-bad-queries.20191109.zip" code=""]
很棒的功能
- 100%即插即用功能
- 無需配置(可以正常工作)
- 天生的速度和簡單,沒有多余的裝飾
- 100%專注于安全性和性能
- 阻止各種惡意請求
- 阻止目錄遍歷攻擊
- 阻止可執行文件上傳
- 阻止SQL注入攻擊
- 基于5G / 6G防火墻
- 掃描所有傳入流量并阻止不良請求
- 掃描所有類型的請求:GET,POST,PUT,DELETE等。
- 在后臺靜默工作以保護您的網站
- 易于使用的無憂安全插件
- 經過全面測試,無錯誤的性能
- 與其他安全性插件兼容
- 定期更新和“面向未來”
- 通過白名單/黑名單插件自定義阻止的字符串
隱私
該插件不收集或存儲任何用戶數據。它不會設置任何cookie,也不會連接到任何第三方位置。因此,此插件不會以任何方式影響用戶隱私。
無論是否使用Gutenberg塊編輯器,均可完美運行
專業版
要獲得高級保護和強大功能,請查看BBQ Pro。
驗證它是否正常
一旦BBQ安裝,你可以驗證它的工作通過請求下列網址從您的網站S(?example.com
):
http://example.com/proc/self/environ
http://example.com/path/?q=%2e%2e
http://example.com/path/base64_
這些只是BBQ阻止的垃圾類型的示例。如果您的服務器針對這些示例返回403“ Forbidden”(禁止)響應,則BBQ正在執行它的thang。使用BBQ防火墻中包含的模式可以進行更多測試。
這個怎么運作
這基本上是我移植到PHP的G系列?黑名單的改編。它通過定義一組匹配并阻止惡意URL請求的正則表達式來工作。BBQ掃描每個請求的三個部分:
- 請求URI
- 查詢字符串
- 用戶代理
根據策略設計的一組已知攻擊模式檢查這些變量是防止惡意攻擊的有效方法。
BBQ獨立PHP腳本
要在非WP網站上實現BBQ腳本,請為每個頁面請求(例如,在每個網頁的開頭)添加以下代碼。
<?php
/*
Plugin Name: Block Bad Queries (BBQ)
Plugin URI: https://perishablepress.com/block-bad-queries/
Description: Automatically protects WordPress against malicious URL requests.
Author: Jeff Starr
Author URI: https://monzillamedia.com/
Version: (standalone)
License: GPL v2
Usage: No configuration necessary. Upload, activate and done. BBQ blocks bad queries automically to protect your site against malicious URL requests.
Tags: security, protect, firewall, php, eval, malicious, url, request, blacklist
*/
$request_uri = $_SERVER['REQUEST_URI'];
$query_string = $_SERVER['QUERY_STRING'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// request uri
if ( //strlen($request_uri) > 255 ||
stripos($request_uri, 'eval(') ||
stripos($request_uri, 'CONCAT') ||
stripos($request_uri, 'UNION+SELECT') ||
stripos($request_uri, '(null)') ||
stripos($request_uri, 'base64_') ||
stripos($request_uri, '/localhost') ||
stripos($request_uri, '/pingserver') ||
stripos($request_uri, '/config.') ||
stripos($request_uri, '/wwwroot') ||
stripos($request_uri, '/makefile') ||
stripos($request_uri, 'crossdomain.') ||
stripos($request_uri, 'proc/self/environ') ||
stripos($request_uri, 'etc/passwd') ||
stripos($request_uri, '/https/') ||
stripos($request_uri, '/http/') ||
stripos($request_uri, '/ftp/') ||
stripos($request_uri, '/cgi/') ||
stripos($request_uri, '.cgi') ||
stripos($request_uri, '.exe') ||
stripos($request_uri, '.sql') ||
stripos($request_uri, '.ini') ||
stripos($request_uri, '.dll') ||
stripos($request_uri, '.asp') ||
stripos($request_uri, '.jsp') ||
stripos($request_uri, '/.bash') ||
stripos($request_uri, '/.git') ||
stripos($request_uri, '/.svn') ||
stripos($request_uri, '/.tar') ||
stripos($request_uri, ' ') ||
stripos($request_uri, '<') ||
stripos($request_uri, '>') ||
stripos($request_uri, '/=') ||
stripos($request_uri, '...') ||
stripos($request_uri, '+++') ||
stripos($request_uri, '://') ||
stripos($request_uri, '/&&') ||
// query strings
stripos($query_string, '?') ||
stripos($query_string, ':') ||
stripos($query_string, '[') ||
stripos($query_string, ']') ||
stripos($query_string, '../') ||
stripos($query_string, '127.0.0.1') ||
stripos($query_string, 'loopback') ||
stripos($query_string, '%0A') ||
stripos($query_string, '%0D') ||
stripos($query_string, '%22') ||
stripos($query_string, '%27') ||
stripos($query_string, '%3C') ||
stripos($query_string, '%3E') ||
stripos($query_string, '%00') ||
stripos($query_string, '%2e%2e') ||
stripos($query_string, 'union') ||
stripos($query_string, 'input_file') ||
stripos($query_string, 'execute') ||
stripos($query_string, 'mosconfig') ||
stripos($query_string, 'environ') ||
//stripos($query_string, 'scanner') ||
stripos($query_string, 'path=.') ||
stripos($query_string, 'mod=.') ||
// user agents
stripos($user_agent, 'binlar') ||
stripos($user_agent, 'casper') ||
stripos($user_agent, 'cmswor') ||
stripos($user_agent, 'diavol') ||
stripos($user_agent, 'dotbot') ||
stripos($user_agent, 'finder') ||
stripos($user_agent, 'flicky') ||
stripos($user_agent, 'libwww') ||
stripos($user_agent, 'nutch') ||
stripos($user_agent, 'planet') ||
stripos($user_agent, 'purebot') ||
stripos($user_agent, 'pycurl') ||
stripos($user_agent, 'skygrid') ||
stripos($user_agent, 'sucker') ||
stripos($user_agent, 'turnit') ||
stripos($user_agent, 'vikspi') ||
stripos($user_agent, 'zmeu')
) {
@header('HTTP/1.1 403 Forbidden');
@header('Status: 403 Forbidden');
@header('Connection: Close');
@exit;
} ?>
無需對此代碼進行任何更改,因此您應該一切順利。請注意,此腳本與當前版本的WP插件有所不同。已對更新版本的插件進行了優化,以更好地與WordPress配合使用,但此版本的BBQ總體上仍繼續保護非WP網站。
請注意,任何時候您都可以使用最新模式在獨立腳本中更新BBQ黑名單。只需下載BBQ插件,然后從主插件文件中復制正則表達式數組即可。