处理前端登录的安全方法

时间:2018-11-15 10:26:49

标签: javascript php frontend

我想到了一些有关如何保护登录页面(Web)的问题。

当我使用VueJS构建演示应用程序(例如,Web应用程序)或使用HTML / JS构建空白应用程序时,我以为登录页面可以安全吗?还是我错过了什么。

例如: 当我创建用户可以单击登录按钮的登录页面时,可能会向我的后端服务器发送请求,如果成功,则会返回访问令牌,然后将前端页面路由到下一个视图或创建一些对象,没有必要。

现在的问题是: 如果登录确实有效,是否可以呈现新视图?因为我只能查看Javascript文件,所以更改响应或填写我自己的响应,然后显示行为,仅在成功登录后才显示。

我被迫使用PHP还是这样做?我想念什么吗? 感谢您的回答! 我希望你明白我的意思。

2 个答案:

答案 0 :(得分:1)

我假设我们处于典型的单页应用程序/ Web应用程序上下文中,具有独立的前端和后端(api)项目,并通过(异步)HTTP请求进行通信:

在这种情况下:是的,这将是安全的,因为您的前端首先不包含任何受保护的数据。服务器只负责发送允许客户端拥有的数据。

在这种情况下,服务器响应您的登录的确切身份无关紧要。它可以是具有成功和令牌的JSON,也可以是当前用户对象和cookie。重要的是,您的前端现在知道服务器提供的秘密。前端现在可以愉快地切换到另一个视图(请记住,一个视图最初并不包含任何数据),并可以请求它希望使用接收到的秘密显示一些受保护的数据。

如果您欺骗了前端以使您认为自己已登录,则请求现在将失败(因为您从未从服务器获取任何机密),然后您将坐在那里,盯着空白的UI并可能出现错误消息

最后一个问题,如果您被迫使用PHP(或类似方法):否,是的。您将需要在服务器端了解一些有关您的用户及其特权的信息,这些信息可以决定允许哪些人查看或更改数据,但不必是PHP。用于Web应用程序的常见服务器端语言是Node.js,PHP和Python,但您绝不仅限于它们。

答案 1 :(得分:0)

如果登录成功,则可以为当前用户设置会话变量。该会话是服务器端的,因此劫持会话密钥要复杂得多。

此外,您可以设置时间戳记,并检查每次加载页面时用户最后一次刷新页面的时间。如果他没有在X时间内刷新页面,则可以取消设置会话变量并注销用户。