我有一个WordPress网站,该网站仅用于填充自定义帖子类型下的博客帖子和一些私人帖子。在另一个网站上,我正在使用REST API来显示帖子。如果使用Postman之类的软件,则可以显示REST API中的数据。
如何防止对域www.example.com的任何未经授权的REST API请求?因此,如果请求不是来自www.mysite.com,则被阻止了吗?
如果不是来自mysite.com的其余api,则基本上阻止我的自定义帖子类型(example.com)可见
答案 0 :(得分:2)
您可以通过在wp-config.php中添加外部请求来禁用外部请求(此外,您可以指定不想阻止的域,这样)。
define( 'WP_HTTP_BLOCK_EXTERNAL', TRUE );
define( 'WP_ACCESSIBLE_HOSTS', 'example.com, domain.com' );
答案 1 :(得分:2)
<input type = "text" [(ngModel)] = "writerSuggest" (ngModelChange) = "getWriterList($event)" />
过滤REST身份验证错误。将代码放入主题目录中的functions.php中。
完整描述:https://developer.wordpress.org/reference/hooks/rest_authentication_errors/
apply_filters( 'rest_authentication_errors', WP_Error|null|bool )
答案 2 :(得分:0)
限制REST请求的一种方法是使用优先级1挂在rest_api_init
上,并将所需的IP列入白名单。在此示例中,我仅将REST访问限制为服务器本身:
/**
* Disables WordPress Rest API for external requests
*/
add_action('rest_api_init', function() {
$whitelist = ['127.0.0.1', "::1"];
if(!in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
die('REST API is disabled.');
}
}, 1);