我如何在cookie上强制HttpOnly FALSE,以便JavaScript可以通过PHP跨域读取它们


How Can I Force HttpOnly FALSE On Cookies So JavaScript Can Read Them With PHP Cross-Domain?

我需要X.com上高度混杂的cookie,因为安全不是问题。我怎么能强制HttpOnly是假的cookie在域名X.com,使JavaScript上的AnyRandomUnexpectedDomain.com可以调用X.com/readCookie.php和readCookie.php可以发回的数据在X.com cookie ?

readCookie.php有header("Access-Control-Allow-Origin: *"), nginx web服务器也有Access-Control-Allow-Origin大打开。在php.ini会话中。Cookie_httponly = 0,当然,这只适用于会话,而不是永久cookie。通过这种设置,远程执行调用和AJAX数据流跨域工作正常,但唯一的问题是添加到readCookie.php中的$_COOKIE["auth"]调用没有返回任何内容,即使在创建auth cookie时将HttpOnly显式设置为FALSE,如:

setcookie("auth",$secret,time()+3600*24*365,"/",null,false,false);

代码,web服务器,PHP等中还需要什么,以便$_COOKIE["auth"]将X.com cookie的值返回给AnyRandomUnexpectedDomain.com?

我使用session_set_cookie_params设置cookie。这是我使用的代码。

 $session_name = 'somesessionname';
    $secure = false;   //for https
    $httponly = false;  //as per use in javascript
    if (ini_set('session.use_only_cookies', 1) === FALSE) {
       //err=Could not initiate a safe session 
        exit();
    }
    $cookieParams = session_get_cookie_params();
    session_set_cookie_params($cookieParams["lifetime"],
    $cookieParams["path"], 
     $cookieParams["domain"], 
        $secure,   $httponly);
    session_name($session_name);
    session_start();