1. 问题描述:
用wordpress建了一个网站,但是学校反映说存在安全漏洞,通过接口https://xxx.xxx.edu.cn/?rest_route=/wp/v2/users/可以访问到一些内容,希望可以关闭这个接口。
2. 解决办法
一共两步
(1)在functions.php添加内容:
(这个php的文件路径一般在你安装wprdpress的路径的themes下,比如我的在:
/var/www/html/wp-content/themes/astra/functions.php)
add_filter( 'rest_endpoints', function( $endpoints ){
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
return $endpoints;
});
(2) 在.htaccess文件中添加:
(这个文件在你安装的wordpress路径下,比如我的在/var/www/html/.htaccess)
(因为我安装wp的时候是基于apache去配置的,修改的是.htaccess这个文件,如果你是基于Nginx的话,需要修改的是Nginx对应的文件)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/wp-json/wp/v2/users/?$
RewriteRule ^.* - [R=403,L]
</IfModule>
3. 结果
修改后在这个接口下就返回不了啥有效信息了
4. 其他
不知道截图软件咋了,打字时候"c"打不出来,所以文中图片标注有一些出入,比如”function“->”funtion, htaccess->htaess