zhoz blog 重新开张,欢迎继续支持!
Feb
27
这个问题,我调查了很久记录一下。分享给有缘人。
首先看看SameSite=None; Secure设置方法:
php新版本可以直接在setcookie中设置,这里只发老版本:
header("Set-Cookie: $cookie_name=$zhoz_code; SameSite=None; Secure");
Js:
//set cookies
function setCookie(name,value) {
var Days = 30;
var exp = new Date();
var topDomain = getTopDomain();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
// document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + "; domain=" + topDomain + ";path=/";
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + "; domain=" + topDomain + ";path=/;SameSite=None;Secure";
}
首先看看SameSite=None; Secure设置方法:
php新版本可以直接在setcookie中设置,这里只发老版本:
header("Set-Cookie: $cookie_name=$zhoz_code; SameSite=None; Secure");
Js:
//set cookies
function setCookie(name,value) {
var Days = 30;
var exp = new Date();
var topDomain = getTopDomain();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
// document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + "; domain=" + topDomain + ";path=/";
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + "; domain=" + topDomain + ";path=/;SameSite=None;Secure";
}
Sep
1
通常,http自动转https的实现方法有两种全局方式
1、修改Apache
2、修改.htaccess
原理一样,2--5行:
ServerName zhoz.com
# SSL
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
但遇到了负载均衡服务器时,由于服务器间是通过http方式访问的,所以以上方式判断不了。
用Js直接读取来处理,代码如下:
1、修改Apache
2、修改.htaccess
原理一样,2--5行:
ServerName zhoz.com
# SSL
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
但遇到了负载均衡服务器时,由于服务器间是通过http方式访问的,所以以上方式判断不了。
用Js直接读取来处理,代码如下:
Oct
17
手机语言版本的判断
使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language
比较特别的地方
UC浏览器没有安卓报头,只返回:linux ,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)
安卓QQ浏览器HD版检测的结果是:mac, Safari
使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language
比较特别的地方
UC浏览器没有安卓报头,只返回:linux ,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)
安卓QQ浏览器HD版检测的结果是:mac, Safari