blessing-skin-server/app
shhzhang 3d42aab16d [Security] Dynamic Email Verification & Password Reset Links
**Problem**
1. **Static Signature Vulnerability**:
   - Email verification links used a static signature algorithm (same link for lifetime), allowing account hijacking if links were leaked.
   - *Worst-case scenario*: Compromised AppKey + leaked link → full-site account under danger.
2. **Overly Long Reset Window**:
   - Password reset links remained valid for 1 hour, enabling attackers to hijack accounts if intercepted.
   - *Worst-case scenario*: Compromised AppKey + leaked link → full-site account account take over.

 **Solution**
- **Email Verification**:
  - Replaced static signatures with **HMAC-SHA256 + timestamp + nonce**.
  - Links are now **one-time-use** and expire immediately after verification.
- **Password Reset**:
  - Reduced validity window from 1h → **5 minutes**.
  - Added rate limiting to prevent brute-force attacks.

 **Impact**
- **Closed Communities**: Critical for real-name systems (e.g., gaming, enterprise).
- **AppKey Leak Mitigation**: Even with leaked AppKey, intercepted links are now useless.

The commit message is translated by Deepseek due to my poor English.
2026-01-24 23:16:39 +08:00
..
Console revert auto load Console commands 2023-05-30 15:09:39 +08:00
Events use PHP 7.4 syntaxes 2020-10-14 09:48:45 +08:00
Exceptions style: format code 2024-01-12 20:37:11 +08:00
Http [Security] Dynamic Email Verification & Password Reset Links 2026-01-24 23:16:39 +08:00
Listeners [Security] Dynamic Email Verification & Password Reset Links 2026-01-24 23:16:39 +08:00
Mail feat: add Auto-Submitted header to emails 2025-10-09 01:54:37 +08:00
Models [Security] Dynamic Email Verification & Password Reset Links 2026-01-24 23:16:39 +08:00
Notifications BREAKING: get ready for Laravel 10 2023-05-30 14:56:27 +08:00
Observers BREAKING: increase PHP version requirement to 8.1.0 2023-05-30 16:43:57 +08:00
Providers style: apply php-cs-fixer fixes 2025-06-28 06:17:40 +08:00
Rules fix player name rule 2021-08-22 16:45:26 +08:00
Services chore: complete Facade namespaces in use statements 2025-07-02 19:29:19 +08:00
helpers.php first argument of option() function is required 2023-01-25 11:45:33 +08:00