BeziWorld Activity Log

Popis

BeziWorld Activity Log zaznamenává, co uživatelé na vašem webu WordPress dělají: kdo se přihlásil, komu se přihlášení nezdařilo, kdo změnil roli, kdo upravil svůj profil, kdo vytvořil nebo upravil obsah a další. Zaměřuje se na aktivitu uživatelů a jeho cílem je zpřístupnit zdarma funkce, které si konkurenční pluginy vyhrazují pro placené aktualizace.

Navrženo s ohledem na výkon. Události se ukládají do speciální indexované vlastní tabulky (nikdy do wp_posts) a zapisují se v dávkách, aby se minimalizovala zátěž při odesílání požadavků, přičemž události související s bezpečností se ukládají okamžitě. Funkce promezování uchovávání dat automaticky udržuje tabulku v úsporném stavu.

Navrženo pro zajištění důvěryhodnosti. Každá událost je podepsána pomocí HMAC specifického pro daný web a začleněna do řetězce kontrolních bodů propojených hash funkcemi, díky čemuž je možné odhalit jakékoli dodatečné zásahy – včetně vkládání či mazání řádků. Protože útočník s plným přístupem k serveru by mohl přepočítat lokální podpisy, lze podpis posledního kontrolního bodu ukotvit mimo hostitele (zaslat e-mailem nebo odeslat na webhook), takže důkaz integrity opouští stroj.

Navrženo s ohledem na ochranu soukromí. Zaznamenávání IP adres je volitelné a lze je při sběru anonymizovat. Plugin nikdy nekomunikuje s domovským serverem a nikdy nenahrává kód z externích serverů.

Hlavní body

  • Ověřování a aktivita na účtu: přihlášení, odhlášení, neúspěšná přihlášení (s omezením frekvence, aby se zabránilo zahlcení protokolu), registrace, změny rolí, změny profilu a metadat uživatele, resetování hesel, hesla pro aplikace, smazání uživatele.
  • Aktivity týkající se obsahu: vytvoření a aktualizace příspěvků, stránek a vlastních typů příspěvků (včetně porovnání změn na úrovni polí), změny stavu, přesunutí do koše, obnovení a trvalé smazání; komentáře, multimediální soubory a termíny taxonomie.
  • Přehledný a přehledný prohlížeč událostí s indikátory závažnosti, rozbalitelnými řádky s podrobnostmi, tříděním, filtrováním a fulltextovým vyhledáváním.
  • Podrobné nastavení: zapnutí nebo vypnutí celých skupin událostí či jednotlivých událostí.
  • Pravidla pro vyloučení podle IP adresy/CIDR, přihlašovacího jména uživatele, ID uživatele, role a cesty požadavku.
  • Změny v pluginech a šablonách, nastavení, navigační nabídky a životní cyklus žádostí o osobní údaje v rámci GDPR.
  • Volitelné integrace: WooCommerce (objednávky, změny stavu, skladové zásoby) a Yoast SEO (metadata a nastavení).
  • Oznámení v reálném čase – přes Slack, Discord, Telegram, e-mail a obecný webhook – podle naléhavosti nebo zadaných kódů událostí, zasílaná okamžitě nebo v hodinovém souhrnu. Zdarma.
  • Volitelná geolokace při přihlášení (prostřednictvím vámi zvoleného poskytovatele) s automatickým upozorněním v případě přihlášení z nové země.
  • Plánované souhrnné zprávy ve formátu HTML zasílané správci e-mailem (denně nebo týdně).
  • Statistická obrazovka s grafem denního objemu a rozpisem podle kategorií, uživatelů a událostí.
  • Správa aktivních relací: zjistěte, kdo je přihlášen, a ukončete relace. Zdarma.
  • Ochrana proti neoprávněné manipulaci: HMAC pro každý řádek plus sekvence kontrolních bodů propojených hash řetězcem s volitelným ukotvením mimo hostitelský server (e-mail/webhook), ověřitelné pomocí WP-CLI (wp bzal verify-integrity).
  • Oznámení v reálném čase se spouštějí také na základě vybrané sady kódů událostí, a to bez ohledu na jejich naléhavost.
  • Nastavitelná úroveň závažnosti pro jednotlivé kódy událostí, která určuje vzhled oznámení a bezpečnostního štítku.
  • Volitelná detekce anomálií: označuje náhlé hromadné mazání dat jedním uživatelem a přihlášení správce mimo pracovní dobu jako výstrahy s vysokou úrovní závažnosti.
  • Rychlý přehled v administrační liště: nejnovější události a 24hodinový bezpečnostní symbol na každé obrazovce.
  • Zobrazení „Uživatelé online“: přehled uživatelů, kteří jsou právě přihlášeni, včetně jejich poslední akce, času a IP adresy.
  • Export filtrovaného protokolu do formátu CSV a JSON s ochranou proti vkládání vzorců z tabulkových procesorů.
  • Přístup pro čtení prostřednictvím rozhraní REST API (stránkování pomocí offsetu a kurzoru, včetně koncového bodu pro ověření integrity) a volitelně také prostřednictvím GraphQL, s omezením podle oprávnění.
  • Podrobné nastavení: zapnutí/vypnutí celých skupin událostí nebo jednotlivých událostí; pravidla pro vyloučení podle IP adresy/CIDR, uživatele, role a cesty.
  • Nastavitelná doba uchovávání s čištěním na vyžádání; ukládání v UTC s zobrazením ve vámi zvoleném časovém pásmu.
  • Plně lokalizovatelné, včetně přiložených překladů do polštiny, němčiny a češtiny.

Externí služby

Tento plugin funguje zcela offline. Samostatně se nepřipojuje k žádné externí službě. Následující volitelné integrace jsou ve výchozím nastavení deaktivovány a komunikují výhradně s cílovým serverem, který zadáte v nastavení; každá z nich odesílá krátké shrnutí zaznamenané události (například popis události, přihlašovací údaje uživatele, který akci provedl, čas a – je-li povoleno zaznamenávání IP adres – IP adresu) v okamžiku, kdy k události dojde, nebo v režimu souhrnu jednou za hodinu.

  • Slack — po zadání URL příchozího webhooku služby Slack se odpovídající události odesílají metodou POST na tento webhook. Viz Směrnice služby Slack (https://slack.com/terms-of-service) a Zásady ochrany osobních údajů (https://slack.com/trust/privacy/privacy-policy).
  • Discord — při zadání URL webhooku Discord se odpovídající události odesílají metodou POST na tento webhook. Viz Podmínky služby Discord (https://discord.com/terms) a Zásady ochrany osobních údajů (https://discord.com/privacy).
  • Telegram — po zadání tokenu bota Telegramu a ID chatu jsou odpovídající události odesílány prostřednictvím rozhraní Telegram Bot API na adrese api.telegram.org. Viz Podmínky služby Telegram (https://telegram.org/tos) a Zásady ochrany osobních údajů (https://telegram.org/privacy).
  • Obecný webhook — pokud zadáte vlastní adresu URL webhooku (pro oznámení nebo pro ověření integrity mimo hostitele), bude příslušná data odeslána metodou POST na tuto adresu. Cílová adresa je vaše; prostudujte si podmínky a zásady ochrany osobních údajů jejího poskytovatele.
  • Geolokace při přihlášení — je deaktivována, pokud ji nezapnete a nepřipojíte poskytovatele prostřednictvím filtru bzal_geolocate_country. Plugin neobsahuje žádného poskytovatele geolokace a sám o sobě neprovádí žádné geolokační dotazy; veškeré vyhledávání provádí vámi zadaný poskytovatel v souladu s jeho podmínkami.

Souhrnné zprávy a oznamovací e-maily jsou odesílány prostřednictvím vlastního poštovního systému WordPress vašeho webu příjemcům, které nastavíte; tento plugin je neodesílá žádné třetí straně.

Snímky obrazovky

Instalace

  1. Nahrajte složku beziworld-activity-log do adresáře /wp-content/plugins/.
  2. Plugin aktivujte na obrazovce Pluginy ve WordPressu.
  3. V administrátorském menu otevřete Protokol aktivit, kde si můžete prohlédnout události, a Protokol aktivit Nastavení, kde můžete nastavit dobu uchovávání, události a vyloučení.

Nejčastější dotazy

Kde se události ukládají?

V samostatných databázových tabulkách vytvořených při aktivaci, nikoli v tabulce příspěvků WordPressu, takže to nijak neovlivní vaše dotazy týkající se obsahu.

Zpomalí to můj web?

Nekritické události se ukládají do vyrovnávací paměti a při ukončení systému se zapisují v jediném hromadném dotazu; bezpečnostní události se zapisují okamžitě. Díky indexovaným sloupcům zůstává prohlížeč svižný i při práci s rozsáhlými protokoly.

Rozpozná plugin změny provedené přímo v databázi?

Ne. Stejně jako každý záznamník aktivit založený na háčcích zaznamenává akce, které procházejí systémem WordPress. Přímé úpravy v jazyce SQL obcházejí háčky WordPressu a nelze je sledovat.

Odesílá to moje data někam?

Ne. Nedochází k žádnému sledování ani sběru dat a plugin nikdy nenačítá kód z externích serverů. Jediné odchozí požadavky se týkají volitelných integrací popsaných níže v části „Externí služby“ – všechny jsou ve výchozím nastavení vypnuté a odesílají se pouze na koncový bod, který si sami nakonfigurujete.

Obsahuje příkazy WP-CLI?

Ano:

  • wp bzal verify-integrity — ověří podpisy jednotlivých řádků a řetězec kontrolních bodů a nahlásí jakékoli zjištěné neoprávněné zásahy.
  • wp bzal checkpoint — okamžitě vytvoří nový kontrolní bod integrity.
  • wp bzal purge — okamžitě použít zásady uchovávání.
  • wp bzal stats — vypíše počet zaznamenaných událostí pro aktuální web.

Mohou vývojáři tuto funkci rozšířit?

Ano. Plugin poskytuje háčky pro integraci:

  • do_action( 'bzal_event_logged', array $columns ) — spustí se po uložení každé události; přijímá mapu sloupců události pro předání do vašich vlastních systémů.
  • apply_filters( 'bzal_geolocate_country', string $country, string $ip ) — vrátí kód země podle normy ISO pro danou IP adresu, který lze využít pro volitelnou geolokaci při přihlášení (není součástí balíčku žádný poskytovatel).
  • apply_filters( 'bzal_user_meta_denied', bool $denied, string $meta_key ) — vrátí hodnotu true, pokud má být konkrétní klíč uživatelských metadat z protokolu vynechán.
  • do_action( 'bzal_plugin_booted' ) — spustí se po dokončení načítání pluginu a slouží k registraci vlastních rozšíření.

Recenze

Pro tento plugin nejsou žádné recenze.

Autoři

BeziWorld Activity Log je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.

Spolupracovníci

Plugin „BeziWorld Activity Log“ byl přeložen do 1 jazyku. Děkujeme všem překladatelům za jejich pomoc.

Přeložte “BeziWorld Activity Log” do svého jazyka.

Zajímá vás vývoj?

Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.

Přehled změn

0.5.1

  • Zabezpečení: vstupní data v nastaveních jsou nyní zbavena lomítek a očištěna již v místě přístupu, nikoli až na úrovni pomocných funkcí, čímž jsou splněny požadavky statické analýzy Plugin Check.
  • Bylo odstraněno nadbytečné volání funkce load_plugin_textdomain(); balíčky překladů do polštiny, němčiny a češtiny se nyní načítají prostřednictvím funkce „just-in-time“ v systému WordPress (byly deklarovány hlavičky Text Domain a Domain Path).

0.5.0

  • Senzory pro obsah, komentáře, média, taxonomii, nabídky, pluginy/šablony, nastavení, žádosti podle GDPR a metadata uživatelů.
  • Integrace WooCommerce a Yoast SEO (načtou se pouze v případě, že jsou aktivní).
  • Oznámení v reálném čase: Slack, Discord, Telegram, e-mail, obecný webhook – podle naléhavosti nebo na základě zvolených kódů událostí; okamžité nebo hodinové souhrnné zprávy.
  • Volitelná geolokace při přihlášení s upozorněním na přihlášení z jiné země.
  • Plánované souhrnné zprávy ve formátu HTML; statistická obrazovka s grafy; rychlý náhled na panelu správce s bezpečnostním štítkem.
  • Správa aktivních relací; export do formátu CSV/JSON s ochranou proti vložení vzorců.
  • Kontrolní body integrity s řetězením hashů a volitelným ukotvením mimo hostitele a wp bzal verify-integrity; rozdělené podle jednotlivých webů v sítích s více weby.
  • REST (offset + stránkování pomocí kurzoru + koncový bod pro zajištění integrity) a volitelný přístup pro čtení přes GraphQL; pokročilé filtry; widget pro dashboard; korelace událostí v rámci jednoho požadavku.
  • Řetězec integrity rozdělený podle jednotlivých lokalit v prostředí s více lokalitami; volitelné fulltextové indexování obsahu dat událostí.
  • Nastavitelná závažnost jednotlivých událostí a volitelná detekce neobvyklého chování (náhlé hromadné mazání, přihlášení správce mimo pracovní dobu).
  • Rychlé fulltextové vyhledávání (MySQL FULLTEXT) ve sloupcích objektů událostí, uživatelů a zpráv, s alternativou vyhledávání pomocí operátoru LIKE a volitelným režimem, který indexuje také obsah dat události.

0.1.0

  • První verze: ukládání do vlastních tabulek, kontrola integrity pomocí HMAC pro každý řádek, senzor pro ověřování a účty, prohlížeč událostí, konfigurovatelná doba uchovávání s čištěním na vyžádání, přepínání událostí a pravidla pro vyloučení.