Terug naar hoofdinhoud
Login in Joomla
Op deze pagina
# Topics

Login in Joomla

14 juni 2026

Elke Joomla-website heeft een ingang. Je loopt er doorheen telkens wanneer je /administrator/ opent en je gebruikersnaam en wachtwoord intypt. Die ingang is een klein maar belangrijk kerncomponent met de naam com_login.

Dit artikel legt uit hoe inloggen in Joomla echt werkt. Het behandelt de basis voor eigenaren en redacteuren, de dagelijkse instellingen voor beheerders, en de technische details voor ontwikkelaars. Je leert het verschil tussen de backend-login en de frontend-login, hoe de login-modules werken, wat er precies gebeurt wanneer je op de knop drukt, en hoe authenticatie-plugins bepalen of je binnen mag.

Inloggen is niet een enkele functie. Het is een kleine component, een set modules en een keten van plugins die samenwerken.

Het doel is eenvoudig: je inloggen in Joomla goed genoeg laten begrijpen om het met vertrouwen in te stellen, te beveiligen en te debuggen.

1. De basis

1.1 Wat is com_login?

De Login-component (com_login) is een kerncomponent die het backend-loginformulier toont en het in- en uitloggen van beheerders afhandelt. Het is het scherm dat je op /administrator/ ziet voordat je bent ingelogd.

Het is een bewust piepklein component. Het bewaart geen eigen gegevens, heeft een enkele view, en accepteert maar twee taken: login en logout. Al het overige, zoals het controleren van het wachtwoord of het starten van de sessie, wordt afgehandeld door de gedeelde authenticatielaag van Joomla en door plugins.

1.2 Twee ingangen, niet een

Dit is het belangrijkste idee in dit artikel. Joomla heeft twee aparte logins:

LoginAfgehandeld doorURL
Backend (administrator) com_login + admin mod_login /administrator/
Frontend (site) com_users (Login-view) + site mod_login index.php?option=com_users&view=login

Beide ingangen gebruiken dezelfde onderliggende motor, maar ze worden door verschillende extensies aangestuurd. Wanneer iemand het over "de Joomla-login" heeft, vraag dan altijd: voorkant of achterkant?

1.3 Waar je het vindt

Je bladert nooit via een menu naar com_login. Joomla toont het automatisch wanneer een niet-ingelogde bezoeker het beheergedeelte bereikt:

/administrator/index.php?option=com_login&view=login

Als je sessie verloopt terwijl je in de backend werkt, plaatst Joomla je stilletjes terug op deze view.

Naar boven

2. Het backend-loginscherm

2.1 Wat je ziet

Het backend-loginscherm is bewust klein: een veld voor de gebruikersnaam, een veld voor het wachtwoord, een optioneel veld voor een geheime sleutel voor multifactor-authenticatie, en een taalkeuze. Er is geen registratielink en geen optie om een account aan te maken, want de backend is voor medewerkers, niet voor het publiek.

2.2 Het scherm is opgebouwd uit een module

Net als het Controlepaneel is het loginscherm geen vast geprogrammeerd formulier. De component-view rendert een administrator login module (mod_login) en alle andere modules die op de speciale login-positie zijn gepubliceerd:

// administrator/components/com_login/tmpl/login/default.php
$loginmodule = LoginModel::getLoginModule('mod_login');
echo ModuleHelper::renderModule($loginmodule, ['id' => 'section-box']);

Dit betekent dat je extra blokken (een melding, een logo, een beveiligingswaarschuwing) aan de backend-login kunt toevoegen door modules op de login-positie aan de administratorkant te publiceren.

2.3 Een ingebouwde clickjacking-bescherming

Wanneer de login-view wordt gerenderd, stuurt de controller een extra HTTP-header mee:

$this->app->setHeader('X-Frame-Options', 'SAMEORIGIN');

Dit voorkomt dat een andere website je loginformulier in een verborgen frame laadt en een beheerder ertoe verleidt erop te klikken. Het is een klein detail, maar het laat zien dat inloggen vanaf het allereerste verzoek als een beveiligingsgevoelig scherm wordt behandeld.

Naar boven

3. De frontend-login

3.1 Een andere component

De frontend-login maakt geen deel uit van com_login. Hij zit in com_users, dezelfde component die registratie, wachtwoordherstel en gebruikersprofielen afhandelt. Het loginformulier dat een bezoeker ziet, komt uit de Login-view van com_users of uit de site-versie van mod_login.

Om bezoekers een loginpagina te geven, maak je een menu-item van het type Gebruikers → Inlogformulier. Je kunt ook een site-mod_login-module op een willekeurige templatepositie plaatsen.

3.2 Login-omleidingen

De frontend-loginmodule heeft twee handige instellingen die de meeste eigenaren over het hoofd zien:

  • Login-omleiding: de pagina waar een gebruiker na een geslaagde login terechtkomt (bijvoorbeeld een ledendashboard).
  • Logout-omleiding: de pagina waar een gebruiker na het uitloggen terechtkomt (bijvoorbeeld de homepage).

Je kunt ze leeg laten om de gebruiker op dezelfde pagina terug te brengen, of instellen om leden naar de juiste plek te leiden.

3.3 De Guest-truc

Een klassiek patroon is om de loginmodule alleen te tonen aan bezoekers die nog niet zijn ingelogd. Stel het Toegangsniveau van de module in op Guest, en Joomla verbergt hem automatisch zodra de bezoeker inlogt. Combineer dit met een "Mijn account"-module ingesteld op Registered, en het juiste blok wordt altijd getoond.

Naar boven

4. De login-modules

4.1 Een naam, twee clients

Er zijn twee mod_login-modules in Joomla, een voor elke client:

ModuleClientTaak
Site mod_login Frontend (client_id = 0) Loginblok voor bezoekers op de publieke site.
Administrator mod_login Backend (client_id = 1) Het formulier dat door com_login wordt gerenderd.

4.2 De noodvoorziening die buitengesloten beheerders redt

Het login-model laadt de backend-loginmodule op een ongebruikelijke manier. Het negeert bewust de publicatiestatus en het toegangsniveau van de module. De opmerking in de kerncode legt uit waarom:

"This is put in as a failsafe to avoid super user lock out caused by an unpublished login module or by a module set to have a viewing access level that is not Public."

In gewone taal: zelfs als je de backend-loginmodule per ongeluk depubliceert of het toegangsniveau op iets anders dan Public zet, kun je nog steeds inloggen. Het loginformulier wordt altijd gerenderd. Dit is een bewust vangnet, geen fout.

4.3 Onthoud mij

De site-loginmodule biedt een Onthoud mij-vinkje. Wanneer dit is aangevinkt, bewaart Joomla een langlevende cookie zodat de bezoeker over browsersessies heen ingelogd blijft. Deze functie hangt af van een ingeschakelde Authentication - Cookie-plugin, wat de volgende sectie uitlegt.

Naar boven

5. Wat er gebeurt wanneer je inlogt

5.1 De vier stappen

Op de loginknop drukken start een duidelijke keten van vier stappen binnen het applicatieobject van Joomla:

1. AUTHENTICEREN  Wie ben je? Klopt het wachtwoord?
                  → event onUserAuthenticate (authenticatie-plugins)
2. AUTORISEREN    Mag je inloggen op deze client?
                  → event onUserAuthorisation
3. INLOGGEN       Start de sessie, voer de neveneffecten uit.
                  → event onUserLogin (user-plugins)
4. OMLEIDEN       Stuur je naar de return-URL of het dashboard.

De component zelf zet de keten alleen in gang met een enkele aanroep:

$app->login($credentials, ['action' => 'core.login.admin']);

De action vertelt Joomla welke ingang wordt gebruikt: core.login.admin voor de backend, core.login.site voor de frontend.

5.2 Authenticatie versus autorisatie

Deze twee woorden lijken op elkaar maar betekenen iets anders, en inloggen gebruikt ze allebei:

  • Authenticatie beantwoordt "ben je wie je zegt te zijn?" Het controleert het wachtwoord (of een passkey, of een LDAP-server).
  • Autorisatie beantwoordt "mag je hier binnen?" Een geldige gebruiker zonder backend-loginrecht slaagt voor de authenticatie maar zakt voor de autorisatie.

Een gebruiker kan een volkomen correct wachtwoord hebben en toch bij de backend-ingang worden geweigerd, omdat authenticatie en autorisatie aparte poorten zijn.

5.3 Wat het login-event doet

Wanneer het inloggen slaagt, vuurt het onUserLogin-event en doet de kern-plugin User - Joomla het echte werk: het schrijft de sessie weg, registreert het bezoek en laadt de groepen van de gebruiker. Daarom moet je de User - Joomla-plugin nooit uitschakelen. Zonder deze plugin kan niemand inloggen.

Naar boven

6. Authenticatie-plugins

6.1 De plugin beslist, niet de component

Joomla bepaalt niet vast hoe een wachtwoord wordt gecontroleerd. In plaats daarvan stelt het elke ingeschakelde authenticatie-plugin de vraag "kloppen deze gegevens?" via het onUserAuthenticate-event. Elke plugin antwoordt met geslaagd, mislukt, of "niet mijn taak".

Joomla 6 wordt geleverd met drie kern-authenticatie-plugins:

pluginWat het doet
Authentication - Joomla De standaard. Controleert de gebruikersnaam en de bcrypt-wachtwoordhash in #__users. Houd deze ingeschakeld.
Authentication - Cookie Maakt de functie Onthoud mij mogelijk met een veilige langlevende cookie.
Authentication - LDAP Controleert gegevens tegen een externe LDAP- of Active Directory-server. Standaard uit.

6.2 Hoe wachtwoorden worden opgeslagen

De plugin Authentication - Joomla werkt in de opslag nooit met een wachtwoord in platte tekst. Joomla bewaart elk wachtwoord als een gezouten bcrypt-hash in de kolom password van #__users, aangemaakt met de native wachtwoord-hashing-API van PHP. Een opgeslagen waarde ziet er zo uit:

$2y$10$Ux3...   (algoritme, kosten, salt en hash in een string)

Twee gevolgen zijn in de praktijk belangrijk:

  • Zelfs een Super User kan het wachtwoord van een gebruiker niet lezen. Een vergeten wachtwoord kan alleen worden gereset, nooit teruggehaald.
  • Joomla herberekent de hash bij het inloggen. Wanneer je inlogt, controleert de plugin of de opgeslagen hash nog het huidige algoritme en de huidige kosten gebruikt. Zo niet, dan herberekent Joomla het wachtwoord transparant en bewaart de sterkere versie. Je opgeslagen gegevens worden in de loop van de tijd veiliger zonder dat iemand iets hoeft te doen.

6.3 Het veld voor de geheime sleutel en MFA

Het derde veld op het loginformulier, de geheime sleutel, voedt de multifactor-authenticatie van Joomla. Nadat het wachtwoord is geaccepteerd, kan Joomla een tweede factor eisen (een TOTP-code, een passkey, een e-mailcode) voordat de sessie volledig wordt vertrouwd. Dit is de captive loginflow: een ingelogde gebruiker met een onvervulde MFA-eis wordt op de verificatiepagina vastgehouden totdat hij die voltooit.

6.4 Single sign-on en eigen logins

Omdat authenticatie op plugins is gebaseerd, kun je het uitbreiden. Login via Google, Microsoft, SAML of je eigen API nodig? Dan schrijf (of installeer) je een authenticatie-plugin die zich abonneert op onUserAuthenticate. Je wijzigt com_login zelf nooit. Dit is hetzelfde ontkoppelingspatroon dat Joomla overal gebruikt: de kern stelt een vraag, en plugins antwoorden.

Naar boven

7. Rechten en toegang

7.1 De twee login-rechten

Of een gebruikersgroep wel of niet mag inloggen, is een ACL-beslissing die wordt ingesteld in Systeem → Globale configuratie → Rechten:

ActieBetekenis
Site-login (core.login.site) De groep mag op de frontend inloggen.
Administrator-login (core.login.admin) De groep mag op de backend inloggen.

Dit zijn precies de action-waarden die aan $app->login() worden doorgegeven. Een groep zonder Administrator-login op Toegestaan kan de backend niet bereiken, hoe correct het wachtwoord ook is.

7.2 Waarom je jezelf niet kunt buitensluiten van het loginformulier

De login-component verwijdert zijn eigen ACL-poort. De dispatcher overschrijft de toegangscontrole met een lege methode:

protected function checkAccess()
{
    // com_login does not require check permission
}

Als com_login een recht zou afdwingen, zou een enkele verkeerde ACL-wijziging elke beheerder uit de backend kunnen sluiten zonder weg terug. Door de poort open te laten, garandeert Joomla dat het loginformulier altijd bereikbaar is. De echte toegangsbeslissing valt een stap later, tijdens de autorisatiestap van het inloggen zelf.

Naar boven

8. Onder de motorkap (ontwikkelaarsblik)

8.1 Componentstructuur

com_login bestaat alleen aan de administratorkant. Er is geen frontend-map en geen sql/-map, omdat de component niets opslaat:

administrator/components/com_login/
├─ services/provider.php          (DI container-bedrading)
├─ src/
│  ├─ Controller/DisplayController.php
│  ├─ Dispatcher/Dispatcher.php
│  ├─ Model/LoginModel.php
│  └─ View/Login/HtmlView.php
├─ tmpl/login/default.php          (rendert de loginmodule)
└─ login.xml                       (manifest)

8.2 De dispatcher beperkt de taken

De component zal ooit maar twee dingen doen. De dispatcher gooit elke taak weg die niet login of logout is:

$task = $this->input->get('task');

if ($task != 'login' && $task != 'logout') {
    $this->input->set('task', '');
}

Dit verkleint het aanvalsoppervlak: je kunt de component niet verleiden tot het uitvoeren van een andere controllermethode.

8.3 De controller: login en logout

De controller is kort. De login-taak controleert het CSRF-token, leest de gegevens uit het model, roept $app->login() aan en leidt vervolgens om:

public function login()
{
    $this->checkToken();

    $app         = $this->app;
    $model       = $this->getModel('login');
    $credentials = $model->getState('credentials');
    $return      = $model->getState('return');

    $app->login($credentials, ['action' => 'core.login.admin']);

    if (Uri::isInternal($return) && !str_contains($return, 'tmpl=component')) {
        $app->redirect($return);
    } else {
        $app->redirect('index.php');
    }
}

Twee beveiligingsdetails vallen op. De aanroep checkToken() blokkeert cross-site request forgery, en de controle Uri::isInternal() stopt een open-redirect-aanval: een geprepareerde return-URL kan je na het inloggen nooit naar een externe site sturen.

8.4 Het model leest de gegevens veilig

Het model verzamelt de ingediende waarden met strikte invoerfilters en decodeert de return-URL uit Base64, waarbij het opnieuw controleert of die intern blijft:

$credentials = [
    'username'  => $input->get('username', '', 'USERNAME'),
    'password'  => $input->get('passwd', '', 'RAW'),
    'secretkey' => $input->get('secretkey', '', 'RAW'),
];

if ($return = $input->get('return', '', 'BASE64')) {
    $return = base64_decode($return);

    if (!Uri::isInternal($return)) {
        $return = '';
    }
}

8.5 Uitloggen in code

Uitloggen is het spiegelbeeld van inloggen. Het controleert het token en roept dan de applicatie aan:

$app->logout($userid, ['clientid' => $clientid]);

De clientid bepaalt welke sessie wordt beeindigd. Als shared_session aanstaat, logt uitloggen op de ene client de gebruiker overal uit. Het onUserLogout-event vuurt zodat plugins kunnen opruimen, bijvoorbeeld het verwijderen van de Onthoud mij-cookie.

8.6 De events waarop je kunt inhaken

Abonneer je voor eigen login-logica op deze events in een plugin, in plaats van de component aan te raken:

EventplugintypeVuurt wanneer
onUserAuthenticate authentication De gegevens worden gecontroleerd.
onUserAuthorisation authentication Joomla beslist of inloggen is toegestaan.
onUserLogin user Inloggen slaagt; start de sessie.
onUserLoginFailure user Inloggen mislukt (handig voor blokkeerlogica).
onUserLogout user De gebruiker logt uit.

8.7 De tabellen die inloggen raakt

TabelRol bij het inloggen
#__users Bevat de gebruikersnaam, de bcrypt-wachtwoordhash en de lastvisitDate die bij elke login wordt bijgewerkt.
#__session Een rij per actieve sessie. Een geslaagde login maakt hier een rij aan of werkt die bij.
#__user_keys Bewaart de veilige tokens voor de Onthoud mij-cookie-plugin.
#__user_mfa Multifactor-methoden die worden gecontroleerd wanneer een geheime sleutel vereist is.

De login-component bezit geen van deze tabellen. Het zet alleen de gedeelde loginflow in gang die ze leest en beschrijft.

8.8 Inloggen vanuit je eigen extensie

Dezelfde $app->login()-aanroep die de component gebruikt, is beschikbaar voor je eigen code. Een eigen portaal, een SSO-brug of een importeur kan een gebruiker programmatisch inloggen:

$app = Factory::getApplication();

$credentials = [
    'username' => 'john',
    'password' => 'secret',
];

// Vuurt dezelfde event-keten als het loginformulier.
$app->login($credentials, ['action' => 'core.login.site']);

Dit doorloopt de volledige keten authenticeren → autoriseren → onUserLogin, dus elke plugin en rechtencontrole geldt nog steeds. Gebruik het met zorg: zet nooit echte inloggegevens hard in de code, en denk altijd het beveiligingseffect goed door voordat je een gebruiker buiten het normale formulier om inlogt.

8.9 Sessieopslag en prestaties

Een geslaagde login schrijft een sessie weg, en elk later verzoek leest die. Waar die sessie wordt bewaard, is een configuratiekeuze onder Globale configuratie → Systeem → Sessie-handler:

HandlerWanneer te gebruiken
Database De standaard. Sessies staan in #__session. Prima voor de meeste sites.
Bestandssysteem Sessies opgeslagen als bestanden op schijf. Eenvoudig, maar trager op netwerkopslag.
Redis / Memcached Geheugenopslag. Snel, en houdt sessieschrijfacties weg van de database.

Op een drukke site is het verplaatsen van sessies naar Redis of Memcached een van de doeltreffendste manieren om de databasebelasting te verlagen, want elke bezoeker, ingelogd of niet, raakt de sessie bij elk verzoek aan.

Naar boven

9. Inloggen voor de Web Services API

9.1 Geen formulier, geen sessie

De Joomla Web Services API gebruikt com_login helemaal niet. Er is geen formulier en geen sessiecookie. In plaats daarvan draagt elk verzoek een token dat de gebruiker identificeert. De login-component weigert zelfs niet-HTML-verzoeken regelrecht, met een 403.

9.2 Token-authenticatie

De plugin User - Joomla API Token (plg_user_token) geeft elke gebruiker een persoonlijk token. Je schakelt de plugin in, genereert een token op het profiel van de gebruiker en stuurt het vervolgens als header mee bij elke API-aanroep:

curl -H "X-Joomla-Token: <je-token>" \
     https://example.test/api/index.php/v1/users

Het token doet hetzelfde werk als een gebruikersnaam en wachtwoord op de website: het bewijst wie je bent. De groepen en rechten van de gebruiker gelden nog steeds, dus een token is alleen zo krachtig als de gebruiker erachter.

9.3 Houd tokens veilig

Een token is een wachtwoord in een andere vorm. Stuur het alleen over HTTPS, zet het nooit in een openbare repository of in een client-side script, en trek het in vanuit het profiel van de gebruiker zodra het mogelijk is blootgesteld.

Naar boven

10. SEO en metadata

Loginpagina's zijn geen pagina's die je wilt laten ranken in zoekmachines. De backend-login op /administrator/ mag helemaal niet worden gecrawld, en een frontend-loginpagina bevat geen nuttige inhoud voor zoekresultaten.

Twee praktische punten zijn hier van belang. Ten eerste: zet het menu-item van een eventuele frontend-loginpagina op noindex in het tabblad Metadata, zodat zoekmachines het overslaan. Ten tweede: houd inloggen achter HTTPS; zowel moderne browsers als zoekmachines bestraffen wachtwoordformulieren die over gewoon HTTP worden geserveerd. Een loginpagina helpt je SEO niet direct, maar een veilige, nette pagina beschermt de vertrouwenssignalen die dat wel doen.

Naar boven

11. Veelgemaakte fouten en valkuilen

11.1 De User - Joomla-plugin uitschakelen

Symptoom: niemand kan inloggen, niet op de frontend en niet op de backend, zelfs niet met het juiste wachtwoord.

Oplossing: schakel de plugin User - Joomla weer in. Die voert het onUserLogin-event uit dat de sessie start. Als je de backend niet kunt bereiken, schakel je hem rechtstreeks in de tabel #__extensions in door enabled = 1 te zetten voor die plugin.

11.2 De twee logins verwarren

Symptoom: een gebruiker kan inloggen op de website maar wordt geweigerd op /administrator/.

Oplossing: dat is verwacht gedrag. Backend-toegang vereist het recht Administrator-login, dat de website-login niet heeft. Geef core.login.admin aan de juiste groep in de Globale configuratie.

11.3 De Onthoud mij-plugin vergeten

Symptoom: het Onthoud mij-vinkje verschijnt maar houdt niemand ingelogd.

Oplossing: schakel de plugin Authentication - Cookie in. Zonder die plugin doet het vinkje niets.

11.4 Verwachten dat com_login opties heeft

Symptoom: je zoekt naar login-instellingen in com_login en vindt er geen.

Oplossing: er zijn geen component-opties. Het login-gedrag zit in de login-modules (omleidingen, Onthoud mij), de authenticatie-plugins (methoden) en de Globale configuratie (rechten en sessieduur).

11.5 Een open redirect via de return-URL

Symptoom: een externe loginlink probeert gebruikers na het inloggen naar een externe site te sturen.

Oplossing: Joomla blokkeert dit al. De component valideert de return-URL met Uri::isInternal(). Verwijder die controle niet als je een eigen login bouwt.

11.6 Sessies die willekeurig lijken te verlopen

Symptoom: beheerders worden midden in hun werk uitgelogd en teruggestuurd naar het loginscherm.

Oplossing: verhoog de sessieduur in Globale configuratie → Systeem, en zorg dat de sessie-handler (database of bestandssysteem) gezond is. Een korte duur of een volle sessietabel forceert vroegtijdig uitloggen.

Naar boven

12. Beste werkwijzen

Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:

  • De backend-login is com_login; de frontend-login is com_users. Weet welke je instelt.
  • Schakel de plugin User - Joomla nooit uit. Zonder die plugin werkt inloggen nergens meer.
  • Bepaal wie mag inloggen via de rechten Site-login en Administrator-login, niet door bestanden te bewerken.
  • Schakel multifactor-authenticatie in voor elke backend-gebruiker en dwing het af voor admingroepen.
  • Serveer elke loginpagina over HTTPS en zet frontend-loginpagina's op noindex.
  • Voeg nieuwe loginmethoden (SSO, social, LDAP) toe met een authenticatie-plugin; pas com_login nooit aan.
  • Bescherm API-tokens als wachtwoorden en trek ze in zodra ze kunnen lekken.
Naar boven

13. In het kort

BACKEND-LOGIN   com_login          /administrator/
FRONTEND-LOGIN  com_users (Login)  index.php?option=com_users&view=login
LOGINMODULE     mod_login          (een per client: site en admin)

TAKEN           login, logout      (de enige twee die com_login accepteert)
LOGIN-AANROEP   $app->login($credentials, ['action' => 'core.login.admin'])
LOGOUT-AANROEP  $app->logout($userid, ['clientid' => $clientid])

RECHTEN         core.login.site    Site-login (frontend)
                core.login.admin   Administrator-login (backend)

AUTH-pluginS   Joomla (wachtwoord), Cookie (Onthoud mij), LDAP (extern)
KERN-EVENTS     onUserAuthenticate → onUserAuthorisation
                → onUserLogin / onUserLoginFailure / onUserLogout
NOOIT UITZETTEN User - Joomla-plugin (voert onUserLogin uit)

TABELLEN        #__users   (hash, lastvisitDate)
                #__session (actieve sessies)
                #__user_keys (Onthoud mij-tokens)
                #__user_mfa  (multifactor-methoden)

API-LOGIN       X-Joomla-Token-header (plg_user_token), geen sessie, alleen HTTPS
Naar boven

14. Samenvatting

Inloggen in Joomla lijkt een enkel formulier, maar het is een klein systeem van samenwerkende onderdelen:

  • com_login is de piepkleine, alleen-backend-component achter het backend-loginformulier; het slaat geen gegevens op en accepteert alleen login en logout.
  • com_users en mod_login leveren de frontend-login, de omleidingen en de Onthoud mij-optie.
  • Authenticatie-plugins bepalen hoe gegevens worden gecontroleerd, zodat je SSO, LDAP of social login kunt toevoegen zonder de kern aan te raken.
  • Rechten (core.login.site en core.login.admin) bepalen wie door elke ingang mag.
  • Ingebouwde beschermingen (CSRF-tokens, alleen-interne omleidingen, de clickjacking-header en de uitsluitings-noodvoorziening) maken inloggen standaard veilig.
  • De Web Services API vervangt het formulier door een persoonlijk token.

Zodra je inloggen ziet als een component plus modules plus een pluginketen, wordt het hele systeem voorspelbaar. Je weet waar je omleidingen instelt, waar je toegang verleent, waar je een nieuwe loginmethode toevoegt, en waar je moet kijken als er iets stukgaat.

Als je site last heeft van willekeurig uitloggen, buitengesloten beheerders of een loginflow waarvan je niet zeker weet of die veilig is, zijn die symptomen meestal terug te voeren op een van de bovenstaande lagen. Ze in de juiste volgorde controleren is precies het soort methodische werk dat een Joomla-specialist als eerste doet, en het is vaak het verschil tussen een site die je kunt vertrouwen en een die je niet kunt vertrouwen.

Naar boven
Login in Joomla
Peter Martin
Peter Martin

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.