Tag: 会话

HTTPS是在开放networking中防止会话劫持的唯一防御措施吗?

因此,借助Firesheep ,公共Wi-Fi中的每个人都拥有一键式会话劫持工具。 根据我的理解,它的工作方式是简单地捕获所有stream量并抓取会话cookie(因此不会窃取密码)。 根据我的理解,这也意味着HTTPS安全login不能单独解决这个问题,因为进一步的HTTP通信会再次以明文forms包含会话Cookie。 将会话绑定到一个特定的IP地址是没有用的,因为NAT,绑定到用户代理很容易被欺骗。 那么100%HTTPS在任何时候都是防止这种会话劫持的唯一方法吗? 难道人们只是嗅探包括握手在内的整个HTTPSstream量,还是这个东西安全? (我正在考虑重播攻击,但在这方面没有任何知识。) 当然,不使用公共/开放的Wi-Finetworking是更好的select,但是我仍然对网站开发者可以保护他/她的用户感兴趣。

Django会话

我正在查看Django中的会话,默认情况下它们存储在数据库中。 文件系统和caching会话有什么好处,我应该什么时候使用它们?

ViewState Vs Session …通过页面生命周期维护对象

有人可以解释一下ViewState和Session的区别吗? 更具体地说,我想知道在整个页面生命周期中保持对象可用的最佳方式(通过回发不断设置成员)。 我目前使用Sessions来做到这一点,但我不确定这是否是最好的方法。 例如: SearchObject searchObject; protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { searchObject = new SearchObject(); Session["searchObject"] = searchObject; } else { searchObject = (SearchObject)Session["searchObject"]; } } 允许我在我的页面的任何地方使用我的search对象,但是这是很麻烦的,因为如果我改变任何属性等,我必须重置我的会议变种。 我想一定有更好的方法来做到这一点,所以.NET不会重新实例化对象,每次页面加载,但也把它放在Page类的全球范围内?

仍然可以在ASP.NET MVC中使用会话variables,或者有一些更好的select(如购物车)

我有一种情况,我需要访问购物车多页。 因此,在产品页面上 – 创build购物车,并添加一些项目在购物车结帐页面 – 确认帐单地址在购物车结帐后 – 做一个最后的检查,添加购物车数据库,并去付款 我的问题是,什么是最好的方式来传递车? 我已经尝试从购物车页面回传,并保持所有的价值活着,但是在一些页面(帐单地址确认页面)这似乎很麻烦,我要检查的是我的帐单地址,并不真正想要吨页面上的HiddenFor()再次填充购物车 TempData []是我用于产品结帐页面,然后想知道是最好的时刻始终保持设置TempData …. 你可以只使用会话variables? 出于某种原因,我读了它不是很好的练习使用会话,因此,这个问题。 感谢您的指导,如果您认为它有帮助,我可以开心地提供一些代码/更多信息。

为什么保存会话保存在数据库中呢?

我已经看到,codeigniter有能力保存会话值在数据库中。 它说在数据库中保存会话是一个很好的安全实践。 但是我认为将会话信息保存在数据库中有助于提高性能。 他们只保存会话的一些元素,例如: CREATE TABLE IF NOT EXISTS 'ci_sessions' ( session_id varchar(40) DEFAULT '0' NOT NULL, ip_address varchar(16) DEFAULT '0' NOT NULL, user_agent varchar(50) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id) ); 但是,如果一个网站使用更多的会话variables,如用户名,上次login时间等,我可以将它们保存在数据库中,并在程序中使用它们。 我必须将这些列添加到同一个表吗? 我认为将会话信息保存在数据库中仅有助于减lessWeb服务器的内存使用量(RAM)。 任何人都可以解释一下它在提高安全性方面的意义吗?

如何检查用户是否login在PHP?

我很新的PHP,我想弄清楚如何使用会话来检查,看看用户是否login到一个网站,以便他们将有权访问特定的网页。 这是一个复杂的问题,还是因为我是一个noob,我不明白? 谢谢您的帮助!

Python中唯一的会话ID

我如何在Python中生成唯一的会话ID?

如何使用Facebook PHP SDK 3.0正确处理会话和访问令牌?

在PHP 3.0 SDK中,没有getSession()或者Facebook API以外的任何会话处理。 根据这个博客条目和这个错误报告 ,几天前Facebook的开发者也不知何故更新了JavaScript sdk。 在过去的几天里,一个更改被引入到托pipe的JS SDK中,打破了它与当前PHP SDK(2.x和3.x)之间的所有兼容性。 在他们的网站上使用JS和PHP SDK的开发人员可能会看到服务器端API失败。 但是,我不知道这是否真的影响我的问题。 就像在这个问题的答案一样,我正在使用PHP检索OAuth对话框的访问令牌,并将新访问令牌保存在会话中。 目前的解决方法 以下代码显示了我如何处理这个会话。 $_REQUEST['session']是OAuth对话框的响应内容。 if(isset($_REQUEST['session'])) { $response = json_decode(stripslashes($_REQUEST['session']), true); if(isset($response['access_token'])) { $this->api->setAccessToken($response['access_token']); $_SESSION['access_token'] = $this->api->getAccessToken(); } } elseif(isset($_SESSION['access_token']) && ! isset($_REQUEST['signed_request'])) $this->api->setAccessToken($_SESSION['access_token']); elseif(isset($_REQUEST['signed_request'])) { Session::invalidate('fbuser'); $_SESSION['access_token'] = ''; } 以下是我如何处理用户数据: try { $this->user = Session::getVar('fbuser'); if ($this->user === false || is_null($this->user)) […]

在Django会话中修改字典不会修改会话

我在string键引用的会话中存储字典: >>> request.session['my_dict'] = {'a': 1, 'b': 2, 'c': 3} 我遇到的问题是,当我直接修改字典时,在下一个请求期间值不会被改变: >>> request.session['my_dict'].pop('c') 3 >>> request.session.has_key('c') False # looks okay… … # Next request >>> request.session.has_key('c') True # what gives!

是否有一个最佳做法,并推荐替代MVC中的会话variables

好的,在任何人试图确定这是一个“重复”的问题之前, 我已经回顾了大多数关于类似问题的SO上的post,但即使是所有的说法,我仍然有点困惑于决定性的问题,或者我应该就此一致同意。 但是我可以说我(根据职位)确定地确定答案是基于要求的范围。 但即使考虑到这一点,对于我如何处理这个问题,我的意见也显得太多了。 我的直接要求是,我需要从1个控制器中存储多个视图的可变数据。 更具体地说,我有一个控制器和相应的视图,处理购物车项目计数,我想坚持在多个视图的数据。 我在想,_layout视图是这个最合乎逻辑的select。 现在我已经成功地完成了这个任务,将值赋给一个从我的_layout视图中获取的Sessionvariables; 因此,即使用户在网站内的任何位置导航,购物车中的商品数量也会一直存在,直到他们离开网站或完成结帐; 在这种情况下,variables将在代码中清除。 我读过的post似乎有偏见,要么偏离会话variables,而是支持Cookies并将数据存储在数据库中; 或者说为了我打算使用它们的目的,Sessionvariables是完全可以使用的。 我读过的另一件事表明,如果由于信息存储在服务器上,网站上的stream量很高,会话variables可能会阻碍整体性能。 我个人不能certificate将这种types的信息存储在数据库中,然后敲击数据库,我想这可能会影响网站的性能,对于存储临时数据似乎有点矫枉过正。 TempData,ViewData和ViewBag在保存数据时不起作用,因此它们不是IMO要求的合乎逻辑的select。 如果还有另一个适用于Sessionvariables的替代方法(这对我来说很合适),我想知道它是什么。 2个提供最好build议似乎相互矛盾的post让我有些困惑。 缺点: 避免在ASP.NET MVC中使用会话状态是一个好习惯吗? 如果是,为什么和如何? 优点: 仍然可以在ASP.NET mvc中使用会话variables,或者有一些更好的select(如购物车) 似乎这个问题(尽pipe提出了许多不同的变化)没有我可以总结的明确答案。 如果有更好的方法来完成这个没有过度杀伤,那么这就是我正在寻找的答案。 我同时在Global.ascx应用程序开始部分看到了MVCfilter的使用,但是这对于在控制器级别设置的variables和静态variables可能不太合适。 有人可能会对这个话题提出许多不同的意见,也许会提供一个更确定的答案吗? 我敢肯定,不同的意见有其自己的位置,我不是企图抹黑他们。 但有一个明确的,可能是一致的答案会更好; 那么我可以通过其他职位来确定什么是最适合我的应用程序。 当然,如果这个问题没有确定的答案, 只要告诉我,我会尝试从其他职位得到我自己的答案。 谢谢 ================================================== ========= 对答复提供了更新的回应 caching和cookies似乎是从响应的一般偏好,但是我也注意到caching它不是一个理想的候选人跨多个Web服务器使用的声明,因为同步可能是一个潜在的问题。 对Tim的评价是,数据库存储已经过优化,用户可以select稍后返回并继续他们离开的地方。 这是一个很好的观点,但要高瞻远瞩。 这可能是合理的,因为有些用户可能不会在数据库中留下不必要的数据。 因此,为了保持数据库的优化和清洁(这对我而言是同等重要的),需要执行维护任务,根据设定的时间阈值自动使这些logging到期以考虑这些情况。 虽然维护任务不是一个不容置疑的select,但我仍然认为这仅仅是为了作为临时存储的目的而增加了一点工作。 尽pipe如此,我还是尊重蒂姆的build议,并认为在一定程度上反驳我的初步意见是值得的。 数据库似乎不是存储临时数据的可行scheme; 所以我认为妥协可能是将数据存储在数据库中(或者在购物车或类似的情况下)或许在结账之后。 就像您之前所说的那样,随后的访问可能会持续跟踪数据,因此您有交易logging。 但更重要的是,这些交易的数据与数据库保持真正的相关性。 还有人表示,尽pipeSession比数据库快, 但是尽pipe有一些警告,可以在某种程度上被其他机制所缓解,例如利用SessionStateBehavior属性,只是作为一个例子。 但是……我认为Erik用Dunning-Kruger效应开了点家。 虽然从这里给出的答案的内容和解释, 我严重怀疑任何回应者的专业知识都是有问题的。 尽pipe如此,我倾向于认同获得一致意见的事实可能比我的预期要高一些。 我更特别要寻找的是能够舒适地适应多种情况的技术的普遍共识。 […]