[英]Scala Play security issue
我正在尝试使用scala播放来开发网站,并在“登录页面”期间找到了1个使用权。
我要求输入登录名和密码,然后在此代码的帮助下存储密码:
重定向(routes.UserPage.form(useremailverify.username))。withSession(“ name”-> useremailverify.username,“ guid”-> md5hash1)
但是突然我发现这是世界各地的会议! 它对所有用户都是全球性的。 您可以通过浏览http://pickti.me/emailVerificationForm来检查它,您将在右上角看到已经登录的位置! 是否有人知道如何为每个用户创建新的会话?
UDP 1:在表单上,我检查用户是否以这种方式登录:
request =>
request.session.get("name").map { userName =>
username = userName
}
因此,如果用户名不为空-用户已登录
UPD 2:如果我尝试:
重定向(routes.UserPage.form(useremailverify.username))。newSession.withSession(“ name”-> useremailverify.username,“ guid”-> md5hash1)
我收到编译错误:
值newSession不是play.api.mvc.SimpleResult [play.api.mvc.Results.EmptyContent]的成员
UPD 3:代码:重定向(routes.UserPage.form(usersignin.email))。withNewSession(“ name”-> usersignin.email,“ guid”-> md5hash1)
错误:
play.api.mvc.PlainResult不接受参数
Whithout错误只是(但此代码不会保存用于1个以上导航的数据):Redirect(routes.UserPage.form(usersignin.email))。withNewSession.flashing(“ name”-> usersignin.email,“ guid”-> md5hash1)
UPD 4:
正确使用withNewSession的方式(但不能解决主要问题...):重定向(routes.UserPage.form(useremailverify.username))。withNewSession.withSession(“名称”-> useremailverify.username,“ guid”- > md5hash1)
UPD 5:
Coockie PLAY_SESSION包含以下内容:“ 043455c05b1481c501a61167f5dd09e7ec73e693-name = starbucks%40picktime.ru&guid = d7d4c9c3f078d150effbef5e0706c557”,因此从cookie中收集数据... =(
UDP 6:
将Play Framework的版本更改为2.2.1,但问题仍然存在。
withSession不会为所有用户设置cookie。 所以我认为您的支票行不通。 我正在开发一个名为PlayGuard的Play新安全框架! 您可以使用此框架,也可以查看其代码并解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.