我需要 X.com 上高度混杂的 cookie,因为安全性不是问题。如何强制在域 X.com 中创建的 Cookie 上的 HttpOnly 为 false,以便 AnyRandomUnexpectedDomain.com 上的 JavaScript 可以调用 X.com/readCookie.php 并且 readCookie.php 可以发回 X.com cookie 中的数据? p>
readCookie.php 有 header("Access-Control-Allow-Origin: *") 并且 nginx Web 服务器也有 Access-Control-Allow-Origin 完全开放。在 php.ini 中 session.cookie_httponly = 0,但是当然,这仅适用于 session ,而不是永久 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();
关于javascript - 如何在 Cookie 上强制 HttpOnly FALSE,以便 JavaScript 可以使用 PHP 跨域读取它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798033/