Potential fix for code scanning alert no. 1: Clear text storage of sensitive information #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/nawapon2001/TH-shop/security/code-scanning/1
To fix this issue, we must ensure that passwords are never stored in cleartext in localStorage. Instead, we should hash or symmetrically encrypt passwords before storage. Since localStorage operates in the browser without backend support, hashing with a random salt per user (as backend systems do) is impractical and would prevent password verification. Instead, a lightweight client-side encryption (e.g., via Web Crypto API) can be used. For a quick fix, we can symmetrically encrypt the password before storage and decrypt it only when necessary (preferably never in the client; just compare encrypted values). For demo purposes, the encryption can use a hardcoded key or be derived from a configuration/environment variable.
We need to:
loadAdminsto decrypt passwords if needed. But ideally, never show password values.Key changes:
addAdminto encryptpbefore storage.Suggested fixes powered by Copilot Autofix. Review carefully before merging.