标签: session

允许php会话转移到子域

我为所有用户数据使用php会话(不是cookie,会话ID cookie除外),当用户访问他们的个人资料user.mydomain.com时,他们会立即"退出",直到删除子域.

有没有办法接受来自所有域的会话,只要它的*.mydomain.com

php apache cookies session

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

使用Flask-Session扩展名未在flask会话中设置密钥

现在我正在使用烧瓶第三方库Flask-Session,我没有运气让会话工作.

当我连接到我的网站时,我收到以下错误:

RuntimeError:会话不可用,因为没有设置密钥.将应用程序上的secret_key设置为唯一且保密的内容.

下面是我的服务器代码.

from flask import Flask, session
from flask.ext.session import Session

SESSION_TYPE = 'memcache'

app = Flask(__name__)
sess = Session()

nextId = 0

def verifySessionId():
    global nextId

    if not 'userId' in session:
        session['userId'] = nextId
        nextId += 1
        sessionId = session['userId']
        print ("set userid[" + str(session['userId']) + "]")
    else:
        print ("using already set userid[" + str(session['userId']) + "]")
    sessionId = session.get('userId', None)
    return sessionId

@app.route("/")
def hello():
    userId = verifySessionId()
    print("User id[" + str(userId) + "]") …
Run Code Online (Sandbox Code Playgroud)

python session flask

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

从Ruby on Rails中的模型中访问current_user

我需要在Ruby on Rails应用程序中实现细粒度的访问控制.单个用户的权限保存在数据库表中,我认为最好让相应的资源(即模型的实例)决定是否允许某个用户从中读取或写入.每次在控制器中做出这个决定肯定不会很干.
问题是,为了做到这一点,模型需要访问当前用户,调用类似的东西.但是,模型通常无法访问会话数据. may_read?(current_user, attribute_name)

有一些建议可以在当前线程中保存对当前用户的引用,例如在 此博客文章中.这肯定会解决问题.

相邻的Google搜索结果建议我在User类中保存对当前用户的引用,我想这应该是那些应用程序不必同时容纳很多用户的人.;)

长话短说,我觉得我希望从模型中访问当前用户(即会话数据)来自我做错了.

你能告诉我我错了吗?

ruby session ruby-on-rails rails-activerecord

69
推荐指数
10
解决办法
6万
查看次数

Apache/PHP中会话文件的位置

在Ubuntu 10.10上安装Apache/PHP时会话文件的默认位置是什么?

php apache session

69
推荐指数
4
解决办法
17万
查看次数

缓存与会话的优点

在Session和Cache中存储数据表有什么区别?有哪些优点和缺点?

因此,如果它是一个简单的搜索页面,它返回数据表中的结果并将其绑定到gridview.如果用户'a'搜索并且用户'b'搜索,是否最好将其存储在Session中,因为每个用户很可能会有不同的结果,或者我仍然可以将他们的每个搜索存储在缓存中,或者这是否有意义,因为有只有一个缓存.我想基本上我想说的是Cache会被覆盖.

c# asp.net viewstate session caching

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

如何打印当前设置的所有会话变量?

无需按名称调用每个会话变量,有没有办法显示当前设置的所有会话变量的内容?

php session

64
推荐指数
3
解决办法
20万
查看次数

控制休眠会话(何时手动关闭)

我是hibernate的新手,在阅读了hibernate api和教程后,看来会话应该在不使用时关闭.

像这样:

Session sess=getSession();
Transcration tx=sess.beginTranscration();
//do something using teh session
sess.save(obj);
tx.commit();
sess.close;
Run Code Online (Sandbox Code Playgroud)

在独立应用程序中使用它时我毫无疑问.但是我不确定何时在网络应用中使用.

例如,我有一个servlet:TestServlet从客户端接收参数,然后我调用Manager来根据参数查询,就像这样:

class TestServlet{
  doGet(HttpServletRequset,httpServletResponse){
    String para1=request.getParam...();
    String para2=.....
    new Manager().query(para1,para2);
  }
}

class Manager{
  public String query(String pa1,String pa2){
    Session=....// get the session
    //do query using para1 and 1
    session.close() //Here, I wonder if I should close it.
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该在查询方法中关闭会话吗?

因为有人告诉我,hibernate中的会话就像jdbc中的连接一样.那么频繁打开和关闭它是正确的方法吗?

顺便说一句,每次都需要tx.commit()吗?

还有什么是在servlet中使用session的线程问题,因为我看到会话在api中不是线程安全的.

session hibernate

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

使用CookieStore进行Cookie与会话

在Rails 3中,将数据存储在cookie中并在会话中存储数据之间有什么区别,会话存储设置为默认的CookieStore?

例如

cookie[:foo] = 'bar'

# MyApp::Application.config.session_store :cookie_store, key: '_myapp_session'
session[:foo] = 'bar'
Run Code Online (Sandbox Code Playgroud)

据我所知,两者最终都存储在客户端cookie中.

你什么时候选择使用一个而不是另一个?

谢谢.

cookies session ruby-on-rails ruby-on-rails-3

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

数组作为会话变量

是否可以在PHP中将数组作为会话变量?

情况是我有一个表(第1页),其中一些单元格具有指向特定页面的链接.下一页将有一个名称列表(第2页,我想保留在会话数组中)及其各自的复选框.在提交此表单时,它将指向一个事务页面(第3页,其中已发布的复选框的值保存在数据库中以显示相应的名称).现在,如果我返回第一页并单击另一个单元格,会话数组是否包含新的名称列表或旧名称列表?

php arrays session

63
推荐指数
3
解决办法
24万
查看次数

防止会话劫持

如何防止多个客户端使用相同的会话ID?我问这个是因为我想添加额外的安全层来防止我网站上的会话劫持.如果黑客以某种方式计算出另一个用户的会话ID并使用该SID发出请求,我如何检测到服务器上有不同的客户端共享一个SID然后拒绝劫持尝试?

编辑

我仔细考虑后接受了Gumbo的回答,因为我已经意识到由于无状态HTTP协议的限制,我所要求的是不可能的.我忘记了什么可能是HTTP的最基本原则,现在我认为这个问题似乎有点微不足道.

让我详细说明我的意思:

在用户A登录example.com后,他会获得一些随机会话ID,为简单起见,让它为'abc123'.此会话ID在客户端存储为cookie,并通过服务器端会话进行验证,以确保登录的用户在从一个网页移动到另一个网页时仍然登录.如果HTTP不是无状态的,那么当然不需要存在这个cookie.因此,如果用户B窃取用户A的SID,并在其计算机上创建一个值为'abc123'的cookie,他就会成功劫持用户A的会话,但服务器根本无法合法地识别用户B的请求与用户A的请求有任何不同,因此服务器没有理由拒绝任何请求.即使我们要列出已经在服务器上处于活动状态的会话并尝试查看是否有人正在访问已经处于活动状态的会话,我们如何确定它是另一个非法访问会话的用户而不是同一个用户谁已经使用会话ID登录,但只是尝试用它发出另一个请求(即导航到不同的网页).我们做不到.检查用户代理?可以欺骗 - 尽管如此,作为深度防御措施还是很好的.IP地址?可以出于正当理由进行更改 - 但是我没有根本不检查IP地址,我建议检查IP的前两个八位字节,甚至是数据计划网络上的用户,因为完全合法的原因,他们经常拥有不断变化的IP通常只有IP更改的最后两个八位字节.

总而言之,正是无状态HTTP谴责我们永远无法完全保护我们的网站免受会话劫持,但良好的做法(如Gumbo提供的那些)将足以防止大多数会话攻击.因此,试图通过拒绝同一SID的多个请求来保护会话免受劫持是荒谬的,并且会破坏会话的整个目的.

php security session

63
推荐指数
2
解决办法
3万
查看次数