AI a bezpečnosť

AI asistent mi upravuje obsah webu, ale nemá administrátorský účet ani prístup do databázy. V LydiaCMS je to obyčajný používateľ s obmedzenými oprávneniami a všetko, čo urobí, sa zapíše do auditného logu. Rutinné úpravy textov, SEO a prekladov mu preto môžem zveriť a stále viem, čo sa zmenilo.

Čo sa môže pokaziť a čo s tým systém robí

Asistent urobí chybu

Každá zmena sa zapíše do auditného logu so starou a novou hodnotou a administrácia ju ukáže ako rozdiel. Vidím tak, kto zmenu vykonal a čo presne sa v texte zmenilo, a zlú úpravu vrátim jedným kliknutím.

Okno so zmenami v auditnom logu LydiaCMS: rozdiel názvu stránky a tlačidlo „Vrátiť túto zmenu“
Rozdiel zmeny v histórii záznamu s tlačidlom na jej vrátenie. Vrátenie sa zapíše ako nová zmena, takže sa dá samo vrátiť späť.

Zmenu je možné vrátiť len vtedy, keď sa záznam odvtedy nezmenil. Ak áno, systém vrátenie odmietne a vypíše, ktoré polia sa medzitým zmenili, takže sa neprepíše novšia práca. Vracanie sa týka stránok a ďalších obsahových záznamov. Pri používateľoch a rolách ho zámerne nenaponúkam.

Asistent chce viac, než smie

MCP server beží pod konkrétnym používateľom a každá operácia prechádza rovnakou kontrolou oprávnení (ACL) ako administrácia. Asistent nemôže spravovať používateľov ani roly a nikto nemôže prideliť viac práv, než má sám. Ako sa oprávnenia dedia po strome kontextov, popisuje Architektúra.

Do obsahu sa dostane škodlivý kód

HTML sa pri ukladaní filtruje podľa zoznamu povolených značiek a atribútov (HTMLPurifier). Skripty a nepovolené atribúty sa z obsahu odstránia bez ohľadu na to, kto ho poslal.

Server volá niekto nepovolaný

Nástroje s oprávnením vyžadujú zdieľaný token. Keď nie je token nastavený, server nepustí nikoho. Token sa číta z prostredia až pri volaní, takže nekončí v skompilovanom DI kontajneri.

Ako to používam

Takto upravujem aj obsah tohto webu: texty stránok, ich SEO vlastnosti (slug, titulok, popis), nahrávanie obrázkov a preklady. Nástroje vznikajú z registrovaných endpointov administračného API a volajú sa podľa nich, napríklad core_pages_update alebo core_translations_set. Ďalšie balíčky pridávajú vlastné nástroje, napríklad správu miest a krajín v balíčku location.

Pod pokrievkou: jedno API, dva transporty

  • Lokálne STDIO v lydiacms/core. MCP klient spustí lydiacms:mcp cez Docker, CLI alebo SSH, takže nie je potrebný žiadny verejný HTTP endpoint.
  • Streamable HTTP v lydiacms/api. Rovnaké schopnosti je možné vzdialene sprístupniť cez /api/mcp a overovať webservice Bearer tokenom. Vzdialený prístup sa musí zapnúť výslovne.

← LydiaCMS