Radix
radixphp.se

Releaser & uppdateringar

En översikt av förändringar i Radix. För fullständig historik och taggar/versioner, se GitHub‑releaser.

v1.2.3 Förstärkt säkerheten vid filuppladdning.

Framework
Säkerhet
Förstärkt säkerheten vid filuppladdning.
file_type-validering kontrollerar nu filens faktiska MIME-typ via finfo, i stället för att lita på klientens type-fält.
Upload::save() kräver nu att uppladdningen har status UPLOAD_ERR_OK innan filen sparas.
Automatiskt genererade filnamn använder nu kryptografiskt säkra slumpvärden.
Filändelser för automatiskt genererade uppladdningar baseras nu på detekterad MIME-typ.
Egna filnamn vid uppladdning begränsas nu till säkra tecken och basename-format för att motverka path traversal.

Fixar
Förhindrar att klientstyrda filändelser används vid genererade uppladdningsnamn.
Förhindrar path traversal via egna filnamn vid uppladdning.
Förbättrad hantering av ogiltigt eller saknat tmp_name.
Förbättrad filstorleksvalidering genom tydligare kontroll av size-fältet.
Förbättrad MIME-validering för uppladdade filer.

Krav
Lagt till explicit Composer-krav på ext-fileinfo för MIME-detektering.
Lagt till explicit Composer-krav på ext-gd för bildhantering.

Kvalitet
Alla tester passerar i CI.
PHPStan passerar.
Infection passerar med full mutationstäckning:
5128 mutanter genererade
5128 mutanter dödade
Mutation Code Coverage: 100%
Covered Code MSI: 100%

Noteringar
Denna release skärper valideringen av filuppladdningar. Applikationer som använder riktiga PHP-uppladdningar via $_FILES bör fungera som tidigare, men med säkrare validering.

Tester eller integrationer som använder mockade filuppladdningar kan behöva säkerställa att tmp_name pekar på en riktig läsbar fil, eftersom file_type nu kontrollerar faktisk MIME-typ från filinnehållet.

v1.4.0 Uppdatering till Radix Framework v1.2.2

App
Radix App är uppdaterad till radix-framework v1.2.2.

Den här releasen uppdaterar .env.example och Infection schedule med SESSION_COOKIE_NAME, så appen matchar den nya sessionscookie-valideringen i frameworket.

För production rekommenderas ett app-specifikt __Host--prefixat cookie-namn, t.ex:

dotenv SESSION_COOKIE_NAME=__Host-din_app_session SESSION_COOKIE_SECURE=true

v1.2.2 Förbättrad sessionscookie-säkerhet

Framework
Den här releasen lägger till stöd för konfigurerbart sessionscookie-namn via SESSION_COOKIE_NAME.

Nytt
Ny miljövariabel: SESSION_COOKIE_NAME
Stöd för säkra cookie-prefix, t.ex. __Host- och __Secure-
Validering av sessionscookie-namn i EnvValidator
Säkerhetsregler för cookie-prefix:
__Host- kräver SESSION_COOKIE_SECURE=true
__Secure- kräver SESSION_COOKIE_SECURE=true
SameSite=None kräver Secure=true
SESSION_COOKIE_SECURE=auto tillåts endast utanför production
Rekommenderad production-konfiguration
dotenv SESSION_COOKIE_NAME=__Host-din_app_session SESSION_COOKIE_SECURE=true SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax

Rekommenderad development-konfiguration
dotenv SESSION_COOKIE_NAME=radix_session SESSION_COOKIE_SECURE=auto SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax

Kommentar
Detta gör det möjligt för applikationer som använder Radix att sätta egna, app-specifika sessionscookie-namn och samtidigt använda moderna cookie-prefix för bättre skydd mot
cookie-relaterade attacker.

v1.3.9 Fix Åtgärdade PHPStan-varning

App
Åtgärdade PHPStan-varning i kontaktformulärets kontroll av blockerade e-postadresser.
Tog bort redundant is_callable()-kontroll efter class_exists().
Kontaktformuläret fortsätter stödja valfri blocked-email scaffold utan att ge fel i statisk analys.

v1.3.8 Förbättrat CSRF-skyddet för sökfunktioner

App
JavaScript-baserade sökningar som använder POST skickar nu CSRF-token till backend,
och sök-API:erna valideras via CSRF-middleware. Vanliga GET-baserade sökformulär
fortsätter fungera som tidigare utan CSRF-token i URL:en.

Detta stärker skyddet för session-baserade API-anrop utan att påverka normal sökning, filtrering eller paginering.

v1.3.7 E-postblockering för kontaktformulär

App
Vi har lagt till stöd för att manuellt blockera e-postadresser från att skicka meddelanden via kontaktformuläret.
Moderatorer och administratörer kan nu hantera en blocklista i administrationsgränssnittet. Om ett meddelande skickas från en blockerad e-postadress stoppas utskicket, samtidigt som avsändaren får samma neutrala bekräftelse som vanligt.
Innehåller

Ny blocklista för e-postadresser

Adminvy för att lista, söka och ta bort blockerade adresser
Formulär för att lägga till ny blockerad e-postadress med valfri anledning
Koppling till användaren som skapade blockeringen

Sökstöd i administrationsvyn

Bekräftelsemodal vid borttagning
Kontaktformuläret kontrollerar blocklistan innan mail skickas
Funktionen är scaffold-anpassad och fungerar även om adminmodulen inte är installerad

Syfte

Detta ger ett extra skyddslager mot spam utöver befintligt honeypot-skydd. Funktionen är särskilt användbar när en spamadress har lyckats ta sig igenom formulärskyddet och behöver stoppas manuellt framöver.

v1.3.6 Fix CI-körningen

App
Fixar CI-körningen för schemalagd Infection genom att komplettera den genererade .env-filen
med saknade miljövariablerför geolocation och sessionscookies. Detta gör att appens env-
validering passerar innan scaffolds installeras i GitHub Actions.

v1.2.1 Underhåll

Framework
Uppdaterat GitHub Actions workflows för Node.js 24 kompatibilitet.
Uppdaterat actions/checkout från v4 to v5.
Uppdaterat actions/upload-artifact från v4 till v5.

v1.3.5 Fix: stabilisera mobilpaginering

App
Stabilisera mobilpaginering

- Förhindrar hopp/blink vid pagination på mobil när sökfält är fokuserat
- Behåller tidigare layout och horisontell scroll för många sidor
- Bevarar temastyrda pager-färger via CSS-variabler

v1.3.4 Updatering Radix App till Radix Framework v1.2.0.

App
Uppdaterat
Uppdaterat mattablues/radix-framework till ^1.2.
Synkat starter-applikationen med ramverkets förbättrade GeoLocator-stöd.
Uppdaterat Composer-låsningen så nya installationer använder Radix Framework 1.2.x.
GeoLocator
Appen använder nu ramverkets förbättrade GeoLocator-konfiguration.
Stöd för .env-styrning via:
GEOLOCATOR_ENABLED
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
LOCATOR_COUNTRY
LOCATOR_CITY
Säkerhet
Synkad med ramverkets förbättringar kring security headers och säkrare standardinställningar.
Fortsatt stöd för sessionsinställningar via .env.
Notering
Detta är en minor release inom 1.x-serien och är avsedd att vara bakåtkompatibel.
Saknar du en detalj här? Se GitHub‑releaser för komplett historik.

Cookies & integritet

Vi använder nödvändiga cookies för grundfunktioner och säkerhet (t.ex. att komma ihåg ditt val här och skydda formulär). Om du använder administrativa delar kan sessionscookies även förekomma vid inloggning. Läs mer.