Databáze
Všechny dotazy používají připravené výrazy PDO. Třída chyb typu SQL injection je vyřešena architektonicky, ne ručním ošetřováním.
Pod pokličkou
Čistá architektura bez zbytečné složitosti. Bezpečnost je součástí návrhu, ne dodatečná záplata.
| Jazyk | PHP 8.5 |
|---|---|
| Databáze | MariaDB / MySQL, přístup přes PDO |
| Webserver | Apache s čistými URL (mod_rewrite), PHP-FPM |
| Frontend | HTML, CSS, JavaScript (jQuery, Bootstrap), témata v samostatných složkách |
| AI | API Anthropic (modely Haiku a Sonnet) pro pomoc s textem a vyladění SEO a GEO |
| Editor a soubory | TinyMCE, elFinder |
| Struktura | Moduly (kontroler + repozitář + šablony), databázové migrace číslované po řadě |
Všechny dotazy používají připravené výrazy PDO. Třída chyb typu SQL injection je vyřešena architektonicky, ne ručním ošetřováním.
Hesla se ukládají jako hash (password_hash), po přihlášení se obnovuje identifikátor relace a přihlášení je chráněno omezením počtu pokusů.
Odkaz s jednorázovým tokenem s platností jedné hodiny. V databázi je uložen jen otisk, ne samotný token. Odpověď nikdy neprozradí, zda účet existuje.
CSRF token u všech odesílaných formulářů, escapování všech výstupů a tříúrovňová ochrana veřejných formulářů proti spamu (skryté pole, časové razítko, omezení počtu odeslání).
Oprávnění se kontrolují na úrovni každého modulu. Uživatel vidí a upravuje jen to, k čemu má přístup.
Změny v administraci se zapisují do auditního logu, takže je dohledatelné, kdo co upravil.
Instalace probíhá spuštěním databázových migrací. Novou verzi lze nasadit přímo z administrace ze ZIP archivu: systém provede kontrolu, vytvoří zálohu (uchovává posledních pět), nasadí soubory a v případě potřeby umí vrátit předchozí stav. Konfigurace, nahrané soubory a přístupové údaje zůstávají při aktualizaci nedotčeny.