소스 검색

Taak 130-A: echte oorzaak van de OneAll security-fout gevonden

Niet de route maar de ontbrekende application_orderid/oas in de URL.
Cookies en reCAPTCHA nagemeten en uitgesloten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 6 시간 전
부모
커밋
82c2c337b9
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      TASKS.md

+ 1 - 1
TASKS.md

@@ -2207,7 +2207,7 @@ OneAll als client. Er verandert dus niets aan de Facebook-instellingen van de si
 
 | # | Wie | Wat |
 |---|---|---|
-| **130-A** | Bob | Upgrade naar Personal Advanced. ⚠️ **De upgrade-URL die Bob had (`/order/upgrade/billing-address/`) geeft een security-fout** — dat is een losse wizard-stap zonder `applicationid` en redirect weg. **Juiste route: Sites → uitgaanskrant.com → Subscription Plan → Change Plan** (`/applications/application/order/switch/plans/?applicationid=791421&subscription_planid=20`) → *Upgrade to Advanced*. Betaalmethode + factuuradres staan al goed. Let op: huidig plan is **Annual** Starter ($116,16/jaar, loopt tot 13-06-2027), dus de overstap wordt verrekend — niet de losse $34 |
+| **130-A** | Bob | Upgrade naar Personal Advanced. ⚠️ **"A security error has occurred" bij het upgraden = je zit op de billing-address-URL ZONDER parameters.** De wizard maakt bij *Upgrade to Advanced* een order aan en draagt `applicationid` + `application_orderid` + `oas` mee in elke stap; het formulier post naar diezelfde URL. Ververs je die pagina of open je 'm los uit je geschiedenis, dan zijn die weg en faalt élke submit — herhaaldelijk, want je blijft op de kapotte pagina. **Fix: opnieuw beginnen bij Change Plan** (`/applications/application/order/switch/plans/?applicationid=791421&subscription_planid=20`) → *Upgrade to Advanced* = `&action=switch_plan&subscription_planid=40&billing_period=annually` (30 = Standard). Dan komt er een vers ordernummer en werkt het formulier gewoon. Niet de schuld van cookies of reCAPTCHA — beide nagemeten en in orde; de 503's op google-analytics/googletagmanager zijn Bob's DNS-sinkhole en raken de flow niet. Adres is leeg bij een upgrade (bewust, opnieuw bevestigen); kaart ...8826 staat al klaar. Huidig plan is **Annual** Starter ($116,16/jaar tot 13-06-2027), dus de overstap wordt verrekend |
 | **130-B** | ✅ **Besloten 2026-09-21** | **Automatisch account aanmaken.** De callback maakt zelf een Drupal-account op het *geverifieerde* e-mailadres van het netwerk; zonder geverifieerd e-mailadres weigeren we. Gebruikersnaam afleiden en op uniciteit controleren. `registration_method = manual` in de module blijft ongemoeid — dat geldt alleen voor de website |
 | **130-C** | ✅ **Besloten 2026-09-21** | **Geen iOS op korte termijn** → Apple-login overslaan. Play kent geen tegenhanger van richtlijn 4.8. De provider is een parameter in de URL, dus later bijzetten raakt de app-kant niet. Blijft open punt zodra iOS aan de beurt komt |
 | **130-D** | ✅ **Code klaar** (2026-09-21), Bob deployt | `custom.social_login_app.inc` — callback die de token inwisselt (hergebruikt `social_login_core_get_settings()` / `_do_api_request()` / `_get_user_for_user_token()` / `_get_uid_for_email()` / `_map_identity_token_to_user_token()`), inlogt met `user_login_finalize()` en de sessie onder de `state` in de cache-bin legt (TTL 5 min, eenmalig). `php -l` schoon op PHP 8.1. Staat in `~/tmp/` op aegir-o1 |