什么是拒绝服务攻击?WordPress网站防范DDoS攻击的方法
什么是拒绝服务或DoS攻击?做WordPress网的基本都会遇到这类的攻击?如何防范呢?简而言之,DoS攻击试…
什么是拒绝服务或DoS攻击?做WordPress网的基本都会遇到这类的攻击?如何防范呢?简而言之,DoS攻击试图创造虚假的流量,使你的WordPress网站过载,以至于它由于主机/服务器的限制而变得不可用。DoS的一个延伸是DDoS攻击,代表分布式拒绝服务。这种攻击来自于多个IP地址。
DDoS攻击的类型
TCP状态耗尽攻击 | 发送数以百万计的 TCP 连接使稳定表不堪重负,导致网站宕机或性能下降。 |
洪水攻击 | 发送大量 ICMP 回显请求/回复数据包以淹没网络设备,如集线器或交换机,并消耗网络的整个带宽。在攻击期间,没有其他客户端能够连接到目标网站。 |
碎片攻击 | 数以百万计的碎片数据包被发送到网站,使服务器难以重新组装它们;拒绝任何有效用户的访问。 |
应用层攻击 | 大量应用程序请求(XML-RPC 或 WP REST API)被发送到耗尽托管资源的目标,因此它将无法为任何有效的客户端提供服务。 |
SYN 泛洪 | 黑客使用受感染的设备(僵尸)并同时用多个 SYN 数据包淹没网站。SYN 请求的数量会使网站不堪重负,要么出现故障,要么性能下降。 |
捣毁 | 欺诈性更新被发送到硬件,造成永久性损坏并使其无法使用。唯一的解决方案是重新安装硬件。 |
DDoS攻击可以造成什么损害:
- 网站对任何合法访客的反应都会很慢,甚至无法访问。
- 你可能会失去销售或AdSense收入
- 网站在谷歌上的排名会慢慢下降
如何保护WordPress网站免受DDos攻击
禁用WP REST API
WordPress REST API为应用程序提供了一个接口,可以通过发送和接收JSON(JavaScript对象符号)对象的数据与你的WordPress网站进行交互。它是WordPress块状编辑器的基础,同样也可以使你的主题、插件或自定义应用程序为管理和发布你的网站内容提供新的、强大的界面。
要在你的WordPress网站上禁用WP REST API,请在.htaccess中添加以下内容:
# WP REST API BLOCK JSON REQUESTS
# Block/Forbid Requests to: /wp-json/wp/
# WP REST API REQUEST METHODS: GET, POST, PUT, PATCH, DELETE
RewriteCond %{REQUEST_METHOD} ^(GET|POST|PUT|PATCH|DELETE) [NC]
RewriteCond %{REQUEST_URI} ^.*wp-json/wp/ [NC]
RewriteRule ^(.*)$ - [F]
注意:你不应该直接禁用REST API;这样做会破坏WordPress的管理功能,因为这些功能依赖于API的激活。
比如为了限制WP REST API的使用,在没有任何插件的情况下,只允许登录的用户使用,在你的主题 functions.php 文件中添加以下代码。
add_filter( 'rest_authentication_errors', function( $result ) {
// If a previous authentication check was applied,
// pass that result along without modification.
if ( true === $result || is_wp_error( $result ) ) {
return $result;
}
// No authentication has been performed yet.
// Return an error if user is not logged in.
if ( ! is_user_logged_in() ) {
return new WP_Error(
'rest_not_logged_in',
__( 'You are not currently logged in.' ),
array( 'status' => 401 )
);
}
// Our custom authentication check should have no effect
// on logged-in requests
return $result;
});
或者将WP REST API限制在localhost。
function restrict_rest_api_to_localhost() {
$whitelist = [ '127.0.0.1', "::1" ];
if( ! in_array($_SERVER['REMOTE_ADDR'], $whitelist ) ){
die( 'REST API is disabled.' );
}
}
add_action( 'rest_api_init', 'restrict_rest_api_to_localhost', 0 );
禁用XML-RPC Pingbacks
XML-RPC是一个用于pingbacks和跟踪的功能在WordPress 3.5中被引入,并在此后的每个WordPress版本中默认启用。虽然WordPress现在有自己的REST API,但xmlrpc.php文件仍然存在于核心部分,并可能被滥用于各种网络攻击。
黑客利用WordPress的pingback功能以及xmlrpc.php文件来执行DDoS攻击。他们的目标是端点或一个可以被击中几次的页面,需要更长的时间来回应。这样一来,一次点击就可以对服务器资源产生最大的影响,在我们的案例中,XMLRPC很好地为黑客服务,暴露了这样的端点。
铺天盖地的HTTP GET和POST请求阻塞了正常的流量,最终使服务器崩溃。要禁用WordPress的XML-RPC,只需在.htaccess中添加以下内容
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
你可以把某个IP地址列入白名单,以防你仍然希望通过XMLRPC访问你的WordPress网站。为此,你需要添加以下命令。
<Files xmlrpc.php>
<RequireAny>
Require ip 1.1.1.2
Require ip 2001:db8::/32
</RequireAny>
</Files>
注意:当XML-RPC被禁用时,Jetpack、WP移动应用程序或任何其他通过XMLRPC与你的WordPress网站连接的解决方案不能再与你的网站连接。
使用WAF
网络应用防火墙(WAF)在保护任何托管服务器上的WordPress网站方面发挥着关键作用。它们构成了防御基于云的漏洞的骨干,这些漏洞会破坏安全或损害网站和数据的可用性。
这里有一些最好的开源WAF来保护你的WordPress网站:
- ModSecurity
- WebKnight
- Vulture
还有一些付费的WAFs:
- Cloudflare
- Sucuri
- Stackpath
这里可以选择一些WordPress安全防护插件:
- 【SecuPress Pro完美汉化中文版|专业WordPress漏洞扫描及安全插件介绍】
- 【iThemes Security Pro汉化中文专业版|WordPress最佳安全防护插件介绍】
- 【WPMU Dev Defender Pro 3.4.0完美汉化中文版|WordPress高级防火墙安全防护插件】
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!