WordPress lienee tämän hetken tunnetuimpia ja käytetyimpiä avoimen lähdekoodin web-sovelluksia.
Tällä on tietysti hyviä ja huonoja puolia.
Kalvoissa on keinoja parantaa WordPress-asennuksen tietoturvaa.
Jukka WeissenfeltSocial Media Enthusiastic, Partner, Co-Founder at ebrand Suomi |
2. • WordPress lienee tämän hetken tunnetuimpia ja käytetyimpiä
avoimen lähdekoodin web-sovelluksia.
• Tällä on tietysti hyviä ja huonoja puolia.
• Web-kehittäjät hyödyntävät valmiita tai puolivalmiita teemoja
(themes), ilmaisia lisäosia (plugins) ja muita ilmaisia
lisäominaisuuksia tuovia laajennuksia kuten prettyPhoto ja
Timthumb.
3. • WordPress itsessään, valmiit teemat ja varsinkin Timthumb:n
vanhat versiot ovat osoittautuneet tietoturvariskiksi, jolta
voidaan suojautua.
• Seuraavilla kalvoilla on tarkoituksena käydä lävitse keinoja,
miten voit tehdä WordPress asennuksesta huomattavasti
alkuperäistä turvallisemman.
• Kalvot on suunnattu ensijaisesti web-kehittäjille, mutta
käyttäjätkin voivat tehdä ainakin osan esitettävistä asioista.
4. WordPress asennuksen suojaaminen
• Hyvä lähtökohta WordPressin suojaamiseen on noudattaa
WordPress:n omia ohjeita palvelun suojaamiseksi:
http://codex.wordpress.org/Hardening_WordPress
• Erityisen tärkeä toimenpide on siirtää wp-config.php pois
public_html kansiosta.
5. Asennuksen suojaaminen jatkuu
• .htaccess-tiedostoon kannattaa lisätä seuraavat koodit,
jotka estävät käyttäjiä pääsemästä suoraan käsiksi wp-
includes-kansioon.
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
# BEGIN WordPress
6. Estä kirjautumissivulle pääsy
• Luo wp-admin –kansioon .htaccess-tiedosto.
• Lisätään sinne salasanan kysely, mutta varmistetaan että admin-
ajax.php:ta voidaan käyttää ilman salasanaa.
• Admin-ajax.php huolehtii esimerkiksi liitetiedostojen lataamisesta
palvelimelle.
AuthType Basic
AuthName "Kirjaudu"
AuthUserFile /var/www/path/to/passwd
Require valid-user
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
7. Tunnus ja tietokanta
• WordPress luo oletuksena ‘admin’-nimisen
käyttäjän. Korvaa ‘admin’ vaikka yrityksesi
nimellä.
• Korvaa WordPressin automaattinen
tietokantataulujen etuliite wp_ jollakin
muulla.
8. Yleisiä neuvoja (lisäosat)
• Lisäosat vaikuttavat aina sivustosi tietoturvaan.
– Sivustosi on yhtä turvallinen kuin heikoin koodinpätkäsi.
– Suosittelen erityisesti välttämään lisäosia jotka tarvitsevat
tietokantaoikeudet.
• Asenna vain ne lisäosat mitä todella tarvitset.
• Asenna vain lisäosia joilla on hyvät arvostelut ja useita,
mieluiten satoja tai tuhansia käyttäjiä.
• Varmista, että lisäosa tukee sinun WordPress-asennuksesi
versiota ja sitä päivitetään edelleen.
9. Lisäosat - jatkuu
• Asenna lisäosa vain jos et voi tehdä sitä itse.
– Lisätoiminnallisuudet eivät ole rakettetiedettä.
– Useat toiminnallisuudet voidaan ottaa käyttöön muokkaamalla
functions.php-tiedostoa.
– Google on kehittäjän paras kaveri.
• Muutamia esimerkkejä:
http://www.wpbeginner.com/wp-tutorials/25-extremely-
useful-tricks-for-the-wordpress-functions-file/
http://www.catswhocode.com/blog/10-super-useful-
wordpress-shortcodes
http://www.catswhocode.com/blog/8-new-and-amazing-
wordpress-hacks
10. Päivitä TimThumb
• TimThumbia käytetään kuvien muokkaamiseen ja käsittelyyn
hyvin usealla WordPress-sivustolla.
• Helpoin tapa pitää TimThumb päivitettynä on asentaa
Timthumb Vulnerability Scanner –lisäosa.
• Lisätietoa Timthumb-hyökkäyksistä.
11. Asenna WordPress Firewall 2
• WordPress Firewall 2 estää joitain
automaattisia ja manuaalisia hyökkäyksiä.
• Valitettavasti lisäosaa ei ole hetkeen päivitetty.
• http://wordpress.org/extend/plugins/wordpre
ss-firewall-2/
12. Estä “väärä salasana” ilmoitus
• Lisää functions.php-tiedostoon pieni koodinpätkä, joka
estää erittelemästä onko käyttäjää olemassa vai ei.
• Huom. Jos olet jo suojannut WordPressin .htaccess
salasanalla voi tämä tämä olla jo tarpeetonta.
// Remove default error message and replace with
custom error message add_filter('login_errors',
'login_error_mess'); function login_error_mess()
{ return '<span class="error"><strong>ERROR:
</strong>Invalid username or password.</span>';
}