CORS $.ajax 会话 cookie (access-control-allow-credentials & withCredentials=true)

2023-11-25

我意识到这个问题已经被问了十几次或更多次,给出的每个答复都表明我做得正确,但也许我遗漏了一些东西。

AJAX 提供 CORS 请求,就像这样......

$.ajax({
url: 'someotherdomain.com',
type: 'post',
data: {key: 'value'},
dataType: 'json',
async: false,
crossDomain: true,
beforeSend: function(xhr){
    xhr.withCredentials = true;
},
success: function(x, status, xhr){

},
error: function(xhr, status, error){

}
});

PHP 像这样提供 CORS 请求......

header('Access-Control-Max-Age: 1728000');
header('Access-Control-Allow-Origin: http://someotherdomain.com');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-MD5, X-Alt-Referer');
header('Access-Control-Allow-Credentials: true');
header("Content-Type: application/json; charset=utf-8");

根据所有文档,只要设置“Access-Control-Allow-Credentials”服务器端标头和“withCredentials=true”客户端标头,域之间的会话 cookie 处理应该是透明的。我错过了什么吗?


async: false

阻止每个请求将会话 cookie 发送回服务器。以下修复了它。

async: true

尽管这确实允许浏览器在进行跨源请求共享调用时设置会话 cookie,但我现在遇到了有关以下场景的问题:

服务器A向客户端发送响应 使用 CORS 的客户端向服务器 B 发出请求

XMLHttpRequest -> PHP -> Session handler -> MySQL -> Stored Procedure 

由于 PHP 会话管理中的 MUTEX 锁定了异步特性,并且显然,要求可能会强制使用不同的标头选项(例如 XCookie 或类似的东西)手动设置 cookie,以保持服务器会话和客户端请求同步。

这种特殊的解决方法并不适合我,因为我相信它会为会话劫持和会话重放攻击向量开辟一条简单的道路。

使用 SSL/TLS 封装的连接可能有助于防止上述情况,但就为客户端独立提供安全措施而言,我认为这还不够。

有人对此有什么想法吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CORS $.ajax 会话 cookie (access-control-allow-credentials & withCredentials=true) 的相关文章

  • TypeError: 使用 ajax 时 google.load 不是一个函数

    我正在使用 Google 图表 termcloud 来显示一些数据 我可以让它作为页面上的静态功能正常工作 但是当我尝试通过 ajax 加载图表及其资产时 它似乎一直抛出错误 TypeError google load is not a f
  • 在 PHP 中计算 Cookie 大小

    我想使用 php 在服务器端读取 cookie 并计算其长度 但找不到任何直接方法来执行此操作 那么如何实现这个任务呢 那这个呢 setcookie user Dino babu kannampuzha time 3600 if isset
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • Rails - 使链接与 ajax 一起工作

    我有一个链接 应该使用 ajax 加载它旁边的部分内容 而无需重新加载页面 链接在这里 这是链接应该转到的控制器 class ProfilesController lt ApplicationController def profile f
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • $.ajax(); 之间的区别和 $.ajaxSetup();

    有什么区别 ajax and ajaxSetup 在 jQuery 中如下 ajax cache false and ajaxSetup cache true 另外 哪一个是最好的选择 以下将阻止all无论您使用哪种 jQuery 方法 g
  • AngularJS 和 Laravel - 跨域 CORS / XHR 请求缺少(记住)cookie

    当我不使用 Chrome 中的 disable web security 选项时 我的 CORS XHR 请求在请求标头中缺少 Remember xyz cookie 如果我启用该选项 remember xyz cookie 将包含在请求标
  • 使用 Jasmine 模拟 jQuery ajax 调用

    我正在使用 Jasmine 2 5 2 为使用 jQuery 3 1 1 执行 Ajax 请求的代码编写单元测试 我想模拟 Ajax 调用 提供我自己的响应状态和文本 我正在使用 Jasmine ajax 插件 https github c
  • ajax 调用成功后点击链接 href

    我有一个正常的链接 a href http www google com class continue Continue a 我已将点击绑定到一个事件来发布 ajax 请求 如下所示 continue click function ajax
  • Javascript/jQuery 变量未给出预期值

    和我之前的其他人一样 我也在 Javascript 的范围内苦苦挣扎 那并试图阅读该死的东西 我已经检查了关于这个问题的一些先前的线程 但我似乎无法让它们正确地应用于我的问题 在下面的示例中 我想操纵中的值tagsArr数组 一旦数组已完全
  • 使用 chrome 扩展和 Django 进行身份验证

    对于那些熟悉 django 和 chrome 扩展的人 如何使用 cookie 进行身份验证 以便当您登录 django 制作的网站时 您的 chrome 扩展程序也会登录并激活 谢谢 您的 Chrome 扩展程序 通过 Javascrip
  • 更改模板标签 <# {% {{ 等后,John Resig 的微模板出现语法错误

    我在使用 John Resig 的 Micro 模板时遇到了一些麻烦 谁能帮我解释为什么它不起作用 这是模板 以及发动机的改装部分 str replace r t n g split join t replace gt t g 1 r re
  • Jquery:排除元素

    我有以下代码 document ready function a rel each function this qtip content text img class middle src i icon processing gif alt
  • Woocommerce 中的 Ajaxify 标头购物车项目计数

    我正在为 WordPress 创建一个自定义 woocommerce 集成主题 我在顶部有一个 blob 显示购物车中的商品总数 我想使用 Jquery 更新此 blob 无需重新加载页面 我能够通过获取购物车中的当前数量来增加商品数量bl
  • 使用 f:ajax 渲染多个组件

    错误的代码是
  • jquery ui 选项卡不再支持 cookie?怎么办?

    我很抱歉这是一个开放式问题 但我很茫然 从 jquery UI 1 9 版本开始 它们使用cookie选项以保存跨多个页面的选项卡的活动状态 http jqueryui com upgrade guide 1 9 deprecated co
  • 单击文件下载后,成功后使用 AJAX 重定向到另一个页面

    In my WordPress project my Download button containing a zip file which onClick should be downloaded So the HTML producin
  • 服务堆栈选项 404 和 Cors Origin

    我正在执行我的 cors 请求 client http mypcname companyname 到服务堆栈 server http mypcname companyname 83 customersInformation 这就是 java
  • 通过ajax POST提交两次表单

    插入到mysql using php通过文件调用AJAX 前insert语句php代码执行select查询到查找重复记录并继续insert statement Issue 从ajax调用php文件时 它执行了两次并得到作为重复记录的响应 好
  • ASP.NET JQuery AJAX POST 返回数据,但在 401 响应内

    我的应用程序中有一个网页 需要调用我设置的 Web 服务来返回对象列表 这个调用是这样设置的 document ready function var response ajax type POST contentType applicati

随机推荐

  • 如何在 pygame 中找到两点之间的角度?

    我正在用 Pygame 用 Python 编写一个游戏 我的显示窗口的 坐标是 0 0 在左上角和 640 480 在右下角 角度是 0 当指向上方时 90 当指向右侧时 我有一个位于中心位置的玩家精灵 我希望枪上的炮塔指向玩家 我该怎么做
  • 将 API 调用与 RX Java 相结合

    我是 RXJava 的新手 我无法理解如何将 API 调用的结果链接在一起 我正在使用改造进行两个 API 调用 A 和 B 它们都返回一个可观察的对象列表 两个 API 调用都是独立的 因此我想同时进行这两个调用 但为了实现最终结果 我需
  • 哪些类名表明需要重构? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我发现了一些类似的文章th
  • 如何使用R绘制美国所有州的地图以及每个州发生的犯罪数量?

    我仍在学习 R 我想绘制美国各州的地图 并标出每个州发生的犯罪数量的标签 我想创建下面的图像 我使用了以下在线可用的代码 但我无法标记犯罪数量 library ggplot2 library fiftystater data fifty s
  • Java 类型级别注释和私有成员可见性

    我正在尝试外部化 spring 的 baseurl Controller变成静态String控制器类的成员 如果我这样做 我必须声明该成员为公开成员 否则它将不可见 RequestMapping注解 我不明白为什么 注释不是类的一部分吗 有
  • 在 SQLite 中选择随机行

    在 MySQL 中 您可以使用以下语句选择 X 随机行 SELECT FROM table ORDER BY RAND LIMIT X 然而 这在 SQLite 中不起作用 有同等的吗 对于一个很多更好的性能 use SELECT FROM
  • 字符前未转义反斜杠的正确正则表达式是什么?

    假设我想代表 q 或任何其他特定的 反斜杠转义字符 也就是说 我想匹配 q但不是 q 因为后者是反斜杠转义的反斜杠后跟q Yet q会匹配 因为它是一个反斜杠转义的反斜杠 后面跟着一个反斜杠转义的q 嗯 它会匹配 q最后 不是 在一开始 我
  • Pandas:ValueError:无法将浮点 NaN 转换为整数

    I get ValueError 无法将浮点 NaN 转换为整数对于以下内容 df pandas read csv zoom11 csv df x df x astype int x 是 csv 文件中的一列 我看不到任何浮点数 NaN在文
  • 推送到 Github 时遇到问题,无法生成 sh:没有这样的文件或目录

    我在推送到 Github 时遇到了困难 我有一个克隆的存储库 并且我对其进行了更改 我想将其推送回 github 在存储库中时 我执行以下操作 git add 当我没有得到回应时 这似乎有效 然后当我这样做时 git commit m te
  • http.get 和 ISO-8859-1 编码响应

    我即将编写一个 RSS 提要获取器 但遇到了一些字符集问题 与编码相比 加载和解析提要非常容易 我正在加载提要http get我将每个数据事件的块放在一起 后来我用 npm lib 解析整个字符串feedparser它适用于给定的字符串 可
  • Gradle:如何在控制台实时显示测试结果?

    我想查看测试结果 system out err 来自正在测试的组件的日志消息 当他们奔跑时在我运行的同一个控制台中 gradle test 并且不要等到测试完成才查看测试报告 仅在测试完成时生成 因此我无法在测试运行时 tail f 任何内
  • 配置 Maven 以使用带有基本身份验证的 CXF wsdl2java

    我有一个应用程序需要与 SharePoint 的 Web 服务之一集成 该Web服务无法自由访问 需要身份验证 因此 当执行生成源阶段时 我的应用程序中的标准 wsdl2java Maven 插件会给出 HTTP 401 错误 有没有办法设
  • Microsoft Graph 401 未经访问令牌授权

    无法从 Microsoft Graph API 获取数据 private String getUserNamesFromGraph throws Exception String bearerToken Bearer getAccessTo
  • Rails 3.1 资产管道 - 为什么我的图像没有预编译用于生产?

    运行时 rake assets precompile all RAILS ENV production RAILS GROUPS assets 一切都预编译但不是我的 app assets images 我什至尝试将其添加到我的enviro
  • pip install-找不到满足要求的版本

    我正在尝试安装一个名为got使用点 但它一直显示 无法找到满足要求的版本 的错误 我在网上搜索了解决方案 有一些解释说尝试 pip freeze gt requirements txt 但它对我来说仍然是一个黑匣子 这里有什么问题以及我应该
  • Google BQ - 如何更新插入表中的现有数据?

    我正在使用 Python 客户端库在 BigQuery 表中加载数据 我需要更新这些表中的一些已更改的行 但我不知道如何正确更新它们 我想要一些类似的UPSERT功能 仅当行不存在时插入行 否则 更新现有行 在表中使用带有校验和的特殊字段
  • 如何从Python中的父文件夹导入函数?

    我需要在我的 python 项目上执行函数的导入 我知道有很多类似的问题 但是 不幸的是 我找不到适合我的解决方案 因为答案要么太具体 要么太笼统 要么它们只是丑陋的黑客 比如操作与绝对路径 我的文件夹结构如下所示 PythonClient
  • 到底是什么导致 Session_Start 被调用?

    在我正在构建的一个小演示应用程序中 我在 Global Session Start 事件中放置了用于初始化数据库的代码 但是 我注意到 当我在开发服务器上的调试器中运行应用程序时 此事件不会触发 尚未在其他地方进行测试 问题一 是什么赋予了
  • 用于存储矩阵的Java大数据结构

    我需要存储一个包含邮政编码以及每个邮政编码之间的距离 以公里为单位 的二维矩阵 我的客户有一个应用程序可以计算距离 然后将其存储在 Excel 文件中 目前有952个名额 所以矩阵将有 952x952 906304 个条目 我尝试将其映射到
  • CORS $.ajax 会话 cookie (access-control-allow-credentials & withCredentials=true)

    我意识到这个问题已经被问了十几次或更多次 给出的每个答复都表明我做得正确 但也许我遗漏了一些东西 AJAX 提供 CORS 请求 就像这样 ajax url someotherdomain com type post data key va