问题标签 [session-hijacking]

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 投票
3 回答
1270 浏览

php - PHP 会话 - 具有 1 个 IP 的多个用户

周一,我以为我已经通过将会话设置为用户 IP 解决了会话劫持安全问题,直到我登录。我有两个具有相同 IP 的用户(我自己和一个测试用户)并且它不断在两者之间切换。有没有办法防止这种情况并允许两个具有相同 IP 的用户在我的网站上注册?

在此先感谢,特里。

0 投票
2 回答
1187 浏览

asp.net - asp.net会员LoginStatus控件需要代码吗?

我正在使用 loginStatus 控件让我的用户注销。我不再为注销过程编写代码(不删除会话、删除 cookie 或重定向用户),只依赖控件的内置代码。

现在我想知道在页面上放置一个 LoginStatus 控件并让它自己完成其余部分是否足够(我的意思是删除会话 cookie 并注销用户)或者我应该处理它的事件并编写代码来删除 cookie 和注销用户。

读过,即使在通过 LoginStatus 控件注销用户后,我们也应该删除会话 cookie 以避免其他人获取和使用它(劫持它)或在其内容中添加一些字符串(如 IP 或 ...)以避免劫持...是真的吗?

0 投票
1 回答
4764 浏览

java - 只知道我当前 JSESSIONID 的人可以模拟/劫持我的会话(Tomcat 7/Glassfish 3.2))吗?

我正在寻找一个简单的英语“傻瓜”解释 JSESSIONID 如何从安全方面工作

  • 只知道我当前 JSESSIONID 的人可以模拟/劫持我的会话吗?
  • 在什么情况下 JSESSIONID 将成为 URL 的一部分,这个OWASP #2 安全风险(场景 #1)是否仍然与最新版本的 Tomcat / Glassfish 相关,如果是,如何“关闭/打开”以防止它?
0 投票
1 回答
548 浏览

php - 防止 facebook 会话劫持

我正在构建一个金融服务 Web 应用程序,我的公司希望将 facebook 身份验证合并到其中。因为我们身处金融界,所以安全至关重要。我正在使用 facebook PHP SDK 进行集成,但我真的很担心会话劫持。在我的大学时代,我会从我周围的每个人那里劫持废话(这很有趣),但我正试图找到一种方法来防止我的应用程序出现这种情况。

我的公司希望尽可能简化身份验证过程,这意味着不希望使用两因素身份验证。但是在 facebook 登录后提示用户输入另一条信息似乎是最安全的方式。我想知道你们中是否有任何聪明的人可以想出其他方法来确保这一点,同时保持整个过程简单快捷?

0 投票
2 回答
7609 浏览

php - PHP 检查用户代理和 IP 以防止会话劫持

我试图弄清楚如何防止会话劫持。这就是我想做的事情:

除了用户 ID 会话,还添加一个用户代理和用户 IP 会话。每次加载页面时,都会检查这些会话以查看它们是否匹配 - 这是否足够?例如:

谢谢。

0 投票
1 回答
133 浏览

php - 在数据库中存储会话是否可以防止劫持/修复

经过数小时的挫折后,我设法编写了一个将 PHP 会话存储在数据库中的脚本。我的问题是,这是否可以防止会话劫持和/或固定?

提前致谢。

0 投票
2 回答
612 浏览

php - 通过数据包嗅探保护经过身份验证的 PHP 会话免受会话劫持

我对在不使用 SSL 的情况下保护 PHP 会话的主题感兴趣。

令我惊讶的是,如果中间人嗅探用户和服务器之间交换的数据包,即使会话经过身份验证,也很容易窃取会话。我知道有一些策略可以限制损害,例如在登录/注销时更改 sessionid,记录/检查用户系统参数(例如操作系统、浏览器)。

但是,如果在已经过身份验证且未注销的会话期间(也没有时间超时),攻击者能够获取会话 ID,那么他可以轻松劫持会话(据我了解问题)。

我想到了一个可能的解决方案,在加密的登录身份验证期间,服务器可以向客户端发送一个随机会话密码。会话密码仅在该登录会话期间有效。因此,在该会话期间交换的每条消息都必须使用会话密码(例如 MD5(会话密码+消息内容))进行签名。

问题解决了吗?假设攻击者无法对初始登录交换进行密码分析,这种方法的弱点是什么?

0 投票
4 回答
608 浏览

php - 存储用户密码(服务器端),将其连接到 cookie - 安全问题

我正在尝试找到一个安全的解决方案来解决我遇到的关于 Cookie/会话和数据库数据的问题。

我已经阅读了不同的文章,例如http://www.devshed.com/c/a/PHP/Sessions-and-Cookies/,这些文章解释了不同的 Cookie 盗窃和会话固定方法,以了解我的安全问题要去面对。

问题如下:我有存储数据条目的数据库表AES_ENTRYPT(),使用用户密码对其进行加密。这意味着,即使要读取信息,我也必须使用明文密码来解密数据。

如果我只将密码存储在变量中,这可能不会成为问题,$_SESSION但这将拒绝通过 cookie 保持登录数天的能力。

换句话说,我必须将明文密码存储在 cookie 中(至少,以使该功能保持登录状态)

现在,您可以使用加盐的 MD5() 或 SHA-256() 哈希作为标识符,而不是密码。但我不能用哈希解密数据。这意味着我必须存储密码服务器端(在数据库中?还是有其他安全方式?),将它连接到标识符 - 但是密码对于有权访问数据库的每个人来说都是可以访问的,并且可以直接解密那里的数据。

有没有一种安全的方法来连接我存储在 cookie 中的标识符,并将其连接到服务器存储的用户输入(密码/帐户名),而实际上却让可以访问数据库的人有可能读取该服务器端存储用户输入?

要求是,即使在最坏的情况下,有人转储了数据库和 cookie(但无法访问服务器 RAM),该人不应该能够访问用户密码并用它解密存储的数据。

为避免混淆,简单回顾一下:

这不是用户识别问题 - 登录过程单独发生(通过通常的方式:密码/登录数据的 md5() 哈希)。我的问题是,用户数据(如地址、姓名、电子邮件)是用用户密码加密的。所以我需要登录密码来解密它们。如果用户只是登录,这没问题,因为我在 $_POST 数据中有密码,并且可以使用它。但是登录后呢?只要 $_POST 或 $_SESSION 消失,我就无法再次解密数据。


可能的解决方案

经过一些输入后,我可能想出了一个方法——它并不完全安全,但它应该工作得很好:

(这里与登录/用户认证过程是分开的,我只指加密/密钥部分)

这里唯一的问题是,如果有人可以获得 $auth,他们可以解密 $key,然后解密数据。我正在考虑为每次登录生成一个新的 $auth,但这会引发一个问题,如果旧的 $auth 丢失,我如何解密密钥。这与令牌之间的区别在于,这增加了另一层,其中令牌不是加密密钥本身。无论如何,我认为解决方案是最接近我想要的,在公钥/私钥之外。非常感谢你。

0 投票
1 回答
248 浏览

cookies - Stackoverflow 如何让用户通过 HTTP 登录?

我注意到 stackoverflow 仅在登录页面上使用 SSL,并且可以通过 HTTP 发布问题/答案。

用户必须登录才能做到这一点,所以我想知道如果没有使用 SSL,stackoverflow 如何设法跟踪哪些用户已登录。

目前我正在制作一个 Rails 应用程序,它使用 cookie 跟踪登录状态。我一直认为您需要 SSL 才能安全地做到这一点。但我以登录用户身份通过​​ HTTP 发布此内容。

当我运行tcpdump -i eth0 -A然后访问 stackoverflow 时,我注意到一个名为“usr”的 cookie,并且该 cookie 以纯文本形式传输,没有 SSL。如果我通过不安全的连接(如 wifi 咖啡馆)登录,黑客/数据包嗅探器能否获取我的 usr cookie 并重播我的会话?

我想避免在我的 Rails 应用程序中使用 SSL(因为我的主机要为实现它负责),所以我想使用与 stackoverflow 相同的技术。我想让用户保持登录状态,而不使用 SSL。

我猜这里正在使用数据库(或 memcache/redis)会话存储。但肯定还是需要某种 cookie 吗?为什么这些 cookie 不必通过 SSL 发送?后台是否发生了其他事情,使这些 cookie 对不同机器上的黑客来说是多余的?

0 投票
1 回答
6217 浏览

php - 会话是否仅存储在浏览器中?

我的网站受到暴力攻击,攻击者试图访问用户帐户。机器人没有用户代理。我有一个系统,如果一个人在 10 分钟内超过 3 次尝试登录,就会阻止他们登录。

我还让它检查用户代理,如果没有,退出。

我的问题是:会话是否仅存储在浏览器中?我在想的是他们正在使用通过命令行执行的脚本。

我也实现了这个:

我还能做些什么来防止这些攻击吗?