使用 iisnode 时保护 CookieSession

2024-01-04

我将节点与 IIS 一起使用iisnode https://github.com/tjanczuk/iisnode我在设置 CookieSession 选项时遇到问题secure:true.

我在 IIS 上使用 HTTPS,并将任何 HTTP 重定向到 HTTPS。 但即使如此,如果我设置Cookie会话 https://github.com/expressjs/cookie-session option secure:true,登录后会话不会有任何内容。

secure:一个布尔值,指示 cookie 是否仅通过 HTTPS 发送(HTTP 默认为 false,HTTPS 默认为 true)。

我被迫使用secure:false使其发挥作用。为什么?


CAUSE

iisnode 将来自 IIS 的请求代理到运行 Express 的节点应用程序。 ssl 连接在 IIS 处终止,并且您的节点应用程序收到 http 请求。当应用程序需要通过安全连接进行 Cookie 时,cookie会话 https://github.com/expressjs/cookie-session and 快速会话 https://github.com/expressjs/session不会设置cookie。

解决

您需要告诉 Express,当出现以下情况时它可以信任代理:x-forwarded-proto标头设置为“https”。

您可以通过添加 proxy: true config 来做到这一点

app.use(express.session({
  proxy : true, 
  secret: 'your-secret-key',
  cookie: {
    secure: true
  }            
}));

或者你可以告诉 Express 在全局范围内信任代理:

app.set('trust proxy', 1)

还设置了enableXFF在你的 web.config 中设置为 true。它使iisnode添加x-forwarded-proto (and x-forwarded-for) 向 Express 应用程序请求标头。

<configuration>
  <system.webServer>

    <!-- ... -->

    <iisnode enableXFF="true" />

  </system.webServer>
</configuration>

先决条件

iisnode 至少需要版本 0.2.11 才能具有enableXFF配置添加x-forwarded-proto请求 HTTP 标头。您可以通过查看您的 iisnode 的属性来检查您拥有的 iisnode 版本iisnode.dll文件可能安装在C:\Program Files\iisnode。如果它here。安装后它会告诉你需要重新启动服务器。我可以告诉你iisreset命令(在提升的命令框中)就足够了。

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

使用 iisnode 时保护 CookieSession 的相关文章

  • 使用 Puppeteer 和 Headless Chrome 获取 DOM 节点文本

    我正在尝试使用无头 Chrome 和 Puppeteer 来运行我们的 Javascript 测试 但我无法从页面中提取结果 基于这个答案 https stackoverflow com a 45799744 4794 看起来我应该使用pa
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • 如何使用 Sails.js 和 Waterline 更新 MongoDB 子文档中的特定键?

    当尝试使用 Sails js 和 Waterline ORM 更新 MongoDB 子文档中的单个键时 我遇到了问题 这就是我的person js模型看起来像 module exports attributes name type stri
  • 如何编写自己的CasperJS模块?

    例如 我有一个经常需要执行的步骤 例如在某些测试之前用户登录 如何为 CasperJS 编写可重用的代码块 他们的扩展 CasperJS 的文档只为一个文件编写 Thanks 这是一个简单的方法 如果不熟悉 CoffeeScript 请在
  • Mongoose 对 Promise 拒绝处理

    我有点与 NodeJS 中的 Promise 模式作斗争 我正在数据库中查找用户 然后使用用户引用保存新实体 但是当用户不在数据库中时 我应该返回拒绝 但我不确定如何正确执行 有没有办法做得更好 顺便说一句 对不起 咖啡脚本 User fi
  • 将jquery与nodejs一起使用时的基本错误

    我正在尝试在我的项目中使用一些jquery 当我尝试使用它时 我在复制的代码中遇到了错误 并且无法获得任何有关它的谷歌帮助 var jquery require jquery var jquery create TypeError Obje
  • libicui18n.so.52:无法打开共享对象文件

    我一直在使用 libicu 来检测在 docker ubuntu 内部运行的节点应用程序中的字符集 这是通过模块完成的节点 icu 字符集检测器 https github com mooz node icu charset detector
  • 谷歌应用程序引擎nodejs本地开发

    有没有办法在本地运行我的nodejs应用程序 以便我可以模拟在生产App Engine中运行的应用程序而无需部署它 由于某种原因 我的应用程序在 Google App Engine 中的行为与我的本地主机不同 我厌倦了每次为了查看是否存在错
  • MongoDB 和 Mongoose 访问一个数据库,同时针对另一个数据库进行身份验证(NodeJS、Mongoose)

    我有几个数据库 不想为每个数据库创建单独的用户帐户 MongoDB 支持使用另一个数据库中定义的帐户来验证对数据库的访问的概念 但语法示例很难获得 当我终于弄清楚时 我正准备提出一个问题 如果它对其他人有帮助 就放在这里 这是 mongod
  • 严重: getRealPathFromConn 错误

    目前我正在调试我们的应用程序中一个看似随机的错误 我将尽力提供尽可能多的细节 基本上一段时间后 我们服务器上某个应用程序的应用程序池就会停止 我必须启动它 或者有时重新启动 Coldfusion 或更糟糕的是机器才能再次运行 服务器日志表明
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • 使用 node.js 获取正在运行的进程的 stdin/stdout

    我正在从节点启动一个进程child process spawn http nodejs org docs v0 6 1 api child processes html child process spawn处理 process stdou
  • Node.js 重用 MongoDB 参考

    我无法理解 Node js 例如 MongoDB 访问 这是我得到的 mydb js var mongodb require mongodb server new mongodb Server staff mongohq com 10030
  • 尝试在 ElasticSearch 中查询和聚合,但聚合不起作用 - elasticsearch.js 客户端

    我尝试查询我的数据集有两个目的 匹配一个术语 可转售 true 按价格对结果进行排序 最低到最高 数据集 文档是 data resellable true startingPrice 0 id 4emEe r x5DRCc5 buyNowP
  • 如何使用express在node.js中使浏览器关闭后会话过期?

    我在用 req session cookie maxAge 14 24 3600 1000 0 让会话在两周后过期 但现在我想让它在浏览器关闭后过期 有什么办法可以做到吗 来自连接会话中间件文档 https github com expre
  • 使用 Node.JS,如何将 JSON 文件读入(服务器)内存?

    背景 我正在使用 Node js 进行一些实验 并且希望从文本文件或 js 文件 哪个更好 读取 JSON 对象到内存中 以便我可以从代码快速访问该对象 我意识到有像 Mongo Alfred 等这样的东西 但这不是我现在需要的 Quest
  • npm install 的 --save 选项是什么?

    我看到一些教程 其中命令是 npm install save 什么是 save选项是什么意思 更新 npm 5 As of npm 5 0 0 http blog npmjs org post 161081169345 v500 安装的模块
  • keystonejs 模型中的动态类型选择

    我想在 adminUI 中使用一个组合框 其中包含来自 Web 服务的字段 我正在考虑使用预 查找 挂钩获取数据 然后覆盖模式中 受众 属性的选项属性 Schema Compliance add title type Types Text
  • 模拟节点外部模块默认使用 jest 的链式方法

    在我们的节点 CLI 中 我们有一个简单的方法 use strict const ora require ora module exports function startSpinner textOnStart color spinnerT

随机推荐

  • Java字符串replaceAll()

    我一直想知道是否例如 JTextPane chatTextArea new JTextPane s replaceAll emoticon public String emoticon chatTextArea insertIcon new
  • Angular:ng-bind-html 过滤掉 ng-click?

    我有一些从 json 文件加载的 html 数据 我通过在我的应用程序中使用 ngSanitize 并使用 ng bind html 显示此 html 数据 现在我想将 json blob 中的任何链接从标准转换为 a href some
  • MySQL 列名称标准/约定 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找包含 MySQL 列名称标准或约定的文档 建议 有人可以建议吗 据我所知 这个领域没有什么 标准 与 Sun 的旧 Java 约定不同
  • 在泛型中接受自身作为类型参数有什么用

    我在一个不相关的问题上看到了一些代码 但这让我很好奇 因为我从未见过 Java 泛型的这种构造 创建一个可以将其本身或其后代作为类型参数的泛型类有什么用处 这是示例 abstract class A
  • 将 UIActionSheet 选项连接到操作的正确方法

    在 iPhone 应用程序中使用 UIActionSheet 时 将操作与按钮匹配的典型方法似乎非常脆弱且美观不愉快 也许是因为我的 C C 背景 更多 Perl Java Lisp 等 按钮索引的匹配看起来像是太多的神奇数字 而且太脱节
  • 是否可以在 iOS 9 和 10 上使用核心数据(Xcode 8 和 Swift 3.0)?

    我想在 Swift 3 Xcode 8 中启动新应用程序并支持 iOS 8 4 9 x 如何处理核心数据 对于任何寻找它的人 我在这个答案中添加了由 xcode 7 swift 2 生成的核心数据模板及其 swift 3 转换 https
  • 如何可靠地找到 UIGestureRecognizer 的正确视图?

    我有一堆 UIView 如下图所示 红色 粉色 半透明 视图位于其他视图之上 红色有一个UISwipeGestureRecognizer 绿色有作为UITapGestureRecognizer 蓝色没有识别器 轻按一下visible绿色的
  • Cython 基于外部值的条件编译

    我尝试从 Cython pxd 有条件地编译 或生成 为 c 代码 我读到我可以 DEF 定义 aa 值 并 IF 根据其值有条件地生成 但是如何从 pxd 文件外部获取该值 具体来说 这两个案例现在对我来说很有趣 为 Cython 提供一
  • 使用 NVIDIA GPU 计算 SDK 4.0 和 microsoft VC++ 2010 Express 无需 GPU 硬件即可执行简单的 CUDA 程序

    我是 GPU 计算新手 但我在某处读到 可以使用模拟器 仿真器在没有 GPU 卡的情况下执行 CUDA 程序 我在 Windows Vista 上安装了 NVIDIA 的 GPU 计算 SDK 4 0 和 Visual C 2010 Exp
  • 如何计算android应用程序的功耗?

    有没有公 式 API或者方法 我想测试不同应用程序的功耗 使用adb工具可以查看每个正在运行的应用程序的功耗 adb shell dumpsys cpuinfo 样本输出 Load 1 12 1 07 1 01 CPU usage from
  • 从文件读取时在 shell 脚本中拆分字符串

    我有一个以下脚本 它应该从 properties 文件中逐行读取 然后根据 分隔符对其进行标记 并将值存储到两个变量中 然后显示它 但我不了解如何对其进行标记 然后将其存储在两个不同的变量中 然后将其用于进一步的目的 以下脚本可以很好地逐行
  • fork进程之间的随机数是相同的

    我正在从管理器进程中分叉多个进程 然后我想为这些分叉进程创建一个随机端口号来侦听 但是 当我随机播种并获得随机数时 我在三个进程之间获得相同的数字 例如 manager int main for int i 0 i lt rCount i
  • 有没有办法使用普通 ADO 从 SQL Server 检索视图定义?

    我使用 ADO 连接成功从 SQL Server 上托管的数据库中提取列定义OpenSchema 调用其各种形式 以便我可以以编程方式在另一个 SQL 数据库中重新创建这些表 到目前为止 一切都很好 与上表的主要交互是使用多个视图进行的 尽
  • 使用 imagejpeg 保存和提供图像文件

    我正在用 PHP 图像处理做一些实验 我正在尝试将一些图像转换为黑白版本 我基本上已经弄清楚了 但有一个小问题 为了减少服务器的压力 我想保存黑白版本 并仅对之前未通过脚本运行的图像运行图像过滤 所以 我有这样的事情
  • 使用代理拦截 C# 中的方法调用

    我想做的是能够拦截对对象方法和属性的调用 以实现横切关注点 我正在使用基于代理的 AOPContextBoundObject 然而 这不适用于递归方法调用 针对目标的第一次调用将被代理拦截并成功调用 允许我在这里进行横切 但是 第一个方法中
  • 无法在嵌入式 ASPX 代码中引用动态对象

    我正在 Page Init 事件期间创建一个 List 成员变量 我在从 aspx 页面中嵌入的 C 代码引用列表中的对象时遇到问题 该错误是运行时绑定程序异常 显示 object 不包含 JobID 的定义 当调用调试器时 我可以看到 f
  • 联合两个选择基于某些列(而不是整行)删除重复项

    我想合并 2 个 select 语句 结果将在记录方面不同 但是我想在第二个 select 语句中省略重复的结果 考虑某些列 select id name type parent from table1 where type 1 union
  • 在闪亮的应用程序上,ggplotly()渲染的大小是plot_ly()的一半。如何解决这个问题?

    当使用 ggplotly 与plot ly 在闪亮的应用程序中生成绘图时 绘图的宽度小于一半 这是为什么 有没有办法修复它 以便 ggplotly 生成与plot ly 或 ggplot2 宽度相同的图 我尝试过使用宽度参数 但这并不能解决
  • 在控制台 .NET Core 应用程序中创建用户

    我有一个 ASP NET Core 1 0 解决方案 包含 3 个项目 Web 控制台应用程序 DataAccessLayer 我使用 ASP NET Core Identity 和 Entity Framework Core SQL Se
  • 使用 iisnode 时保护 CookieSession

    我将节点与 IIS 一起使用iisnode https github com tjanczuk iisnode我在设置 CookieSession 选项时遇到问题secure true 我在 IIS 上使用 HTTPS 并将任何 HTTP