启用CORS的安全风险

时间:2014-10-29 06:50:37

标签: php security cakephp cors

我正在使用CakePHP 2.3.8,并且我希望为我的一些操作启用CORS,以便能够处理从其他域发出的请求。我有一个使用webooks的支付处理器,除了我想使用的其他功能外,我还想使用该功能。

这是一个两部分问题

  1. 如果我在特定功能上启用CORS,这是否意味着该功能是唯一功能将接受来自其他域的请求(假设它是唯一的功能,它是' s启用)?
  2. 例如,假设我有以下行动/方法......

    public function cors_enabled(){
        $this->response->header('Access-Control-Allow-Origin', '*');
        echo "other domains can access this";
    }
    
    public function cors_not_enabled(){
        echo "good luck getting this content!";
    }
    

    如果来自其他域名的某人试图访问" cors_enabled"功能他们会看到"其他域名可以访问这个!"消息,但如果他们试图访问" cors_not_enabled"功能它是不允许的。这是对的吗?

    1. 假设我确切知道我在POST / GET数据中寻找的内容并对其进行验证,那么我面临的主要安全风险是什么?是的,其他域名可以访问特定的URL,但假设我有正确的验证并且我确切地知道我正在寻找什么,是否还有其他因素我需要考虑?

1 个答案:

答案 0 :(得分:1)

  1. 如果您没有启用CORS的特定标头:
    $this->response->header('Access-Control-Allow-Origin', '*');
    CORS将被禁用,其他域名无法连接。

    1. 如果您在POST数据中放置了一些授权令牌,然后在代码中处理此令牌,那么端点可以保持打开状态。
      但是这个标记不应该是静态的,否则从长远来看它是不安全的 通常的做法是使用一些盐来对时间戳进行哈希并将其用作授权令牌。