长沙3合1网站建设价格,wordpress极客社区小程序,装饰设计公司官网,河南免费网站建设公司推荐content script 和 script inject 表现情况
在碰到content script 注入和用script标签注入一样#xff0c;即使服务端有写入Cookie到域名下在该tab标签应用下也不会被保存#xff0c;所以在发送时也无法自动携带#xff0c;所以通过content script和script这种方式…content script 和 script inject 表现情况
在碰到content script 注入和用script标签注入一样即使服务端有写入Cookie到域名下在该tab标签应用下也不会被保存所以在发送时也无法自动携带所以通过content script和script这种方式无法传输隐式传输cookie只能通过background来先拿到cookie再进行传送
服务端往请求端写入Cookie服务端做了跨域允许不允许跨域就没必要讨论这个逻辑了注意注入的网站如何是https的则不能使用http协议浏览器不允许
?php
/*** 功能授权验证父类* author wangsen* date 2021/07/10 10:52:00* version 1.0.0.0* brief**/namespace app\controllers;use app\behaviors\BeforeSendBehavior;
use Yii;
use yii\filters\Cors;class ApiController extends Controller
{public function behaviors(){$behaviors parent::behaviors();return array_merge($behaviors, [corsFilter [class Cors::class,cors $this-corsConfig()], BeforeSendBehavior::class]);}public function corsConfig(){$origin Yii::$app-request-headers-get(Origin);return [Origin [$origin],Access-Control-Request-Method [POST, PUT, OPTION, GET],Access-Control-Request-Headers [Authorization, Content-Type],Access-Control-Allow-Credentials true,Access-Control-Max-Age 3600,Access-Control-Expose-Headers [X-Pagination-Current-Page],];}
} 插件端采用script方式注入js脚本 inject-fetch.js 脚本
fetch(https://test.zfscrmteam.top:444/cookie/index, {referrer: https://blog.csdn.net/qq_36361250/article/details/114270670,referrerPolicy: unsafe-url,body: null,method: GET,mode: cors,credentials: include
}).then(e console.log(e));
在当前应用下始终写不进Cookie 同域情况下注入和script 是会自动携带Cookie的当然这种情况插件基本用不到 归根结底凡是当前tab应用中没有存放Cookie的这个域下面的Cookie就不会自动携带 结论就是content script 和 script 脚本注入方式都必须显式地将cookie放在body中传输而不能由浏览器自动装填在header.Cookie传给后端
popup.html 和 background.js
这两者是相似的只要服务端允许跨域则都可以请求服务端但奇特的是如果host_permission不设置设置了content script match 则携带Cookie 若content script 中没有匹配则不携带 若在host_permissions里面配置则又会携带所以证明content script中的matches和host_permissions竟然有交集这个细节还是挺隐蔽的 完全无权限的情况探究下background.js请求中不懈怠Cookie 在content script 进行matches匹配效果同popup.html 证明在权限上两者表现相同 结论
在处理Cookie相关事务时想默认携带Cookie只能采用popup.html或者background的方式同时在content_scripts.matches 不能满足时要添加host_permisssions来获取权限