mirror of
https://github.com/bitwarden/browser
synced 2024-12-23 16:41:48 +01:00
Remove password hint responses from API (#10523)
* Log reloading behavior * Remove hints from responses. changing password implies updating the hint, but no longer displays the old one. This is a security risk for shoulder surfing and breaks the escrow model we have where it is only shared via email when requested. * Update change password hint label
This commit is contained in:
parent
aa7c9685b6
commit
c2829cd71b
@ -51,6 +51,7 @@ export class WindowMain {
|
||||
// Perform a hard reload of the render process by crashing it. This is suboptimal but ensures that all memory gets
|
||||
// cleared, as the process itself will be completely garbage collected.
|
||||
ipcMain.on("reload-process", async () => {
|
||||
this.logService.info("Reloading render process");
|
||||
// User might have changed theme, ensure the window is updated.
|
||||
this.win.setBackgroundColor(await this.getBackgroundColor());
|
||||
|
||||
@ -65,6 +66,7 @@ export class WindowMain {
|
||||
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.session.clearCache();
|
||||
this.logService.info("Render process reloaded");
|
||||
});
|
||||
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
|
@ -62,10 +62,7 @@ export class ProfileComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
submit = async () => {
|
||||
const request = new UpdateProfileRequest(
|
||||
this.formGroup.get("name").value,
|
||||
this.profile.masterPasswordHint,
|
||||
);
|
||||
const request = new UpdateProfileRequest(this.formGroup.get("name").value);
|
||||
await this.apiService.putProfile(request);
|
||||
this.platformUtilsService.showToast("success", null, this.i18nService.t("accountUpdated"));
|
||||
};
|
||||
|
@ -111,7 +111,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="masterPasswordHint">{{ "masterPassHintLabel" | i18n }}</label>
|
||||
<label for="masterPasswordHint">{{ "newMasterPassHint" | i18n }}</label>
|
||||
<input
|
||||
id="masterPasswordHint"
|
||||
class="form-control"
|
||||
|
@ -83,7 +83,6 @@ export class ChangePasswordComponent
|
||||
this.router.navigate(["/settings/security/two-factor"]);
|
||||
}
|
||||
|
||||
this.masterPasswordHint = (await this.apiService.getProfile()).masterPasswordHint;
|
||||
await super.ngOnInit();
|
||||
|
||||
this.characterMinimumMessage = this.i18nService.t("characterMinimum", this.minimumLength);
|
||||
@ -138,7 +137,10 @@ export class ChangePasswordComponent
|
||||
}
|
||||
|
||||
async submit() {
|
||||
if (this.masterPasswordHint != null && this.masterPasswordHint == this.masterPassword) {
|
||||
if (
|
||||
this.masterPasswordHint != null &&
|
||||
this.masterPasswordHint.toLowerCase() === this.masterPassword.toLowerCase()
|
||||
) {
|
||||
this.platformUtilsService.showToast(
|
||||
"error",
|
||||
this.i18nService.t("errorOccurred"),
|
||||
|
@ -905,6 +905,9 @@
|
||||
"masterPassHint": {
|
||||
"message": "Master password hint (optional)"
|
||||
},
|
||||
"newMasterPassHint": {
|
||||
"message": "New master password hint (optional)"
|
||||
},
|
||||
"masterPassHintLabel": {
|
||||
"message": "Master password hint"
|
||||
},
|
||||
|
@ -1,10 +1,8 @@
|
||||
export class UpdateProfileRequest {
|
||||
name: string;
|
||||
masterPasswordHint: string;
|
||||
culture = "en-US"; // deprecated
|
||||
|
||||
constructor(name: string, masterPasswordHint: string) {
|
||||
constructor(name: string) {
|
||||
this.name = name;
|
||||
this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ export class ProfileResponse extends BaseResponse {
|
||||
name: string;
|
||||
email: string;
|
||||
emailVerified: boolean;
|
||||
masterPasswordHint: string;
|
||||
premiumPersonally: boolean;
|
||||
premiumFromOrganization: boolean;
|
||||
culture: string;
|
||||
@ -32,7 +31,6 @@ export class ProfileResponse extends BaseResponse {
|
||||
this.name = this.getResponseProperty("Name");
|
||||
this.email = this.getResponseProperty("Email");
|
||||
this.emailVerified = this.getResponseProperty("EmailVerified");
|
||||
this.masterPasswordHint = this.getResponseProperty("MasterPasswordHint");
|
||||
this.premiumPersonally = this.getResponseProperty("Premium");
|
||||
this.premiumFromOrganization = this.getResponseProperty("PremiumFromOrganization");
|
||||
this.culture = this.getResponseProperty("Culture");
|
||||
|
Loading…
Reference in New Issue
Block a user