问题标签 [session-fixation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8170 浏览

security - 你能给我一个会话固定攻击的例子吗?

我已经阅读了有关会话固定的内容,据我所知,它会迫使用户使用攻击者的会话。这个对吗?你能举个例子说明这会如何冒犯用户吗?

0 投票
2 回答
21755 浏览

asp.net-mvc - 防伪令牌盐有什么用?

在 ASP.NET MVC 1.0 中,有一个处理跨站请求伪造安全问题的新特性:

我发现每次呈现新表单时,以 html 表单生成的令牌都会不断变化。

我想知道这些令牌是如何生成的?并且当使用某些软件扫描这个站点时,它会报告另一个安全问题:会话已修复。为什么?既然token一直在变,怎么会出现这个问题呢?

还有一个功能,就是 salt 的antiForgeryToken,但是我真的知道这个是干什么用的,即使我们不使用 salt 来生成 token,token 也会一直在变化,为什么会有这样的功能?

0 投票
4 回答
1347 浏览

php - 使用 Cookie 保护会员登录

将用户的用户名密码存储在 cookie 中是一种好习惯吗?我真的很想知道像(Facebook、digg、twitter)这样的大网站是如何处理这个问题的。我的代码是这样的:

每次成功登录后,我都会将$username$password(md5) 存储在 cookie 中。并重新生成会话IDsession_regenerate_id()


为了验证用户身份,我检查是否存在登录会话,否则我验证 cookie。

有任何想法吗?谢谢

0 投票
1 回答
1542 浏览

ruby-on-rails - Rails/RSpec:reset_session 在集成测试期间不更改 Set-Cookie HTTP 标头值

我正在编写一个集成测试以确保我的 webapp 不会受到会话固定的影响。

我已经手动验证了reset_session它实际上是在身份验证逻辑中触发的,而且当我使用我的网络浏览器登录时,cookie 确实发生了变化(因此,我不再容易受到会话固定的影响),但我无法得到我的RSpec 集成测试成功验证了这一点。

这是我的 RSpec 集成测试。

除了最后一个断言外,一切正常。cookie 没有变化。

RSpec/Rails 集成测试是否有任何已知问题reset_session无法按预期工作?我可以做些什么来编写一个验证会话固定不是问题的测试?

0 投票
2 回答
488 浏览

php - PHP 会话 - 在每个页面加载时检查之前的 IP - 要做,还是替代?

现在我在我的开发环境中实现了这个:

  • 我在登录时将 $SERVER['REMOTE_ADDR'] 存储为会话变量,然后在每个页面加载时重新检查页面以获取相同的 IP 地址。

我读的越多,我看到很多人不喜欢这个想法,因为代理等......那么,还有哪些其他选项仍然可以是好的做法?我在考虑 USER AGENT - 但是任何 joe-blow 都可以用一个简单的 firefox 插件来伪造它。也就是说,至少攻击者需要很好的猜测才能在第一次尝试时成功选择正确的...

人们怎么想?我很想简单地将文本:'SERVER_ADDR' 换成其他东西——所有其他代码都可以保持原样。

谢谢。

编辑: 我想我的主要目标是防止劫持/固定。理论上,IP 检查可以确保用户始终是用户(好吧,除非有人也欺骗了 IP……)——但会话基本上保存到这个庄园的 IP 地址……

0 投票
1 回答
1256 浏览

ruby-on-rails - 如何在 Rails 3 中的 reset_session 命令后找到新的 session_id?

我按照这里使用命令“reset_session”来避免会话固定。

运行命令后,我想将新生成的 session_id 存储在数据库中,但 session[:session_id] 未定义。

我写了一个简单的测试:

两个 conescutives 页面加载的日志中的结果是:

如您所见,随机数 (172) 已正确传递到第二页,但新会话未显示新会话 ID。

我认为新的会话 ID(“54f46f520c80044a9f5475af78a05502”)是在“after_filter”之后生成的,但我不知道如何检索它。

0 投票
2 回答
3234 浏览

php - 用于测试目的的对本地主机的简单会话固定攻击

我在 SO 上阅读了许多关于会话固定/劫持风险的 q/a,许多人建议更改php.ini指令,例如session.use_only_cookiestoON和其他 php.ini 指令,以使服务器更安全......

我想亲眼看看是否可以在基于 PHP5 + Apache 的 localhost 服务器上复制一个简单的攻击场景。

在我的 localhostsession.use_only_cookiesOFF,根据上面的 q/a,我的 localhost 基本上是不受保护的,这就是我需要做的测试。

我第一次阅读了这篇关于如何执行会话固定攻击的简单文章:

为了复制文章中描述的场景,我创建了两个非常简单的 PHP 脚本(代码如下),但是攻击不起作用,这就是我所做的:

  1. (假装是马洛里)我对爱丽丝说:“你好去访问http://localhost/login.php?PHPSESSID=mysessionid ”</p>

  2. 然后(假装爱丽丝)我去了 http://localhost/login.php?PHPSESSID=mysessionid

  3. 作为我的本地主机服务器的管理员,我看到在服务器磁盘上创建了会话(它被创建为一个名为 的文件sess_ mysessionid),所以我想:很酷,它正在工作!!!

  4. 然后(假装是爱丽丝)我登录输入“joe”作为凭证

  5. 爱丽丝登录并被重定向到insession_ok.php,此时(根据上面的维基百科文章)马洛里也应该能够看到insession_ok.php,因为他将会话固定到mysessionid但这不是真的,因为当爱丽丝登录新会话时在服务器上创建sess_vdshg238cnfb4vt7ahpnp1p522,所以我现在不明白 Mallory 应该如何固定/劫持会话,如文章中所述?


登录.php


insession_ok.php

任何线索/想法总是受到赞赏!

0 投票
2 回答
885 浏览

oauth - 当前的 OAuth 1.0 规范 - 它如何解决会话固定攻击?

我已经按照这个规范实现了一个 OAuth 1.0 提供者,它应该是最新的。该规范进行了修改,以解决2009 年发现的会话固定攻击。问题是,除了必须区分这两个规范之外,我不确定在规范中添加/更改了哪些措施以响应该问题。

由于我实施了“正确”的规范,我很难向利益相关者解释我采取了哪些措施来减轻风险。

有人愿意为我阐明这个问题吗?

0 投票
2 回答
687 浏览

php - 会话固定攻击复制,学期论文 (php)

我正在尝试为我的学期论文复制会话,我在这里找到了很多提示,但无法复制对我的本地主机的攻击。

我从这里尝试了一个例子:http: //www.devshed.com/c/a/PHP/Sessions-and-Cookies/2/

固定.php:

测试.php

文章说我应该能够固定会话:

但是检查请求标头似乎不起作用:

此外,tmp 文件夹中有一个“sess_0avpo8ttlmg35apkjaovj6dgd3”文件。

我有点迷失在这里,并尝试了不止一些类似的例子,但没有奏效......


php.ini 中的一些更新
,设置这些值:

并且注释掉session.save_handler会禁用在 cookie 中保存会话并生成 tmp 文件(我想,如果我错了,请纠正我)。现在我能够修复会话(tmp 文件夹中有一个名为 sess_1234 的文件)并劫持它(在另一个浏览器中打开,恢复状态)。再次,如果我错了,请纠正我 - 会话固定是在最近的 php 版本中完全修补还是只是这个简单的攻击?我当前的版本是 5.3.4

0 投票
1 回答
9922 浏览

java - 防止java中的会话固定

我有一个用 java 编写的 web 应用程序。我们在身份验证过程中不使用会话。运行了应用程序扫描,发现我们有可能受到会话固定攻击。我想知道当我们不使用会话时,您如何修复或防止会话固定?这就是 FORTIFY 扫描报告的内容