温馨提示: 本文最后更新于
2025-02-23 17:24:38
,某些文章具有时效性,若有错误或已失效,请在下方留言! 前言
为什么会想到发这样一个教程呢?前段时间在 CDN 后台看到某个站点一天发起了几百万个请求,当时我感到很纳闷的,于是去这个站点查看,才终于发现问题的根源。
![图片[1]-屏蔽WordPress自带的REST API接口-星雨博客](https://www.wniui.com/wp-content/uploads/d2b5ca33bd20250222220339.webp)
![图片[2]-屏蔽WordPress自带的REST API接口-星雨博客](https://www.wniui.com/wp-content/uploads/d2b5ca33bd20250222220502.webp)
说来话长,得从一个之前的美化教程说起,那个教程是通过 WordPress 自带的 REST API 接口实现的,但由于我没有充分考虑到一些逻辑问题,导致频繁请求 WordPress 的 API 接口,恰巧这位站长在使用代码时未修改 API 接口,造成大量请求被发送到本站。
由于站长未在主页上留下任何联系方式,我只好在 WordPress 上做了一些屏蔽措施,以防止进一步的请求。
部署教程
将下方代码放置在主题目录下的function.php或者新建一个func.php文件
add_filter('rest_pre_dispatch', function ($response, $server, $request) {$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';$site_url = get_site_url();if ($origin && strpos($origin, $site_url) === 0) {return $response;}if ($referer && strpos($referer, $site_url) === 0) {return $response;}return new WP_Error('rest_forbidden', 'Forbidden', array('status' => 403));}, 10, 3);add_filter('rest_pre_dispatch', function ($response, $server, $request) { $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : ''; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $site_url = get_site_url(); if ($origin && strpos($origin, $site_url) === 0) { return $response; } if ($referer && strpos($referer, $site_url) === 0) { return $response; } return new WP_Error('rest_forbidden', 'Forbidden', array('status' => 403)); }, 10, 3);add_filter('rest_pre_dispatch', function ($response, $server, $request) { $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : ''; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $site_url = get_site_url(); if ($origin && strpos($origin, $site_url) === 0) { return $response; } if ($referer && strpos($referer, $site_url) === 0) { return $response; } return new WP_Error('rest_forbidden', 'Forbidden', array('status' => 403)); }, 10, 3);
© 版权声明
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自星雨の博客
THE END
- 最新
- 最热
只看作者