feat: ochrona przed podwójnym składaniem zamówienia (order submit token)
Token CSRF w sesji zapobiega duplikowaniu zamówień przy wielokrotnym kliknięciu przycisku. Przy duplikacie przekierowanie do istniejącego zamówienia. JS naprawiony — nasłuch na submit formularza zamiast click. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,16 @@ Logi zmian z migracji na Domain-Driven Architecture. Najnowsze na gorze.
|
||||
|
||||
---
|
||||
|
||||
## ver. 0.333 (2026-03-10) - Ochrona przed podwójnym składaniem zamówienia (order submit token)
|
||||
|
||||
- **NEW**: `ShopBasketController` — mechanizm tokenu CSRF chroniący przed podwójnym składaniem zamówienia (generowanie, walidacja, konsumpcja tokenu w sesji)
|
||||
- **NEW**: `ShopBasketController::basketSave()` — przy duplikacie przekierowanie do istniejącego zamówienia zamiast tworzenia kolejnego
|
||||
- **FIX**: `templates/shop-basket/summary-view.php` — JS nasłuchuje na `submit` formularza zamiast `click` przycisku (poprawna obsługa walidacji HTML5)
|
||||
- **FIX**: `templates/shop-basket/address-form.php` — ukryte pole `order_submit_token` z escape XSS
|
||||
- **TESTS**: `ShopBasketControllerTest` — testy konstruktora i zależności (5 testów)
|
||||
|
||||
---
|
||||
|
||||
## ver. 0.332 (2026-03-01) - API produktów: nowe pola new_to_date i additional_message
|
||||
|
||||
- **NEW**: `ProductRepository::getProductForApi()` — eksportuje 4 nowe pola: `new_to_date`, `additional_message` (int 0/1), `additional_message_required` (int 0/1), `additional_message_text`
|
||||
|
||||
@@ -23,10 +23,10 @@ composer test # standard
|
||||
## Aktualny stan
|
||||
|
||||
```text
|
||||
OK (807 tests, 2258 assertions)
|
||||
OK (810 tests, 2264 assertions)
|
||||
```
|
||||
|
||||
Zweryfikowano: 2026-03-01 (ver. 0.332)
|
||||
Zweryfikowano: 2026-03-10 (ver. 0.333)
|
||||
|
||||
## Konfiguracja
|
||||
|
||||
@@ -89,6 +89,8 @@ tests/
|
||||
| |-- ShopStatusesControllerTest.php
|
||||
| |-- ShopTransportControllerTest.php
|
||||
| `-- UsersControllerTest.php
|
||||
| |-- front/Controllers/
|
||||
| | `-- ShopBasketControllerTest.php
|
||||
| `-- api/
|
||||
| |-- ApiRouterTest.php
|
||||
| `-- Controllers/
|
||||
|
||||
Reference in New Issue
Block a user