Rai*_*Man 4 wordpress wordpress-rest-api
我有一个 WordPress 网站,我用它来填充博客文章和自定义文章类型下的一些私人文章。在另一个网站上,我使用 REST API 来显示帖子。如果我使用像 Postman 这样的软件,我可以显示来自 REST API 的数据。
如何防止对域 www.example.com 的任何未经授权的 REST API 请求?因此,如果请求不是来自 www.mysite.com,它会被阻止吗?
如果我的自定义帖子类型(example.com)不是来自 mysite.com,则基本上防止它对其余 api 可见
您可以通过在 wp-config.php 中添加它来禁用外部请求(此外,您可以指定您不想像这样阻止的域)。
define( 'WP_HTTP_BLOCK_EXTERNAL', TRUE );
define( 'WP_ACCESSIBLE_HOSTS', 'example.com, domain.com' );
Run Code Online (Sandbox Code Playgroud)
apply_filters( 'rest_authentication_errors', WP_Error|null|bool )
Run Code Online (Sandbox Code Playgroud)
过滤 REST 身份验证错误。将代码放入主题目录中的functions.php 中。
完整描述:https ://developer.wordpress.org/reference/hooks/rest_authentication_errors/
add_filter( 'rest_authentication_errors', 'wpse150207_filter_incoming_connections' );
function wpse150207_filter_incoming_connections( $errors ){
$allowed_ips = array( '127.0.0.1' );
$request_server = $_SERVER['REMOTE_ADDR'];
if( ! in_array( $request_server, $allowed_ips ) )
return new WP_Error( 'forbidden_access', 'Access denied', array( 'status' => 403 ) );
return $errors;
}
Run Code Online (Sandbox Code Playgroud)