Fix #124: Testerfolg in update.sh per Exit-Code statt Textsuche prüfen
This commit is contained in:
parent
eeeec1e94d
commit
222a581304
2 changed files with 11 additions and 3 deletions
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-10 – Fix: `update.sh` meldet Testfehler per Textsuche statt Exit-Code (Issue #124)
|
||||||
|
|
||||||
|
- **Niedrig:** `scripts/update.sh` prüfte den Erfolg der Test-Suite nicht über den Exit-Code von `tests/run.php`, sondern per `grep` nach den Wörtern „FEHLER“, „FAILED“, „fehlgeschlagen“ bzw. „failed“ im Test-Output. Diese Wörter kommen jedoch auch in Testdaten und erwarteten Fehlermeldungen bestandener Tests vor (z.B. Test 47 EventLog, Test 50 SMTP), sodass trotz „✓ Alle Tests bestanden“ eine falsche Warnung ausgegeben wurde. Zusätzlich war `TEST_EXIT=${PIPESTATUS[0]:-0}` wirkungslos, da `PIPESTATUS` sich nicht auf die vorangegangene Command-Substitution bezieht.
|
||||||
|
- **`scripts/update.sh`:** Exit-Code von `docker compose exec ... tests/run.php` wird nun direkt über `if TEST_OUTPUT=$(...); then ... else TEST_EXIT=$?; fi` erfasst (kompatibel mit `set -e`) und für die Erfolgsmeldung ausgewertet, statt den Output nach Schlüsselwörtern zu durchsuchen.
|
||||||
|
|
||||||
## 2026-07-10 – Fix: Session-Cookie ohne Secure-, HttpOnly- und SameSite-Attribute (Issue #121)
|
## 2026-07-10 – Fix: Session-Cookie ohne Secure-, HttpOnly- und SameSite-Attribute (Issue #121)
|
||||||
|
|
||||||
- **Mittel-Hoch:** `session_start()` wurde an acht Stellen (`src/Auth.php`, `src/View.php`, `src/Controllers/LoginController.php`) unkonfiguriert aufgerufen; `session.cookie_httponly`, `session.cookie_secure` und `session.cookie_samesite` liefen auf den PHP-Compiled-in-Defaults (aus/leer). Das Session-Cookie – Zugriff auf sämtliche Mandanten-/Steuerdaten – war damit per JavaScript auslesbar (volle Session-Übernahme bei jeder Art von XSS) und unterlag keiner `SameSite`-Beschränkung (CWE-614/CWE-1004).
|
- **Mittel-Hoch:** `session_start()` wurde an acht Stellen (`src/Auth.php`, `src/View.php`, `src/Controllers/LoginController.php`) unkonfiguriert aufgerufen; `session.cookie_httponly`, `session.cookie_secure` und `session.cookie_samesite` liefen auf den PHP-Compiled-in-Defaults (aus/leer). Das Session-Cookie – Zugriff auf sämtliche Mandanten-/Steuerdaten – war damit per JavaScript auslesbar (volle Session-Übernahme bei jeder Art von XSS) und unterlag keiner `SameSite`-Beschränkung (CWE-614/CWE-1004).
|
||||||
|
|
|
||||||
|
|
@ -323,12 +323,15 @@ if [[ "$OPT_NO_TESTS" == "true" ]]; then
|
||||||
warn "Tests übersprungen (--no-tests)"
|
warn "Tests übersprungen (--no-tests)"
|
||||||
else
|
else
|
||||||
info "Führe Test-Suite aus..."
|
info "Führe Test-Suite aus..."
|
||||||
TEST_OUTPUT=$(docker compose exec -T web php /var/www/html/tests/run.php 2>&1) || true
|
if TEST_OUTPUT=$(docker compose exec -T web php /var/www/html/tests/run.php 2>&1); then
|
||||||
TEST_EXIT=${PIPESTATUS[0]:-0}
|
TEST_EXIT=0
|
||||||
|
else
|
||||||
|
TEST_EXIT=$?
|
||||||
|
fi
|
||||||
|
|
||||||
echo "$TEST_OUTPUT" | while read -r line; do info "$line"; done
|
echo "$TEST_OUTPUT" | while read -r line; do info "$line"; done
|
||||||
|
|
||||||
if echo "$TEST_OUTPUT" | grep -q "FEHLER\|FAILED\|fehlgeschlagen\|failed"; then
|
if [[ "$TEST_EXIT" -ne 0 ]]; then
|
||||||
warn "Einige Tests sind fehlgeschlagen – bitte prüfen"
|
warn "Einige Tests sind fehlgeschlagen – bitte prüfen"
|
||||||
warn "Vollständiger Testlauf: docker compose exec web php tests/run.php"
|
warn "Vollständiger Testlauf: docker compose exec web php tests/run.php"
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue