security - 身份验证跟随是如何设计的?
问题描述
对于我曾经从事过的许多应用程序。登录成功且会话仍处于活动状态后,如果用户尝试直接使用浏览器地址栏访问登录/注册页面,他们将被重定向到仪表板或主页。我只是关注一些现有的应用程序,比如 Goolge。
但这种流动的主要原因是什么?如果用户在会话仍处于活动状态时仍可以访问登录/注册,是否会带来任何安全风险?
解决方案
拥有单独的登录页面或将用户重定向到另一个页面的决定取决于您对网站的用例或要求。它与您要提供给用户的功能直接相关。
主要是为了带来功能上的分离,比如登录页面是专门用来登录的,仪表盘页面或者主页是显示你的主页的账户详情或者其他相关信息。它也可以用于安全目的。
从功能上讲,在同一页面上拥有用户登录和仪表板页面可能会根据您根据您的用例正在执行的其他处理有其自身的挑战。考虑这样一个场景,每当您登录时都会发送一封电子邮件,并且还会根据登录过程进行一些额外的处理。发布页面上的每次刷新都会让用户重新登录。在这种情况下,仪表板页面的每次刷新都会触发一封电子邮件,并且还会进行可能不需要的额外处理。从安全的角度来看,根据您的要求,您可以将基于PRG(Post-Redirect-Get)模式的 URL 重定向到受限页面或访客用户页面,而不是在未经身份验证的用户登录时或基于主主页订阅类型的用户。
还应该注意的是,将登录机制集成到主页中也具有基于您的网站要求的优势,因为它提供了登录的能力,而不会丢失用户正在执行的操作的上下文,这完全取决于您的要求网站。但是,单独的登录页面的优点是更易于实现,并且对于包含敏感信息的页面,您可以简单地重定向到登录页面,而不必担心在没有有效会话上下文的情况下呈现 UI。
推荐阅读
- firefox - Firefox SVG:在内部元素上调用 getBBox 方法时抛出
- android - 我的片段沟通不畅吗?
- scala - 如何有效地将火花 RowMatrix 居中(均值偏移)?
- amazon-web-services - 如何为 Amazon aws ec2 centos 7.5 实例增加 /var 的大小
- amazon-web-services - Amazon S3 同步命令再次上传整个修改后的文件还是仅上传文件中的增量?
- mysql - mysql多组和下单很慢
- css - 角度动画:填充不以高度 0->* 进行动画处理
- excel - 如何更改字符 laravel excel maatwebsite 的颜色?
- php - 将 Laravel 5.4 升级到 5.6 的问题
- php - 在 PHP 中将 Google Charts p 属性添加到 JSON