cookie

Chrome 浏览器禁用三方 Cookies,今天已经开始全球 1% 的灰度,这个问题也折腾了我好几天,踩到一些坑

Chrome 浏览器禁用三方 Cookies,今天已经开始全球 1% 的灰度,这个问题也折腾了我好几天,踩到一些坑。

1)禁用三方 Cookies 是 Google 搞的 Privacy-Sandbox 项目的子项,最主要的目的是为了保护用户的在线隐私,但从厂商角度来看,这也是 Google 对数字广告业的一次主动出击,未来广告主推送广告的精准度将更大程度依赖 Google 系统或平台提供的能力;对应的,苹果在 iOS 14 也推出了 App Tracking Transparency(ATT)技术,目的也是为了提高用户隐私透明度,看资讯说这项技术让 Facebook 损失了 100 亿美元的广告收入,而苹果自身却没有受到此规则的限制。…

    

Chrome 浏览器限制访问第三方 cookies,会存在哪些影响呢

Chrome 在 2024.01.04 也就是下周四,会开启 1% 的全球灰度,限制(默认禁止)Chrome 浏览器访问第三方 cookies,网页链接,其目的是通过限制网站对第三方 cookie 的访问来限制跨站点跟踪,同时也可以防范大量 CSRF 攻击问题,影响的网站会比较多(如图一)。

会存在哪些影响呢?主要包括两类场景:…

    

PHP curl 携带cookie请求抓取源码,模拟登陆。

function request_url_data($data) #获取保存COOKIE
{
    $cookieSuccess = __DIR__."/cookie.txt";#cookie保存文件地址
    $data['user'] = '用户名';
    $data['pwd'] = '密码';
    $requesturl = 'http://GET登陆提交地址?'.http_build_query($data);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $requesturl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieSuccess);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    $data=curl_exec($ch);
    curl_close($ch);
    return 

网站安全🔒 再探同源政策,谈SameSite 设置对Cookie 的影响与注意事项

两年前,我有分享过一篇同源政策的文章,讨论两种同源政策对于网站安全的影响,今年以来,由于SameSite设置的推出,对于Cookie是否会送出的「预设条款」 ”出现变化,对许多网页应用程序制作产生影响,也对网络广告制作业产生冲击,

本篇文章将首先以同源政策说明 Cookie 的送出条款,再分享 SameSite 的设置,也会介绍几种情况:iframe 与表单的使用下,SameSite 设置对 Cookie 的影响。许多人经常忽略策略其实际SameSite设置不仅对 Cookie 送出有影响,对其写入也会有影响,另外,也谈到 iOS Safari 实际工作得不一样,最后补充充分开发时要注意的信息安全事项

本篇文章包含
✔ Cookie 同源政策是什么?
注意事项

    

php 中session_set_cookie_params 和 setcookie 函数的区别与用法

session_set_cookie_params() 函数不管刷不刷新页面,都不会改变cookie的过期时间,

但setcookie() 函数页面每刷新一次,cookie 的过期时间就会刷新一次。

在php7.2 的环境下使用 session_set_cookie_params() 函数会提示报错,Cannot change session cookie parameters when session is active

添加

if(isset($_SESSION)){
session_destroy();
}

在设置之前把已存在的活体销毁就不会再报错了

    

JS中获取cookie的最简单方式

const getCookie = (name) => document.cookie.match(`[;\s+]?${name}=([^;]*)`)?.pop();

// 比如cookie如下: a=b; c=d
// 使用
getCookie('c') // d

其中match是字符串的原型方法。

str.match(regexp)

如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp

以上,所以完全不必写一个正则,因为正则拼字符串还要使用new RegExp构造方法,然而match内部。已经隐式的判断了。

string原型上search方法同样的实现原理,因为后者指返回索引,类似indexOf,所以性能会好一些。

有点跑题,不妨跑的再远一些。。。

其实string身上的match方法实际是调用了正则原型RegExp[Symbol.match]方法。

const str = 'foo';
str.match(/foo/); // ['foo']
RegExp.prototype[Symbol.match].call(/foo/, str); //['foo']