关于如何保护登录页面 (Web),我想到了几个问题。
当我构建一个演示应用程序时,例如使用 VueJS 的 Web 应用程序,或者使用 HTML/JS 构建一个真正空白的应用程序时,我认为登录页面可以永远安全吗?或者我错过了什么。
例如: 当我创建用户可以点击登录按钮的登录页面时,我可能会向我的后端服务器发送一个请求,如果成功则返回一个访问 token ,然后我将我的前端页面路由到下一个 View 或创建一些对象,不必要的。
现在回答问题: 如果登录真的有效,有没有办法呈现新 View ?因为我可以只查看 Javascript 文件更改响应或填写我自己的响应,并且显示的行为应该只在登录成功时显示。
我是被迫让 PHP 这样做,还是有相同的结果?我错过了什么吗? 感谢您的回答! 我希望你明白我的意思。
最佳答案
我假设我们处于典型的单页应用程序/Web 应用程序上下文中,具有分离的前端和后端 (api) 项目,通过(异步)HTTP 请求进行通信:
在这种情况下:是的,这将是安全的,因为您的前端首先不包含任何 protected 数据。服务器负责仅发送允许客户端拥有的数据。
在这种情况下,服务器对您的登录的具体响应并不重要。它可以是一个成功的 JSON 和一个 token 或当前用户对象和一个 cookie。重要的是你的前端现在知道服务器给它的 secret 。前端现在可以愉快地切换到另一个 View (请记住, View 最初不附带任何数据)并请求它想要显示的一些 protected 数据以及接收到的 secret 。
如果您欺骗前端认为您已登录,请求现在将失败(因为您从未从服务器获得 secret )并且您将坐在那里,盯着空白的 UI 和可能的错误消息.
关于您的最后一个问题,如果您被迫使用 PHP(或如此):否,但可以。您将需要在您的服务器端了解您的用户和他们的权限,决定允许谁查看或更改数据的东西,但不一定是 PHP。 Web 应用程序的常见服务器端语言是 Node.js、PHP 和 Python,但您绝不仅限于这些语言。
关于javascript - 处理前端登录的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53317312/