这是设置,我想建立一个单一网页的网页应用,省道和角省道是我的前端工具。
对于服务器后端,我使用PHP,认为它只是web应用程序的CDN,而REST用于数据服务这个web应用程序。
我需要构建一些登录和身份验证,我已经确定了Openid,以使注册和登录尽可能容易。在过去的几天里,我一直在网上和这个论坛上寻找一个有意义的解决方案,现在我更困惑了:)
我可以在客户端和服务器端获得基本的auth信息,使用“X”示例登录,验证用户身份,我可以创建/注册他们的服务器端,在那里都很酷。
我现在的问题是,如何在web应用程序和服务器之间以最安全、最有效的方式使用这些信息?以下是我的想法/选择:
我主要是一个桌面开发人员,所以这一切都是有点压倒性目前,任何建议,我应该采取的方式,将非常感谢。一个简单的一步一步的过程描述给我一些方向将是伟大的,谢谢。
米克。
发布于 2014-04-02 10:13:03
这可能是一个解决方案(我不是专家,但我正在考虑使用这个):
一个新的哈希密码被存储到数据库
用户创建一个密码,新密码以哈希模式存储到数据库中(使用dart,您可以在服务器端使用--例如这个包:哈希尔,必须有类似的php包)。
验证登录并使用过期时间创建会话信息
当用户登录并提供密码时,将给定的密码与存储的密码进行比较(使用以前软件包中的函数)。如果密码匹配,则在服务器端创建数据库的新条目或创建会话cookie。新条目应该具有唯一的id和过期时间(例如,30分钟)。id被发送回客户端。客户端存储id。
验证每个请求并更新过期时间
当客户端发出请求时,它还将id发送回服务器。服务器对数据库中的id条目验证接收到的id。如果id匹配,则将数据库中id的过期时间恢复到30分钟,并回复请求。
用户注销,或者有很长的不活动时间。
当用户注销时,带有id的注销请求被发送到服务器,服务器从数据库中删除id。如果不活动时间超过30分钟,服务器将自动删除会话id。
未授权请求
如果来自客户端的请求不包括会话id,或者从数据库中找不到id,服务器就会向客户机发送一个回复,请求重定向到登录页面,或者发送登录页面(取决于应用程序的构建方式)。
主要的安全措施是:
发布于 2014-04-02 07:49:37
通常,当客户端成功通过身份验证时,您将在服务器上创建会话cookie。客户端必须将此会话cookie与每个请求一起发送到服务器。
我自己也没有使用过PHP,但我确信有现成的软件包可供PHP使用。
安全既棘手又容易出错,所以你不应该自己动手烤东西。
客户机上不应该做任何事情,因为默认情况下,浏览器会将cookie发送回服务器,每个请求都是这样。
https://stackoverflow.com/questions/22804559
复制相似问题