Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
playframework-安全指南没有提到GET方法的安全性?_Playframework - Fatal编程技术网

playframework-安全指南没有提到GET方法的安全性?

playframework-安全指南没有提到GET方法的安全性?,playframework,Playframework,我在读《游戏安全指南》 但是,如果我将cookie更改为在会话中具有不同的用户ID,然后发出请求,会发生什么呢。我知道有一个密钥不再匹配,但我在安全指南中没有看到在这种情况下会发生什么。我会怀疑GET请求失败,play会清除cookie,这样用户就可以重新开始(以防只是一个bug),并向他们显示一个拒绝访问的页面或其他什么 这里发生了什么?让我们看看安全模块的源代码中发生了什么: if (!session.contains("username")) { flash.put("url",

我在读《游戏安全指南》

但是,如果我将cookie更改为在会话中具有不同的用户ID,然后发出请求,会发生什么呢。我知道有一个密钥不再匹配,但我在安全指南中没有看到在这种情况下会发生什么。我会怀疑GET请求失败,play会清除cookie,这样用户就可以重新开始(以防只是一个bug),并向他们显示一个拒绝访问的页面或其他什么


这里发生了什么?

让我们看看安全模块的源代码中发生了什么:

if (!session.contains("username")) {
    flash.put("url", "GET".equals(request.method) ? request.url : "/"); 
    login();
}
。。。和登录方法

 public static void login() throws Throwable {
        Http.Cookie remember = request.cookies.get("rememberme");
        if (remember != null && remember.value.indexOf("-") > 0) {
            String sign = remember.value.substring(0, remember.value.indexOf("-"));
            String username = remember.value.substring(remember.value.indexOf("-") + 1);
            if (Crypto.sign(username).equals(sign)) {
                session.put("username", username);
                redirectToOriginalURL();
            }
        }
        flash.keep("url");
        render("Application/login.html");
    }

因此,根据您的问题和步骤,您将被重定向到登录页面。

如Orest V代码所示,play使用cookie内容和application.secret创建一个哈希,并将其添加到cookie内容中。如果用户手动更改cookie,则哈希将与读取cookie时创建的哈希播放不匹配,因此会话将无效