返回》

什么是拒绝服务攻击?WordPress网站防范DDoS攻击的方法

什么是拒绝服务或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 APIWordPress 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 PingbacksXML-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 order allow,deny deny from all 你可以把某个IP地址列入白名单,以防你仍然希望通过XMLRPC访问你的WordPress网站。为此,你需要添加以下命令。 Require ip 1.1.1.2 Require ip 2001:db8::/32 注意:当XML-RPC被禁用时,Jetpack、WP移动应用程序或任何其他通过XMLRPC与你的WordPress网站连接的解决方案不能再与你的网站连接。使用WAF网络应用防火墙(WAF)在保护任何托管服务器上的WordPress网站方面发挥着关键作用。它们构成了防御基于云的漏洞的骨干,这些漏洞会破坏安全或损害网站和数据的可用性。这里有一些最好的开源WAF来保护你的WordPress网站:ModSecurityWebKnightVulture还有一些付费的WAFs:CloudflareSucuriStackpath这里可以选择一些WordPress安全防护插件:【SecuPress Pro完美汉化中文版|专业WordPress漏洞扫描及安全插件介绍】【iThemes Security Pro汉化中文专业版|WordPress最佳安全防护插件介绍】【WPMU Dev Defender Pro 3.4.0完美汉化中文版|WordPress高级防火墙安全防护插件】
THE END