WordPressin WP_DEBUG on asetustiedostossa wp-config.php määritettävä kehitystyökalu, jonka avulla kehittäjät voivat seurata virheitä, varoituksia ja ilmoituksia sivustolla. Kun WP_DEBUG on asetettu arvoon true, se aktivoi WordPressin virheiden ja ilmoitusten tulostuksen sivustolle.
Kehitysvaiheessa tämä ominaisuus on äärimmäisen hyödyllinen. Se auttaa löytämään virheellisiä funktiokutsuja, vanhentuneita toimintoja ja PHP-virheitä. Ongelmana on kuitenkin se, että jos WP_DEBUG jätetään päälle tuotantosivustolla, se voi vuotaa arkaluontoista tietoa ulkopuolisille.
Miten WP_DEBUG toimii
WP_DEBUG otetaan käyttöön lisäämällä tai muokkaamalla seuraava rivi tiedostossa wp-config.php:
Warning: Undefined variable $user in /home/webhotelli/public_html/wp-content/themes/teema/functions.php on line 42
Hyökkääjä saa tästä suoraan selville palvelimen rakenteen, teeman nimen ja sijainnin, jota voidaan hyödyntää haavoittuvuuksien etsimisessä.
2. Tietokantayhteyksien ja istuntojen vuotaminen
Joissain tilanteissa virheilmoitukset voivat paljastaa tietokantahakujen sisältöjä tai istuntoon liittyvää dataa. Tämä voi tarkoittaa käyttäjänimiä, taulujen nimiä tai jopa sähköpostiosoitteita.
3. Plugin- ja teematiedot
Jos lisäosa tai teema aiheuttaa virheen, virheilmoitus voi paljastaa sen tiedostonimen, version ja polun. Tämä tieto auttaa hyökkääjää tunnistamaan, onko käytössä vanhentunut tai haavoittuva lisäosa.
4. PHP:n virheilmoitukset ja server-side-informaatio
WP_DEBUG voi näyttää PHP:n varoituksia ja virheitä, jotka kertovat palvelimen kokoonpanosta, PHP:n versiosta ja käytössä olevista kirjastoista. Tämä tieto on hyödyllinen hyökkäyksen suunnittelussa.
5. WP_DEBUG_LOG ja tiedostovuodot
Jos käytössä on define('WP_DEBUG_LOG', true);, virheet tallennetaan tiedostoon /wp-content/debug.log.
Jos tämä tiedosto on julkisesti luettavissa selaimella (esim. https://sivusto.fi/wp-content/debug.log), kuka tahansa voi nähdä koko virhelokin. Tämä on yleinen ja vaarallinen virhe.
Kuinka WP_DEBUG aiheuttaa vuotoja käytännössä
Monilla sivustoilla kehittäjä aktivoi WP_DEBUGin ongelman selvittämistä varten ja unohtaa kytkeä sen pois. Tämä on tavallinen virhe etenkin silloin, kun useampi henkilö ylläpitää sivustoa.
Usein debug-logit ovat jääneet palvelimelle näkyviin. Hakukoneet voivat indeksoida näitä tiedostoja, ja ne voivat löytyä jopa Google-haulla:
site:example.com "Warning:" "wp-content/debug.log"
Tämä on karu esimerkki siitä, miten helposti arkaluontoiset tiedot voivat joutua vääriin käsiin.
Oikea tapa käyttää WP_DEBUG-asetusta
1. Käytä vain kehitysympäristössä
WP_DEBUG tulisi olla käytössä vain paikallisessa tai suljetussa kehitysympäristössä, ei koskaan tuotantopalvelimella.
Kehityksessä käytetään usein lisäasetuksia:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', true);
Näin virheet tallentuvat lokiin, mutta niitä ei näytetä selaimessa.
2. Kytke pois päältä tuotannossa
Tuotantosivustolla asetusten tulee olla seuraavat:
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Tämä estää kaiken virheiden tulostuksen ja piilottaa mahdolliset ilmoitukset julkiselta käyttäjältä.
3. Suojaa debug.log-tiedosto
Jos käytät WP_DEBUG_LOGia, varmista että debug.log ei ole julkisesti luettavissa. Lisää esimerkiksi .htaccess-tiedostoon:
<Files "debug.log">
Require all denied
</Files>
Näin tiedosto on suojattu suoralta selaimelta.
4. Käytä erillisiä valvontatyökaluja
Sen sijaan, että käyttäisit WP_DEBUGia tuotannossa, kannattaa hyödyntää turvallisia virhelokien ja suorituskyvyn seurantatyökaluja kuten:
-
Query Monitor (kehitykseen)
-
New Relic
-
LogRocket
-
WP Activity Log (toimintojen seurantaan)
Nämä tarjoavat tietoa ilman, että paljastavat arkaluontoisia tiedostoja julkisesti.
Tietoturvan parhaat käytännöt WP_DEBUGin suhteen
-
Älä koskaan jätä WP_DEBUG:ia päälle tuotannossa.
-
Älä jaa debug-lokeja ilman anonymisointia.
-
Rajoita tiedostojen pääsyä – vain kehittäjillä tulisi olla pääsy
wp-config.php-tiedostoon. -
Säännöllinen tarkastus: tarkista, onko debug.log-tiedosto olemassa ja poistettavissa.
-
Automaattinen skannaus: käytä työkaluja, jotka varoittavat, jos WP_DEBUG on aktiivinen.
-
Käytä versionhallintaa (Git) erottamaan kehitys- ja tuotantoympäristön asetukset.
-
Käytä ympäristömuuttujia: aseta WP_DEBUG vain paikallisesti
.env-tiedoston kautta.
WP_DEBUG ja tietoturvalokit
Monet tietoturvaskannerit, kuten Wordfence, tarkistavat automaattisesti, onko WP_DEBUG päällä. Ne varoittavat, jos virheiden tulostus on aktiivinen, koska se on suora tietovuotoriski.
Hyökkääjät etsivät jatkuvasti WordPress-sivustoja, joissa WP_DEBUG on päällä, koska virheilmoituksista voi saada palapelin palasia järjestelmästä — käytössä olevista teemoista, poluista ja jopa käyttäjätunnuksista.
WP_DEBUG ja GDPR
Jos debug-logi tallentaa käyttäjien tietoja, kuten sähköpostiosoitteita tai kirjautumisyrityksiä, se voi aiheuttaa GDPR-rikkomuksen. Lokien tulee olla suojattuja, ja niitä ei saa säilyttää tarpeettomasti. Kaikki henkilötietoja sisältävät virhelokit tulisi anonymisoida tai poistaa viipymättä.
Miten tarkistaa, onko WP_DEBUG päällä
Voit tarkistaa tämän nopeasti lisäämällä pienen testirivin wp-config.php-tiedoston loppuun ennen “That’s all, stop editing!” -kommenttia:
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('VAROITUS: WP_DEBUG on aktiivinen!');
}
Tämä kirjaa ilmoituksen virhelokiin, jos WP_DEBUG on päällä. Jos haluat testata selaimessa, voit myös tulostaa phpinfo() tiedot kehitysympäristössä, mutta älä koskaan tuotannossa.
Yhteenveto
WP_DEBUG on tehokas kehitystyökalu, mutta se voi muuttua tietoturvariskiksi, jos sitä käytetään väärin. Kun virheilmoitukset näkyvät julkisesti tai debug.log on luettavissa selaimen kautta, hyökkääjä saa arvokasta tietoa sivuston rakenteesta.
Paras käytäntö on pitää WP_DEBUG aktiivisena vain kehityksessä, piilottaa lokitiedostot ja tarkistaa säännöllisesti sivuston asetukset. Näin WordPress-sivusto pysyy sekä vakaana että turvallisena.
Samankaltaisia artikkeleita
WordPressin joustavuus
WordPress on säilyttänyt asemansa maailman suosituimpana sisällönhallintajärjestelmänä jo yli 20 vuoden ajan. Yritykset eri toimialoilt...
WordPressin kehityssuunta
WordPress on ollut verkkokehityksen kulmakivi jo vuosikymmeniä, ja sen rooli on muuttunut dramaattisesti ajan myötä. Alun perin blogi...
WordPressin ekosysteemi vuonna 2026
WordPress on laaja ja kehittyvä ekosysteemi, joka kattaa verkkosivujen, verkkokauppojen, sovellusten, integraatioiden ja tekoälypohjai...
Kuinka WordPress on muuttanut verkkokehityksen maisemaa pysyvästi
Kun WordPress julkaistiin vuonna 2003, sitä pidettiin aluksi vain kevyenä blogialustana. Kukaan ei osannut kuvitella, että siitä tulis...
Verkkokauppa WordPressillä
Tässä oppaassa käymme läpi vaiheet, työkalut ja parhaat käytännöt, jotta voit luoda toimivan ja optimoidun verkkokaupan.
Parhaat lisäosat bloggaajille vuonna 2026
Tässä artikkelissa esittelemme parhaat lisäosat bloggaajille vuonna 2026, ja kerromme, miksi ne ovat tärkeitä.
Kuinka valita oikea lisäosa verkkokauppaan
Tässä artikkelissa käymme läpi, miten valitset parhaan lisäosan verkkokauppaa varten vuonna 2026, mitä ominaisuuksia kannattaa painot...
WordPressin hakukoneoptimointi: 10 vinkkiä
Tässä artikkelissa käymme läpi kymmenen tehokasta vinkkiä, joiden avulla voit parantaa WordPress-sivustosi näkyvyyttä ja sijoituksia ha...
2026 trendit: Modernit WordPress-teemat ja väriyhdistelmät
Tässä artikkelissa pureudumme syvälle siihen, millaiset teemat ja väripalettiratkaisut hallitsevat ensi vuoden verkkosuunnittelua.
Kuinka luoda ammattimainen verkkosivusto WordPressillä
WordPress on kasvanut vuosien varrella maailman suosituimmaksi verkkosivualustaksi, ja hyvästä syystä. Se on joustava, helppokäyttöinen...
PageSpeed Insights ja WordPress – kuinka saada 100/100
Sivuston nopeus on yksi tärkeimmistä menestystekijöistä verkossa. Hitaasti latautuva WordPress-sivusto karkottaa kävijät, heikentää ko...
WordPressin tulevaisuus: tekoäly, automaatio ja kooditon kehitys
WordPress on ollut verkon kulmakivi jo yli 20 vuotta. Se alkoi yksinkertaisena blogialustana, mutta on kasvanut maailman suosituimmaksi...