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