当前位置:网站首页>服务端修改Cookie——跨域cookie发送机——通信加密——异或加密
服务端修改Cookie——跨域cookie发送机——通信加密——异或加密
2022-08-09 03:39:00 【勇敢*牛牛】
服务端修改Cookie
请求头xhr.setRequestHeader 设置发送给服务器一个cookie,在服务端修改后,在通过响应头自定义内容写入后返回。
此过程需要注意的是,这个发送cookie是以URI编码形式发送,所以要转码之后发送。
xhr.setRequestHeader("Set-Cookie","niuniu")
这样服务器通过req.headers方法得到一个对象也就会收到这个请求头里的这一项,是一个数组类型
服务端修改Cookie机器
具体步骤:
- 请求头设置一个Set-Cookie:niuniu牛,注意这里有个汉字
- 也就是先把这个汉字转成url
var str = encodeURIComponent("niuniu牛") niuniu%E7%89%9B- 然后写入请求头
xhr.setRequestHeader("Set-Cookie",str) - 在服务器中通过
req.headers获取整个请求头的内容 - 在请求头对象中有了
'set-cookie': [ 'niuniu%E7%89%9B' ] - 在服务端通过对象的['set-cookie]获取这个值之后转码
var str = decodeURIComponent(req.headers["set-cookie"]);- 服务端不能直接修改设置
Set-Cookie,可以通过自定义来实现;
"X-Set-Cookie": encodeURIComponent(str+"=阿牛"),
"Access-Control-Expose-Headers": ["X-Set-Cookie"]
- 在客户端单独获取到这个
xhr.getResponseHeader("x-set-cookie")是个URL码 - 在转一下
console.log(decodeURIComponent(xhr.getResponseHeader("x-set-cookie"))); - 得到一个
niuniu牛=阿牛 - 然后将这个手动插入:
var stry = decodeURIComponent(xhr.getResponseHeader("x-set-cookie"));
document.cookie = stry;

通信加密 send发送数据,会被截获

英文可以通过:二进制流数 ArrayBuffer来加密
var str = "ilove you";

/*客户端*/
//Uint8Array
var arr = str.split("").map(item=>item.charCodeAt(0)^255);
arr = new Uint8Array(arr)
xhr.send(arr);
/*服务器*/
data = ''
req.on("data", (_chunk) => {
for(var i=0;i<_chunk.length;i++){
data += String.fromCharCode(Number(_chunk[i])^255)
}
});
汉字加密服务端
function getData(req) {
return new Promise(function (resolve, reject) {
data = ''
req.on("data", (_chunk) => {
console.log(_chunk);
for(var i=0;i<_chunk.length;i+=2){
//16进制四个字节,字节倒序,前置补零
var str="0x"+ _chunk[i+1].toString(16).padStart(2,0)+_chunk[i].toString(16).padStart(2,0);
var num=parseInt(str,16)^0xFFFF;
data+=String.fromCharCode(num);
}
});
req.on("end", () => {
resolve(data)
})
})
}
汉字加密客户端Uint16Array
var str="我 爱 你"
var arr= str.split("").map(item=>item.charCodeAt(0)^0xFFFF);
arr=new Uint16Array(arr)
xhr.send(arr);
Blob 大二进制流数据
字符串
文档(HTML ,XML)
FormData
边栏推荐
猜你喜欢

创建一个DAPP的全流程

了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:卡尔曼滤波器

rk3399 PCIe rc设备枚举之设备资源识别分析

了解CV和RoboMaster视觉组(五)目标跟踪:概述与光流法

笔记本重装系统如何找回之前自己自带的office

了解CV和RoboMaster视觉组(五)统计特征和global-based方法

宝塔实测-在线药店商城源码带WAP版

NanoDet代码逐行精读与修改(零)Architecture

The condition variable condition_variable implements thread synchronization

5. Index optimization practice
随机推荐
VS2019 compiles boost_1_79, generates 32-bit and 64-bit static libraries
光刻机随感
leetcode 5724. 绝对差值和
33 Basic Statistics - One Item Nonparametric Test
荣耀路由(WS831)做无线中继时LAN网段与WAN网段冲突解决方法
【21 基础纹理(二、凹凸映射的理论)】
链接脚本-变量使用中遇到一个问题
了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:自适应滤波器
Win10开始菜单打不开怎么办?
创建一个DAPP的全流程
Linux安装MySQL8
el-popover 内嵌 el-table 后位置错位 乱飘 解决方案
31 basic statistical concepts
已解决ModuleNotFoundError: No module named ‘Workbook‘
Matlab optimization method -- 0.618 method
uniapp uview uselect 时间选择 日期生成代码
qt字符串之 QString详解
剑指 Offer 56 - I. 数组中数字出现的次数
win10怎么安装.net framework 3.5?
SIP协议栈学习之开始篇