这个问题长期存在于我的脑海中,作为一名网络开发人员,我多年来一直试图找到答案,但却惨遭失败。因此,计划在这里接触专家。常规java / J2EE应用程序中有很多可用于会话劫持的安全性,因此我们来讨论简单的javascript应用程序。
例如:正常的Javascript应用程序启动(AngularJS), www.example.com /#欢迎,成功登录后,用户可以导航到下一页,例如' www .example.com /#page1 / ',导航继续。
假设现在user2没有登录,就会知道网址路径' www.example.com/#page1 / ',并尝试启动它,访问权限就会被拒绝。但是这是如何发生在引擎盖下的。 javascript如何处理会话/客户端ID和跟踪。
我可以参考哪个样本编码项目?
如果问题听起来太愚蠢,请道歉。
谢谢, 大卫
答案 0 :(得分:3)
安全性仅在服务器端完成。浏览器中的每个人都可以使用您的应用程序,包括html,样式和JavaScript。您将通过服务器的ajax调用获取所有敏感数据。在此API调用期间,您可以检查凭据或从标头验证身份验证令牌。通常你会做以下事情:
检查用户名/密码并创建一个具有用户ID的会话,每次api调用都会检查该会话。如果你想创建一个RESTful api,这不是无状态的,你必须避免它。
检查用户名/密码并将随机创建的令牌保存在数据库中,然后将其发送回客户端。客户端将在每次请求时发送此令牌,您将检查您的数据库以查看此请求是否已获得授权。这是无状态的,但需要查询每个仅用于身份验证的请求。
检查用户名/密码并将加密的JSON对象发送到客户端,只有您可以使用服务器端密钥解密。客户端将在每次请求时发送此令牌,您只需通过解密令牌即可对请求进行身份验证。这是无状态的,不需要您保存令牌。