标签: session

如何在30分钟后使PHP会话到期?

我需要让会话保持30分钟,然后将其销毁.

php cookies session

1017
推荐指数
11
解决办法
93万
查看次数

会话真的违反了R​​ESTfulness吗?

在RESTful API中使用会话是否真的违反了R​​ESTfulness?我看到很多意见朝着两个方向发展,但我不相信会话是无REST的.在我看来,我的观点是:

  • RESTfulness不禁止身份验证(否则在RESTful服务中几乎没有用)
  • 通过在请求中发送身份验证令牌(通常是标头)来完成身份验证
  • 此身份验证令牌需要以某种方式获取并可能被撤销,在这种情况下需要续订
  • 验证令牌需要由服务器验证(否则它不会是身份验证)

会话如何违反这一点?

  • 客户端,会话使用cookie实现
  • cookies只是一个额外的HTTP标头
  • 可以随时获取和撤销会话cookie
  • 如果需要,会话cookie可以有无限的生命周期
  • 会话ID(身份验证令牌)在服务器端验证

因此,对于客户端,会话cookie与任何其他基于HTTP头的身份验证机制完全相同,除了它使用Cookie头而不是Authorization其他专有头.如果cookie值服务器端没有附加会话,为什么会产生影响呢?只要服务器表现为 RESTful ,服务器端实现就不需要关注客户端.因此,cookie本身不应该使API无REST,而会话只是客户端的cookie.

我的假设是错的吗?什么使会话cookie RESTless

cookies rest session restful-authentication

472
推荐指数
4
解决办法
12万
查看次数

检查PHP会话是否已经启动

我有一个PHP文件,有时从已启动会话的页面调用,有时从没有启动会话的页面调用.因此,当我有session_start()这个脚本时,我有时会收到"会话已经开始"的错误消息.为此,我把这些行:

if(!isset($_COOKIE["PHPSESSID"]))
{
  session_start();
}
Run Code Online (Sandbox Code Playgroud)

但这次我收到了这条警告信息:

注意:未定义的变量:_SESSION

有没有更好的方法来检查会话是否已经开始?

如果我使用@session_start它会使事情正常工作,只是关闭警告?

php session session-variables

439
推荐指数
12
解决办法
42万
查看次数

如何在Vim中保存和恢复多个不同的会话?

根据我在Vim中的任务,我打开了几个标签.

如何保存不同的会话供以后使用?

vim session

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

使JSON Web令牌无效

对于我正在研究的新node.js项目,我正在考虑从基于cookie的会话方法切换(我的意思是,将id存储到包含用户浏览器中的用户会话的键值存储)使用JSON Web令牌(jwt)进行基于令牌的会话方法(无键值存储).

该项目是一个利用socket.io的游戏 - 在一个会话中将有多个通信通道(web和socket.io)的情况下,基于令牌的会话将非常有用.

如何使用jwt方法从服务器提供令牌/会话失效?

我还想了解在这种范例中我应该注意哪些常见(或不常见)的陷阱/攻击.例如,如果此范例容易受到与基于会话存储/ cookie的方法相同/不同类型的攻击.

所以,说我有以下(改编自这个这个):

会话商店登录:

app.get('/login', function(request, response) {
    var user = {username: request.body.username, password: request.body.password };
    // Validate somehow
    validate(user, function(isValid, profile) {
        // Create session token
        var token= createSessionToken();

        // Add to a key-value database
        KeyValueStore.add({token: {userid: profile.id, expiresInMinutes: 60}});

        // The client should save this session token in a cookie
        response.json({sessionToken: token});
    });
}
Run Code Online (Sandbox Code Playgroud)

基于令牌的登录:

var jwt = require('jsonwebtoken');
app.get('/login', function(request, response) {
    var user = {username: request.body.username, …
Run Code Online (Sandbox Code Playgroud)

javascript session session-cookies node.js jwt

357
推荐指数
14
解决办法
17万
查看次数

为什么jquery的.ajax()方法没有发送我的会话cookie?

登录$.ajax()到站点后,我尝试$.ajax()向该站点发送第二个请求 - 但是当我检查使用FireBug发送的标头时,请求中不包含会话cookie.

我究竟做错了什么?

cookies ajax session jquery

326
推荐指数
6
解决办法
31万
查看次数

会议是什么?他们是如何工作的?

我刚刚开始使用python开始学习Web应用程序开发.我遇到了"cookies"和"会话"这两个词.我理解cookie,因为它们将一些信息存储在浏览器的键值对中.但是我对会话有点困惑,在会话中我们也将数据存储在用户浏览器的cookie中.

例如 - 我使用username='rasmus'和登录password='default'.在这种情况下,数据将被发布到服务器,如果经过身份验证,该服务器应该检查并登录.但是,在整个过程中,服务器还会生成会话ID,该ID将存储在浏览器的cookie中.现在,服务器还将此会话ID存储在其文件系统或数据存储中.

但基于会话ID,如何在我后续遍历网站时知道我的用户名?它是否将数据作为dict存储在服务器上,其中键是会话ID username,email等等细节是值?

我在这里很困惑.需要帮忙.

language-agnostic session

301
推荐指数
6
解决办法
13万
查看次数

我刚刚发现为什么所有的ASP.Net网站都很慢,而我正试图找出解决方法

我刚刚发现,ASP.Net Web应用程序中的每个请求在请求开始时都会获得一个Session锁,然后在请求结束时释放它!

如果这对你造成影响,就像我一开始对你而言,这基本上意味着以下几点:

  • 任何时候ASP.Net网页需要很长时间才能加载(可能是由于数据库调用速度慢等),并且用户决定他们想要导航到另一个页面,因为他们厌倦了等待,他们不能!ASP.Net会话锁强制新页面请求等待,直到原始请求完成其缓慢的负载.Arrrgh.

  • 任何时候UpdatePanel加载缓慢,并且用户决定在UpdatePanel完成更新之前导航到另一个页面......他们不能!ASP.net会话锁强制新页面请求等待原始请求完成其缓慢的负载.双Arrrgh!

那有什么选择呢?到目前为止,我想出了:

  • 实现ASP.Net支持的自定义SessionStateDataStore.我没有找到太多的副本,它似乎有点高风险,容易搞砸.
  • 跟踪正在进行的所有请求,如果来自同一用户的请求,则取消原始请求.看起来有点极端,但它会起作用(我认为).
  • 不要使用Session!当我需要用户的某种状态时,我可以使用Cache代替,以及经过身份验证的用户名上的关键项,或者其他类似的东西.再次看起来有点极端.

我真的不敢相信ASP.Net微软团队会在版本4.0的框架中留下如此巨大的性能瓶颈!我错过了一些明显的东西吗 为会话使用ThreadSafe集合有多难?

architecture asp.net iis performance session

272
推荐指数
8
解决办法
11万
查看次数

如何使用cURL发送Cookies?

我读到发送带有卷曲作品的饼干,但不适合我

我有一个REST端点作为

class LoginResource(restful.Resource):
    def get(self):
        print(session)
        if 'USER_TOKEN' in session:
            return 'OK'
        return 'not authorized', 401
Run Code Online (Sandbox Code Playgroud)

当我尝试访问时

curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: …
Run Code Online (Sandbox Code Playgroud)

rest session curl session-cookies flask

272
推荐指数
6
解决办法
38万
查看次数

"让我登录" - 最好的方法

我的Web应用程序使用会话在用户登录后存储有关用户的信息,并在应用程序中从一个页面移动到另一个页面时维护该信息.在这个特定的应用程序,我存储user_id,first_namelast_name人的.

我想在登录时提供"Keep Me Logged In"选项,这将在用户的计算机上放置一个cookie两周,这将在他们返回应用程序时以相同的细节重新启动他们的会话.

这样做的最佳方法是什么?我不想将它们存储user_id在cookie中,因为看起来这样可以让一个用户轻松尝试伪造另一个用户的身份.

php security session remember-me

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