标签: session-fixation

何时以及为什么我应该使用session_regenerate_id()?

为什么以及何时应该session_regenerate_id()在php中使用该功能?我使用后应该经常使用session_start()吗?我已经读过我必须使用它来防止会话固定,这是唯一的原因吗?

php session session-fixation

88
推荐指数
7
解决办法
5万
查看次数

什么是防伪标记盐的用途?

在ASP.NET MVC 1.0中,有一个用于处理跨站点请求伪造安全问题的新功能:

 <%= Html.AntiForgeryToken() %>
[ValidateAntiForgeryToken]
public ViewResult SubmitUpdate()
{
    // ... etc
}
Run Code Online (Sandbox Code Playgroud)

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

我想知道这些令牌是如何生成的?当使用某些软件扫描此站点时,它将报告另一个安全问题:会话已修复.为什么?由于令牌不断变化,这个问题怎么来了?

还有另外一个功能,就是"盐" antiForgeryToken,但我真的知道这用了什么,即使我们不使用"salt"来生成令牌,令牌也会一直在变化,所以为什么会这样功能?

security asp.net-mvc csrf session-fixation

16
推荐指数
1
解决办法
2万
查看次数

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

我已阅读有关会话固定的内容,据我了解,它强迫用户使用攻击者的会话.它是否正确?你能告诉我一个如何冒犯用户的例子吗?

security session-fixation

7
推荐指数
1
解决办法
7698
查看次数

防止在ruby sinatra中固定会话

ruby中的大多数会话固定主题主要与rails相关.sinatra中是否存在任何会话固定漏洞?在rails中,我们主要建议在分配会话之前执行reset_session.我们如何防止sinatra中的会话固定?

ruby security session sinatra session-fixation

7
推荐指数
1
解决办法
1404
查看次数

在登录时生成新的SessionID(ASP.NET)

我正在尝试在相当大的ASP.NET Web应用程序(C#)上处理许多安全问题.为了防止会话固定攻击,我想在每次用户验证自己时生成一个新的会话ID.但是我想只生成一个新的会话ID而不会丢失会话的其余部分.在对这个主题做了一些研究后,我找到了几个有效的解决方案:

解决方案1:在ASP.NET中生成新的SessionId
这建议通过将会话cookie设置为空字符串来手动清除会话cookie.但是,这需要页面刷新或使用AJAX来确保cookie确实被删除,这在我的特定情况下不是真正可行的选项.

解决方案2:在当前HTTPContext中生成新的ASP.NET会话
我已经实现了这种方法,并且它按预期工作.然而,正如原始海报所述,这并不是你所谓的优雅解决方案.此外,这篇文章还有几年历史,我希望现在可能有更好的解决方案.

我想知道的是,如果有任何替代方法可以做到这一点,我在研究中错过了,或者在没有操作会话管理内部的情况下可以使用解决方案2.

c# asp.net sessionid session-fixation

7
推荐指数
1
解决办法
1万
查看次数

对localhost进行简单的会话固定攻击以进行测试

我在读SO许多Q/A有关的会话固定/劫持,许多人建议改变风险php.ini就像指令session.use_only_cookiesON和别人的php.ini指令,以使服务器更安全...

如果我可以在基于PHP5 + Apache的localhost服务器上复制一个简单的攻击场景,我想看看我的眼睛.

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

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

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

  1. (假装是Mallory)我对Alice说:"你好去访问http://localhost/login.php?PHPSESSID = mysessionid "

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

  3. 作为我的localhost服务器的管理员,我看到在服务器磁盘上创建的会话(它被作为名称的文件被冻结sess_ mysessionid),所以我想:很酷,它正在工作!

  4. 然后(假装是Alice)我登录后输入"joe"作为凭证

  5. Alice登录并将她重定向到insession_ok.php,此时(根据上面的维基百科文章),Mallory也应该能够看到insession_ok.php因为他固定了会话mysessionid,但事实并非如此,因为当Alice登录新会话时在服务器上创建sess_vdshg238cnfb4vt7ahpnp1p522,所以我不明白Mallory应该如何固定/劫持会话,如文章中所解释的那样???


的login.php

<?php
session_start();

//if user credentials are ok, let's put him in session
if( @$_POST['usr'] === 'joe' )
   $_SESSION['in_session'] = TRUE;

//if user is already logged in, let's redirect him to the account page "insession_ok.php" …
Run Code Online (Sandbox Code Playgroud)

php apache session session-fixation

6
推荐指数
1
解决办法
3014
查看次数

会话重播与会话固定与会话劫持

嗨大家可以任何人在会话固定,会话重播和会话劫持攻击之间给出明显的区别,我已阅读了很多文章,但会议劫持和会话重播攻击之间的问题仍然不明确.....

提前致谢

security session session-fixation session-hijacking session-replay

6
推荐指数
1
解决办法
4122
查看次数

如何在Rails 3中的reset_session命令之后找到新的session_id?

我使用命令"reset_session"按照这里以避免会话固定.

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

我写了一个简单的测试:

class ApplicationController < ActionController::Base
  protect_from_forgery
  after_filter :after_test
  def after_test
    RAILS_DEFAULT_LOGGER.debug "Old Session: #{session.inspect}"
    reset_session
    session[:random_number] = ((rand*1000).to_i)
    RAILS_DEFAULT_LOGGER.debug "New Session: #{session.inspect}"
  end
end
Run Code Online (Sandbox Code Playgroud)

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

Started GET "/" for 127.0.0.1 at 2011-04-16 11:42:57 +0200
Processing by WelcomeController#index as HTML
Rendered welcome/index.html.erb within layouts/application (1.9ms)
Old Session: {"random_number"=>519, "session_id"=>"d17df62e286f20bd25e2714ee4f58020", "_csrf_token"=>"NkD5ZjG/RYLolfRy0ADmr+h+Sp2TXEOQlc6HhNpyp/g="}
New Session: {:random_number=>172}
Completed 200 OK in 7ms (Views: 6.4ms | ActiveRecord: 0.0ms)
Run Code Online (Sandbox Code Playgroud)

Started GET "/" for 127.0.0.1 at 2011-04-16 11:42:58 +0200
Processing by WelcomeController#index as …
Run Code Online (Sandbox Code Playgroud)

session ruby-on-rails session-fixation

5
推荐指数
1
解决办法
1229
查看次数

如何在登录或注销时清除/重置/更新 ASP.net core(Razor 页面)应用程序中的会话 Cookie

我试图为每次新登录获取会话 Cookie 的新值。基本上,每次用户登录时,下面屏幕截图中的值都应该有一个新的随机字符串。这是为了避免会话固定。

我已经尝试过以下操作:

登录时:

Response.Cookies.Delete(".AspNetCore.Session");

HttpContext.Request.Cookies[".AspNetCore.Session"] = "123132" //does not allow to be set
Run Code Online (Sandbox Code Playgroud)

注销时:

HttpContext.Session.Clear();

Response.Clear();

Session.Abandon() // Abandon is no longer available
Run Code Online (Sandbox Code Playgroud)

但会话 Cookie 的值并没有改变。非常感谢任何指导。

浏览器检查上的会话 Cookie

session-cookies session-fixation asp.net-core razor-pages

4
推荐指数
1
解决办法
7798
查看次数

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

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

自从我实施了“正确”的规范后,我很难向利益相关者解释我采取了哪些措施来降低风险。

有人愿意为我解释这个问题吗?

oauth session-fixation

3
推荐指数
1
解决办法
863
查看次数

在java中防止会话固定

我有一个用java编写的Web应用程序.我们不在身份验证过程中使用会话.运行了应用程序扫描,发现我们有会话固定攻击的可能性.我想知道我们什么时候不使用会话,你如何修复或阻止会话固定?这就是FORTIFY扫描报告所说的内容

The following changes were applied to the original request:
• Added parameter 'Cookie_abcxyz.com-443' with the following value 'R3777273810'
• Removed cookie 'Cookie_abcxyz.com-443'

Request/Response:
GET / HTTP/1.1
Content-Length: 43
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: myportal.abcxyz.com
Cookie_abcxyz.com-443=R3777273810
HTTP/1.1 200 OK
Set-Cookie: Cookie_abcxyz.com-443=R3777273810; path=/
Content-Length: 11211
Date: Mon, 13 Feb 2012 17:08:14 GMT
Server: abcxyz
Cache-Control: no-cache
Content-type: text/html
Run Code Online (Sandbox Code Playgroud)

java session-fixation

2
推荐指数
1
解决办法
7061
查看次数

我怎样才能防止PHP项目中的会话固定?

我知道会话固定是在PHP中破解网站的方法.
会话修复是一种攻击,允许攻击者劫持有效的用户会话
会话固定, 但我不知道这可以防止我的项目中出现此问题.
是描述解决方案的方式或样本.

php session-fixation

1
推荐指数
1
解决办法
3439
查看次数