繁体   English   中英

Scala Play安全问题

[英]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新安全框架! 您可以使用此框架,也可以查看其代码并解决问题。

https://github.com/psycho-ir/PlayGuard-module

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM