簡體   English   中英

如何在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,因為安全性不是問題。 如何在域X.com中制作的Cookie上強制HttpOnly為false,以便AnyRandomUnexpectedDomain.com上的JavaScript可以調用X.com/readCookie.php,而readCookie.php可以將X.com cookie中的數據發送回去?

readCookie.php具有標頭(“ Access-Control-Allow-Origin:*”),nginx Web服務器也具有完全打開的Access-Control-Allow-Origin。 在php.ini中,session.cookie_httponly = 0,但這當然僅用於會話,而不是永久性cookie。 使用此設置,遠程執行調用和AJAX數據流跨域工作正常,但是唯一的問題是添加到readCookie.php的$ _COOKIE [“ auth”]調用不返回任何內容,即使使用HttpOnly顯式創建了auth cookie設置為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();  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM