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.
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
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.
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.
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.
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.
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.
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.
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
- 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.
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.