ThinkPHP跨域设置”samesite=none”和“secure”参数的方法和注意事项

简介: ThinkPHP跨域设置”samesite=none”和“secure”参数的方法和注意事项

因开发插件需要,将另一个网站的数据通过AJAX添加到ThinkPHP制作 的一个网站上的购物车。

需要网站支持跨域请求同步COOKE,具体操作如下:

/public/index.php

第二行添加以下代码:

A C A O = ′ ∗ ′ ; h e a d e r ( " A c c e s s − C o n t r o l − A l l o w − C r e d e n t i a l s : t r u e " ) ; / / 允 许 C O O K I E 共 享 h e a d e r ( " X D o m a i n R e q u e s t A l l o w e d : 1 " ) ; / / 允 许 C O O K I E 共 享 I E i f ( ! e m p t y ( ACAO = '*'; header("Access-Control-Allow-Credentials: true"); //允许COOKIE共享 header("XDomainRequestAllowed: 1"); //允许COOKIE共享IE if(!empty(ACAO= 
 ;header("Access−Control−Allow−Credentials:true");//允许COOKIE共享header("XDomainRequestAllowed:1");//允许COOKIE共享IEif(!empty(_SERVER[‘HTTP_ORIGIN’])) $ACAO = $_SERVER[‘HTTP_ORIGIN’] ;
header(“Access-Control-Allow-Origin: $ACAO”);
// header(“Access-Control-Allow-Origin: *”);
header(“Access-Control-Allow-Credentials: true”);//是否允许后续请求携带认证信息(cookies),该值只能是true,否则不返回
header(“Access-Control-Allow-Methods: GET, POST, OPTIONS”);
header(“Access-Control-Allow-Headers: Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With, X-Ds-Key”);
header(“P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”);
/thinkphp/library/think/Cookie.php
的C O O K I E [ _COOKIE[ 
C
 OOKIE[name] = $value;下添加
KaTeX parse error: Expected '}', got 'EOF' at end of input: cookie = "{var}={KaTeX parse error: Expected 'EOF', got '}' at position 6: value}̲"; if(time) c o o k i e . = " ; e x p i r e s = " . g m s t r f t i m e ( " cookie .= "; expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",cookie.=";expires=".gmstrftime("time + 86400)."";
if($path) KaTeX parse error: Expected '}', got 'EOF' at end of input: …ie .= "; path={path}";
if($host) KaTeX parse error: Expected '}', got 'EOF' at end of input: … .= "; domain={host}";
$cookie .= “; SameSite=None”;
KaTeX parse error: Expected '}', got 'EOF' at end of input: …("Set-Cookie: {cookie}");


即可。

注意事项:


跨域Cookie要求带SameSite=None; Secure

而Secure属性要求当前页面必须是HTTPS

所以在HTTP下发送带Secure参数的Cookie会被浏览器忽略

导致不是https时登录或语言切换设置Cookie无法记录

而在https下切换语言和登录会正常.

解决方案:

在以下文件添加代码

/application/当前模板名/index/view/common/meta.html
————————————————


相关文章
|
XML 数据可视化 安全
IIS中的URL Rewrite模块功能学习总结
IIS中的URL Rewrite模块功能学习总结
428 0
IIS中的URL Rewrite模块功能学习总结
|
4月前
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
7月前
|
JavaScript API
蓝易云 - 如何使用CORS来允许设置Cookie
以上就是使用CORS来允许设置Cookie的方法。
36 2
|
安全 开发者
在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?
在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?
410 0
|
8月前
|
PHP 数据安全/隐私保护
PHP页面如何实现设置独立访问密码
PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现? 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密
62 2
PHP页面如何实现设置独立访问密码
|
前端开发 中间件 API
PHP - Laravel CSRF 介绍与用法(及取消 CSRF 验证)
PHP - Laravel CSRF 介绍与用法(及取消 CSRF 验证)
257 0
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
297 0
|
Apache 开发工具 SEO
Apache Typecho框架启用地址重写
地址重写有利于SEO优化,开启地址重写可以去掉Typecho框架中的index.php后缀,该后缀如下。
Apache Typecho框架启用地址重写
禁用 WebDAV 禁用危险的 HTTP 方法
web.xml中添加如下代码即可 ...
3636 0
|
Linux PHP 网络协议
Linux服务器查看PHP是否支持mail()函数方法
PHP的Mail函数可以用来发送邮件,如查看Linux服务器PHP是否支持Mail函数?很简答,码笔记分享: PHP查看是否支持Mail函数的方法 Linux系统下的服务器,查看PHP是否支持Mail函数的方法有很多种: 1、可以使用PHP探针来测试; 2、也可以通过exists函数查看; 3、...
2151 0

热门文章

最新文章