使用 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 的相关文章

随机推荐

  • 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