gpt4 book ai didi

wordpress - 安全禁用 WP REST API

转载 作者:行者123 更新时间:2023-12-03 11:36:27 25 4
gpt4 key购买 nike

我正在考虑提高我的 Wordpress 网站的安全性,并且在这样做时遇到了默认启用的 WP REST API(如果我没记错的话,从 WP 4.4 开始)。

禁用它的安全方法是什么?

这里的“安全”是指它不会引起意外的副作用,例如不会破坏任何其他 WP 核心功能。

一种可能的方法是使用 .htaccess重写规则,但令人惊讶的是我没有找到任何关于这样做的“官方”说明。

非常感谢任何帮助或建议:)

更新:
第 3 方插件不是我正在寻找的解决方案。尽管我知道有很多它们可以解决任务,但它们包含许多会降低网站速度的额外功能。我希望有一个解决此问题的单行解决方案,而无需额外插件的开销。

更新 2:
以下是 Wordpress 的官方意见:https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api

据此,Wordpress 团队希望 future 的 WP 功能依赖于新的 REST API。这意味着没有保证安全的方法来禁用 REST API。

我们只是希望有足够的安全专家来处理 WP 安全。

更新 3:

WordPress API 手册中提供了一种解决方法 - 您可以 Require Authentication for All Reque​sts

这可确保禁用对您网站的 REST API 的匿名访问,只有经过身份验证的请求才能工作。

最佳答案

从作者的原始问题中,我选择了来自 wordpress 官方推荐的选项 2(https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api)。所以只需放入你的functions.php,让只有登录的用户使用其余的api:

add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
}
return $result;
});

关于wordpress - 安全禁用 WP REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41191655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com