angular - Angular 在浏览器地址栏中公开登录名和密码
问题描述
我有一个 Angular 9 应用程序。有时(非常罕见)当我的身份验证数据直接暴露在浏览器地址栏中时,我会遇到问题,例如,而不是
http://localhost:8080/#/application/48
出于某种原因,它看起来像
http://localhost:8080/?username=foo&password=bar#/application/48
这不是很常见,但无论如何。我在我的应用程序中使用了一个ng-idle
库。它使应用程序在一些空闲超时后返回登录页面。根据我的观察,在 ng-idle 工作完成后会出现问题。
问题是什么?有没有办法严格禁止曝光?
解决方案
可能您有一个正在使用用户名和密码提交的登录表单,这是 的默认行为form
,这是您可以停止提交表单并手动将表单提交到 API 的方法。
//HTML
<form (submit)="onSubmit($event)">
<input type="text" name="username">
<input type="password" name="password">
<button>Submit</button>
</form>
//TS
onSubmit(evt) {
evt.preventDefault();//Stops submitting form
//Call API to login
}
推荐阅读
- php - 如何分配一个来自 mysql 数据库的整数值以便在前端显示一个字符串?
- java - HPROF 每天进行转储
- reactjs - 如何在要测试的 React 组件中模拟自定义钩子?
- azure - 仅限注册页面的 Azure AD B2C 自定义策略
- vert.x - Vertx 中的集群事件总线如何工作?
- android - 无法将位图图像保存到 Android 中的新文件夹
- mapstruct - mapstruct - 更新现有 bean - 忽略所有子/嵌套 bean(数组列表、集合等)中的“id”字段
- php - PHP 警告:在 php 7.3 中使用 password_hash() 时使用未定义的常量 PASSWORD_ARGON2ID
- r - 使用 R 的 for 循环中可能存在的错误
- python - 在连接两个纬度和经度的线上的任意位置找到纬度和经度