Taguri : blog security , securitate , securitate blog , securizare wordpress , wordpress inpenetrabil , wordpress securizat
Articolul acesta va prezenta cele mai paranoice metode de a securiza un blog care foloseste platforma wordpress , vom incepe cu cele mai comune si de bun simt metode dupa care o sa trecem si la lucruri mai avansate .
1 Primul lucru de bun simt este sa aveti o parola a administratorului diferita de orice alta parola a orcarui alt cont , este indicat ca parola sa fie de peste 150 bites si sa arate cam asa : ” j2R;O2XfaeMI%Ngy5Ae>+m8Uf “.
2 Nu folositi ca nume de logare numele “admin” care exista din oficiu la wordpress , acel nume nu merge schimbat din wordpress direct dar merge cu orice alt manager de mysql (navicat , mysql administrator , phpmyadmin ) , prin query-ul
-
UPDATE `nume-baza-de-DATE`.`nume-tabela-useri` SET `user_login` = ‘noul-nume-pt-login’ WHERE `nume-tabela-useri`.`display_name` =‘nume-de-display’ LIMIT 1 ;
din pacate id-ul nu se poate schimba pentru ca el ne asigura statutul de administrator .
3 Nu folositi prefixul de tabele acordat din oficiu “wp_” schimbati-l in ceva de genul “w843d32_” si nu uitati sa modificati si wp-config.php dupa ce ati schimbat acest prefix la toate tabelele .
4 Este indicat sa aveti un singur Javascript encriptat ca cel de aici
http://azrael-sub7.ro/wp-content/plugins/script-compressor/jscsscomp.php?q=wp-content/plugins/vipers-video-quicktags/resources/swfobject.js?ver=2.1 puteti face asta folosind pluginul script-comprerssor .
5 Nu lasati fisierul wp-config.php accesibil , cea mai utilizata metoda este sa introduceti in .htaccess urmatorul cod :
-
# Protect wpconfig.php
-
<FILES wp-config.php >
-
order allow,deny
-
deny from all
-
</FILES>
6 Nu lasati datele de conectare in wp-config.php , cel mai bine e ca datele de conectare sa se afle intr-un folder care nu este accesibil pe internet , acum la majoritatea hosturilor (care sunt pe distributii *nix) folderul in care este webiste-ul este /home/nume-cont/public_html/ deci cel mai convenabil este sa separam wp-config.php in 2 fisiere iar fisierul ce contine datele de conectare sa fie pus in /home/nume-cont/ , deci fisierul care il vom muta va arata asa :
-
<?php
-
/* This file is used by the wp-config.php creation script during the
-
* installation. You don’t have to use the web site, you can just copy this file
-
* to "wp-config.php" and fill in the values.
-
*
-
* @package WordPress
-
*/
-
-
// ** MySQL settings – You can get this info from your web host ** //
-
/** The name of the database for WordPress */
-
-
/** MySQL database username */
-
-
/** MySQL database password */
-
-
/** MySQL hostname */
-
?>
iar cealata care va ramane pe servar
7 Daca webhostul tau suporta ssl poti forta ssl in administratie prin adaugarea liniei define(‘FORCE_SSL_ADMIN’, true); in wp-config.php .
8 Userul de mysql nu trebuie sa aiba toate privilegile , userul care il folosesti ca sa te conectezi la mysql poate avea numai urmatoarele privilegii :
select, insert, update, delete , create, drop and alter .
9 Nu permiteti vizualizarea folderelor , metoda asta e cunoscuta dar totusi e foarte folositoare , tot ce trebuie sa facem e sa introduceti in .htaccess urmatorul cod :
-
# Prevents directory listing
-
Options -Indexes
10 Legati cookie-urile de ip folosind Safer cookies .
11 Ascundeti folderul wp-admin asta se poate face folodind stealth-login , eu am reperat insa un mic bug la acest plugin , si anume ca pe ultimele versiuni de wordpress actuale ( 2.7.1 ) daca instalezi acest plugin pe orice director in afara de index iti face redirect catre autentificare , dar acest bug merge fixat destul de usor , dupa ce stealth-login va genereaza .htaccess-ul intrati manual in .htaccess si cautati urmatoarea linie partiala :
-
wp-login.php?stealth_out_key
dupa acea linie puneti urmatoarele linii
-
RewriteCond %{REQUEST_URI} wp-admin/
-
RewriteCond %{REQUEST_URI} wp-login\.php
aceste doua linii vor specifica clar ca numai in cazul in care se cer acele doua locatii sa functioneze RewriteRule .
12 Scoateti meta-tagul care raporteaza versiunea de wordpress cel mai simplu mod de a face asta este sa modificatii function.php din interiorul templatului si sa puneti in el urmatorul cod :
-
//Security
-
remove_action(‘wp_head’, ‘wp_generator’);
13 Restrictionati accesul pe ip in folderu-ul wp-admin cel mai simplu mod prin adaugarea unei file .htaccess cu codul :
-
AuthUserFile /dev/null
-
AuthGroupFile /dev/null
-
AuthName "Security R1"
-
AuthType Basic
-
<LIMIT GET >
-
order deny,allow
-
deny from all
-
allow from ip
-
allow from ip
-
allow from ip
-
</LIMIT>
14 Restrictionati orice conexiune la mysql care nu provine din localhost .
15 Folositi transfer prin sftp , cand folositi transferul prin ftp obisnuit parola se trimite sub forma de text , ceea ce nu este foare indicat ..
16 Restrictionati indexarea folderelor ce incep cu wp- , in robots.txt trecem :
-
User-agent: Googlebot
-
Disallow: /wp-
-
Disallow: /uploads/
-
Disallow: /feed/
-
Disallow: /comments/feed
-
Disallow: /feed/$
-
Disallow: /*/feed/$
-
Disallow: /*/feed/rss/$
-
Disallow: /*/*/feed/$
-
Disallow: /*/*/feed/rss/$
-
Disallow: /*?*
-
-
User-agent: *
-
Disallow: /wp-
-
Disallow: /uploads/
-
Disallow: /feed/
-
Disallow: /comments/feed
-
Disallow: /feed/$
-
-
User-agent: Googlebot-Image
-
Allow: /*
acest cod interzice si indexarea feed-ului pentru a nu produce in google continut dubicat .
17 Folositi login-lockdown pentru a va proteja impotriva unui posibil atack brute force .
18 Folositi login-encryption pentru a securiza autentificarea prin algoritmele rsa si dsa .
19 Upgradati mereu wordpress-ul la ultima versiune .
20 Si nu in ultimul rand verificati dupa fiecare update fiecare variabila $_GET sau $_POST din website impotriva atacurilor de tip Xss si SQL INJECT .
21 Rewrite in functie de ip se poate face cu urmatorul cod in .htaccess :
-
<IfModule mod_rewrite.c>
-
RewriteCond %{REQUEST_URI} wp-login.php
-
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.0
-
RewriteRule .* http://www.domain.com/ [R,L]
-
</IfModule>
Optional :
21 Puteti instala si un “firewall” de tip php care sa blocheze atacurile Xss, sql inject si anumite programe de crawl sau folositi scriptul php de configurare a ip-tables (mai recomandat ) .
Exista si alte metode mai avansate de protectie dar nu se pot aplica decat daca aveti un servar dedicat










Ordis, A spus:
Pe August 24th, 2009 la 1:00 pm
Informatii super ok
Multumim