Ez a dokumentum egy előző változata!
Tartalomjegyzék
Weboldalüzemeltetői praktikák
Itt próbáljuk összefoglalni azokat a - szerintünk - „best practices”, azaz jó gyakorlatot megvalósító beállításokat egy weboldal esetén. A javaslatok a web gyökérmappájában található .htaccess fájlt érintik. Többnyire az oldal biztonságát vagy és/vagy az oldal betöltési sebességét növeli minden beállítás. A leírt beállítások nem új keletűek, de igyekszünk egy áttekinthető összefoglalót adni. A CMS rendszerek (Joomla, Wordpress, stb.) egyéb beállításaival és használatával itt nem foglalkozunk, mert azt már nagyon sok helyen leírták az interneten. A doimain.hu -t mindig cserélje ki a saját domainjére.
Átlag weboldal
www átirányítása www nélküli oldalra, pl.: www.mav-it.hu ⇒ mav-it.hu
#### www => non-www #### RewriteCond %{HTTP_HOST} ^www\.domain\.hu [NC] RewriteRule ^(.*)$ https://domain.hu/$1 [L,R=301]
http: oldal átirányítása https: oldalra, ha erőltetni szeretnénk a titkosított adatforgalmat
#### http => https #### RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Gzip oldaltömörítés bekapcsolása. Drasztikusan csökkentheti az oldal betöltési sebességét (a szerveren is telepítve kell lennie a modulnak!).
#### GZIP #### <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule>
Hotlink védelem. Ez a kicsi kódocska sok sávszélességet spórolhat nekünk, illetve a webszerver üzemeltetőjének. Megakadályozza, hogy a weboldal fájljait más weboldalak is használják, ezáltal „ellopják” az Ön sávszélességét.
#### Hotlink protection #### RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(.+\.)?domain\.hu/ [NC] RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|xml|png|css|pdf|js)$ - [F]
Az Apache alapértelmezésben (ha a könyvtár nem tartalmaz index.html vagy index.php fájlt) megmutatja a könyvtár tartalmát. Amennyiben ezt nem tartjuk kívánatosnak, akkor helyezzük ezl az alábbi kódpt a .htaccess fájlban:
Options -Indexes
Az alábbi kód megakadályozza számos exploit becsempészését az URL-be.
# Szűrünk minden base64 kódolt tartalmat az URL-ben RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] # # Szűrjük a <script></script> tageket az URL-ben RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # # Megakadályozzuk a PHP GLOBALS változók (át)írását RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # # Megakadályozzuk a _REQUEST változó átírását RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # # a fenti feltételek esetén 403 Forbidden header-t ad vissza a böngészőnek RewriteRule .* index.php [F]
Wordpress praktikák
A wordpress egyik sebezhetősége, hogy a gyökérmappában található xmlrpc.php fájlon keresztül az adatbázishoz próbálnak hozzáférni akár brute force technikával. Ez a kis kód elérhetetlenné teszi ezt a fájlt (illetve átirányítja, és „no” szócskát láthatunk a fájl betöltésekor). (Természetesen ha használni akarjuk az RPC szolgáltatást akkor NE használjuk ezt a kódocskát!)
#### xmlrpc attack protection #### Redirect 403 /xmlrpc.php ErrorDocument 403 "no"
Vannak bizonyos könyvtárak, amikben nem szabad .php fájlokat futtatni. Ilyen pl a /wp-includes és a /wp-content/uploads könyvtárak. Ezekbe tegyünk bele egy-egy üres .htaccess fájlt, és másoljuk bele az alábbi kódsort. Ezzel megakadályozzunk, hogy a rosszindulatú PHP kódot futtasson valaki ezekben a könyvtárakban.
<Files *.php> deny from all </Files>
Talán az egyik legkényesebb fájl a gyökérmappában lévő wp-config.php. Sok kényes adat között tartalmazza pl. az adatbázis hozzáférési adatait is. Ezt az alábbi kódocskát elhelyezve a gyökérkönyvtárban lévő .htaccess file-ban megakadályozzuk, hogy a kiszolgáló IP címétől eltérő IP címről elérjék a fájlt.
<files wp-config.php> order allow,deny deny from all </files>