coldfusion - 更改其他 session 变量时是否需要删除Coldfusion中的cookie

标签 coldfusion

我的应用程序中的 session 变量有问题。简而言之,我的 Coldfusion 应用程序位于使用 iFrame 的 dot net 应用程序中。主应用程序使用 dot net,因此用户登录到 dot net 应用程序。
一旦用户成功登录,他们就可以访问我的 Coldfusion 应用程序。通过一个链接。所以没有登录到我的 Coldfusion 应用程序。 (老板不希望我们的用户登录两次!)。

为了区分每个用户,dot net 应用程序将两个 url 变量 url.userid 和 urlusergroup 传递给我的 Coldfusion 应用程序。然后我根据这些 url 变量创建了 session 变量,例如 session.userid 和 session.usergroup,以便在他们在我的 Coldfusion 应用程序中漫游时区分每个用户及其角色。
这就是我创建 session 的方式:
在我的 application.cfc (ColdFusion 10) OnSessionStart 我有:

 <cfset session.userid= url.userid>
 <cfset session.usergroup= url.usergroup>

如果我以用户 A 的身份登录,那么当我注销时(通过 dot net 应用程序)创建这两个 session ,然后以用户 B 的身份再次登录,为用户 B 创建另一组 session ,但 session 变量属于用户 A仍然存在。这把一切都搞砸了。

为了一次只维护一组运行的 session ,我在 index.cfm 中执行以下操作:
   <CFIF StructKeyExists(session,"userid") >
      <cfif session.usergroup NEQ URL.usergroup AND session.userid NEQ url.userid>
         <cfset sessionInvalidate() />
         <cfset session.userid = url.userid>
         <cfset session.usergroup = url.usergroup>
      </cfif>
   </CFIF

在这项工作中,我可以以不同角色的不同用户身份登录和注销并完美访问,但我注意到的一件事仍然保持不变是 cookie。
当我 cfdump var="#cookie#"我看到相同的 jsessionid=C2AEE274A09334EB98CCB2D332D6CADA.cfusion

我的问题是:我应该对 cookie 做些什么吗?我是否也应该让它过期并为每个新用户重建 cookie,就像我对他们的 session 所做的那样?
如何删除 cookie 以及如何为用户重建 cookie?

最佳答案

不是您正在寻找的答案,但在我看来您可能会遇到更大的问题 - URL 参数中的任何一个是数字还是“纯文本”?如果是这样,任何用户都可以看到通过 iframe 传递的 URL 参数,因此可以轻松更改用户 ID 和/或用户组,这可能会让他们访问他们不应该访问的内容。

例如,如果 iframe 调用:
http://mycfapp.com/?userid=123&usergroup=2

然后通过篡改参数,我可能会以不同的用户身份登录:
http://mycfapp.com/?userid=1&usergroup=2

你需要考虑保护这些。您可以让 .net 应用程序调用 CF 服务器端进行身份验证并获取 token ,然后您可以将其传入 iframe。这样你就可以提供一个时间敏感的 token ,而用户永远不会看到 id 作为简单的 URL 参数传递。

当用户注销以使 token 无效时,您还可以让 .net 应用程序调用 CF。

关于coldfusion - 更改其他 session 变量时是否需要删除Coldfusion中的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30245978/

相关文章:

mysql - Coldfusion 循环插入查询值

oop - 我应该如何构建这个类的继承?

javascript - 如何通过 JavaScript 或 jQuery 从 cfinput 获取 onblur 输入 id 或 tabIndex?

java - 替换显示为编码的特殊字符

android - 在 Coldfusion 中使用 cfheader 和 cfcontent 时在移动浏览器(Android)上下载不成功

coldfusion - ColdFusion 认为 "falsy"和 "truthy"的所有值是什么?

coldfusion - 使用 onMissingMethod 无法访问对象变量

coldfusion - Google Java API 与 ColdFusion CFHTTP 冲突?

php - 将一些 PHP 移植到 ColdFusion

ColdFusion:二进制值的 cfqueryparam