Protecţie pentru wp-config.php


Cât de sigur este WordPress? Numărul tot mai mare de utilizatori WP este şi o dovadă a încrederii creatorilor de blog-uri în siguranţa folosirii WP (pe lângă simplitatea şi funcţionalitatea utilizării). Desigur că nu este vorba de o securitate absolută, întotdeauna se vor găsi unii mai „cu minte”…

Prevenirea unor breşe se securitate şi o mai mare siguranţă în folosirea WP se poate face şi prin protejarea fişierului wp-config.php. Acest fişier conţine datele cele mai importante despre găzduirea blog-ului, astfel că un posibil intrus poate deturna baza dvs. de date sau chiar şterge întreg blogul. Pe un blog de limbă germană cu tematica WordPress am găsit un articol despre două modalităţi de protejare a fişierului respectiv (la rândul lor preluate de pe un alt blog în limba engleză). Autorul, Frank Bueltge, mi-a permis preluarea şi traducerea conţinutului, în special doresc a-i mulţumi pentru punerea la dispoziţie a elementelor de cod. Pentru o mai bună urmărire a acestora din urmă, le-am inclus întodeauna între două linii orizontale (nu copiaţi liniile în fişier!).

1. Completarea fişierului .htaccess

Un mod simplu şi rapid de limitare a accesului la fişierul wp-config.php este completarea codului din .htaccess.

________________________________________________________________________________

# protect wpconfig.php
<files wp-config.php>
Order deny,allow
deny from all
</files>

________________________________________________________________________________

Fişierul .htaccess pentru WordPress (Atenţie: în locul numele dvs introduceţi adresa paginii dvs.) ar putea arăta în felul următor:

________________________________________________________________________________

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# www2nowww
RewriteCond %{HTTP_HOST} ^([^.]+)\.numeledvs\.ro$ [NC]
RewriteRule ^(.*)$
http://numeledvs.ro/$1 [R=301,L]

# Hinzufuegn von Slash 
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# Schutz der wp-config.php
<files wp-config.php>
Order deny,allow
deny from all
</files>

# Datei zum Regeln von IP-Bereichen
Order deny,allow
Allow from all 

# Sperre folgende IPs
deny from
83.246.96.42
deny from 82.103.133.221
deny from 74.86.15.2

________________________________________________________________________________

2. Mutarea fişierului wp-config.php în directorul principal

De obicei arhiva WordPress este încărcată pe server în directorul /home/numeledvs/public_html/, deci într-un director public. A doua modalitate de protecţie a fişierului wp-config.php implică mutarea acestuia o treaptă mai sus, deci urmărind url-ul /home/numeledvs/, deci într-un spaţiu nepublic. Din păcate nu toţi webhoster-ii permit acest lucru.

Fişierul wp-config.php conţine în mod normal următoarea sintaxă:

________________________________________________________________________________

<?php

// ** MySQL settings ** //

define(‘DB_NAME’, ‘putyourdbnamehere’);    // The name of the database

define(‘DB_USER’, ‘usernamehere’);     // Your MySQL username

define(‘DB_PASSWORD’, ‘yourpasswordhere’); // …and password

define(‘DB_HOST’, ‘localhost’);    // 99% chance you won’t need to change this value

define(‘DB_CHARSET’, ‘utf8’);

define(‘DB_COLLATE’, ”);

// You can have multiple installations in one database if you give each a unique prefix

$table_prefix  = ‘wp_’;   // Only numbers, letters, and underscores please!

// Change this to localize WordPress.  A corresponding MO file for the

// chosen language must be installed to wp-content/languages.

// For example, install de.mo to wp-content/languages and set WPLANG to ‘de’

// to enable German language support.

define (‘WPLANG’, ‘ro’);

/* That’s all, stop editing! Happy blogging. */

define(‘ABSPATH’, dirname(__FILE__).’/’);

require_once(ABSPATH.’wp-settings.php’);

?>

________________________________________________________________________________

Deschideţi un nou fişier cu numele, de exemplu, config.php, cu următoarele elemente de cod:

________________________________________________________________________________

<?php
// ** MySQL settings ** //
define(‘DB_NAME’, ‘putyourdbnamehere’);    // The name of the database

define(‘DB_USER’, ‘usernamehere’);     // Your MySQL username

define(‘DB_PASSWORD’, ‘yourpasswordhere’); // …and password

define(‘DB_HOST’, ‘localhost’);    // 99% chance you won’t need to change this value

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = ‘wp_’;   // Only numbers, letters, and underscores please!

?>
________________________________________________________________________________

Acest fişier este încărcat prin FTP pe server în zona neaccesibilă prin comanda www, în cazul nostru /home/numeledvs/ (în nici un caz în /public-html). În fişierul original wp-config.php introduceţi liniile de cod prezentate mai jos.

________________________________________________________________________________

<?php
include(‘/home/numeledvs/config.php’);

// Change this to localize WordPress.  A corresponding MO file for the
// chosen language must be installed to wp-content/languages.
// For example, install de.mo to wp-content/languages and set WPLANG to ‘de’
// to enable German language support.
define (‘WPLANG’, ‘ro’);

/* That’s all, stop editing! Happy blogging. */

define(‘ABSPATH’, dirname(__FILE__).’/’);

require_once(ABSPATH.’config.php’);

?>

________________________________________________________________________________

Cu aceste schimbări de sintaxă datele dvs. referitoare la baza de date, la nume şi parola sunt într-un spaţiu nepublic, deci ele nu pot afişate ca text pentru cei neavizaţi. Este doar un mic pas în plus pentru o siguranţă mai mare a WP, însă poate fi pasul hotărâtor.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (3 evaluări, media: 5,00 din 5)
Se încarcă...

4 comentarii

  1. cristi spune:

    Este un articol foarte bun, multumim. Ma intereseaza prima metoda de protejare a fisierului prin .htaccess . Sunt 2 parti de cod… se pun impreuna in fisierul .htaccess ?

  2. jürgen.toth spune:

    Autorul primului articolul citat (in engleza) a dat ca sursa doar prima parte a codului. Autorul german (al carui articol l-am tradus) a completat codul primului. Se pot folosi amandoua, insa separat. Cunoscand autorul, eu tind spre cel german. Upps, tocmai am observat ca am uitat sa traduc indicatiile din cod, sunt doar explicatii, nimic rau.

  3. cristi spune:

    Voi urma sfatul tau, adica voi folosi codul german… Ms.

  4. cristi spune:

    Am incercat codul german dar nu mi-a mai mers blogul. Asa ca am pastrat doar prima parte a codului, asa functioneaza.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *