允许访问-控制-允许-来源的危险:*仅适用于提要?

时间:2016-03-26 作者:Tom Woodward

我想使用这样的函数来允许访问来自各种服务的提要,但我对安全含义的了解有限。我想我是安全的,因为我限制了对feed的访问。

如果我这样做,会造成什么危险(如果有)?

add_action( \'pre_get_posts\', \'add_header_origin\' );

function add_header_origin() {
    if (is_feed()){
        header( \'Access-Control-Allow-Origin: *\' );
    }
}

3 个回复
SO网友:Mark Kaplun

您需要有一个非常好的理由来禁用CORS,因为这里没有给出真正的理由,答案应该是“不要这样做,它不安全”。

您假设没有人可以创建一个feed链接来给他写访问权。这可能是真的,但您不应该基于“假设”打开安全漏洞。

至少,如果某个其他域需要对您的提要进行“AJAX”访问,您应该仅对该特定域禁用CORS。

此外pre_get_posts 是完全错误的地方,你应该在init. 您当前编写代码的方式可能会禁用非提要页面的CORS。

SO网友:Tom Woodward

我读过this post 正如我所说,只要我不需要登录凭据(我不需要),一切都很好。

SO网友:Alex Molodoi

请注意设置Access-Control-Allow-Origin: * 仅指示浏览器是否应该使用响应。无论此设置如何,该头都不会影响服务器端发出的请求(curl、python、node)。