Login in Joomla
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:
| Login | Afgehandeld door | URL |
|---|---|---|
| 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 boven2. 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 boven3. 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 boven4. De login-modules
4.1 Een naam, twee clients
Er zijn twee mod_login-modules in Joomla, een voor elke client:
| Module | Client | Taak |
|---|---|---|
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 boven5. 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.
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:
| plugin | Wat 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.
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:
| Actie | Betekenis |
|---|---|
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.
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:
| Event | plugintype | Vuurt 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
| Tabel | Rol 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:
| Handler | Wanneer 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 boven9. 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 boven10. 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 boven11. 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.
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 iscom_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_loginnooit aan. - Bescherm API-tokens als wachtwoorden en trek ze in zodra ze kunnen lekken.
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 boven14. 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
loginenlogout. - com_users en
mod_loginleveren 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.siteencore.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

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


