December 31, 2013

Zabezpečení WordPressu

Zde si popíšeme několik způsobů, jak lépe zabezpečit web používající WordPress. Nejprve však jedno upozornění - jedno z nejdůležitějších pravidel je udržovat WordPress aktualizovaný na poslední verzi, stejně tak i nainstalované pluginy (či témata vzhledu).

Před instalací


Nejprve je vhodné změnit prefix databáze v souboru wp-config-sample.php z původního prefixu:

$table_prefix = 'wp_';

na nějaký jiný:

$table_prefix = '1w27p_';

Po změně přejmenujte z wp-config-sample.php na wp-config.php a přejděte k normální instalaci.

Po instalaci


Po instalaci WordPress nastaví přihlašovací jméno na admin - toto je dobré změnit na jiné. Zároveň by heslo mělo být odolné - nejlepší je vygenerovat si silné heslo pomocí některých on-line generátorů hesel.

Zabezpeční adresáře wp-admin


Dále je vhodné omezit přístup do složky wp-admin dle IP adresy administrátora (či více administrátorů). Toho lze docílit vytvořením souboru .htaccess s tímto obsahem:

Deny from all
Allow from <Your IP>

Přístup do adresáře wp-admin je vhodné zabezpečit i přes heslo.

Zabezpečení souboru wp-config.php


Soubor wp-config.php lze zabezpečit dvěma způsoby - buď přesunout tento soubor o adresář výše (což na mnoha serverech znamená mimo dosah běžných návštěvníků) nebo přístup k němu můžete omezit v souboru .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

Zabezpečení adresářů wp-includes a wp-content


Poté je vhodné omezit i přístup k většině souborů ve složkách wp-includes a wp-content - přístup povolíme pouze k obrázkům, CSS a JavaScript souborům. Toto zařídíme přidáním následujících řádek do souboru .htaccess:

Order Allow, Deny, Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">Allow from all</Files>

Jiný způsob (dle WordPress Security) a mnou doporučovaný je:

# 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
...

Poznámka: Kód výše musí být mimo tagy # BEGIN WordPress and # END WordPress jinak může dojít k přepsání při změně nastavení systému WordPress.
Také je třeba si uvědomit, že toto nebude správně fungovat na Multisite, protože RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] zabrání souboru ms-files.php v generování obrázků. Pokud tento řádek přeskočíte, bude generování fungovat, ale znamená to i méně bezpečnosti.

Zakázání editování souborů


V případě, že více uživatelů s administrátorskými právy je také vhodné zakázat přímou editaci souborů z administrace, v tom případě přidejte na konec souboru wp-config.php tento řádek:

define('DISALLOW_FILE_EDIT', true);

Zakázání XMLRPC


Pokud k přístupu používáte pouze defaultní webové rozhraní je vhodné i zakázat XMLRPC - toto provedete přidáním následujícího řádku na konec souboru wp-config.php:

add_filter('xmlrpc_enabled', '__return_false');

Pluginy pro vyšší zabezpečení


Níže najdete několik užitečných pluginů, které zvýší zabezpečení vašeho webu. Osobně povětšinou používám kombinaci prvních dvou pluginů, ale pluginů s podobnou tématikou existuje daleko více.

Limit Login Attempts


Tento plugin umožní omezit počet přihlašovacích pokusů - to je užitečné pro bránění se tzv. brute force typu útoků.

Acunetix Secure WordPress


Plugin nabízí prozkoumání vaší instalace systému WordPress z hlediska zabezpečení. Po instalaci a aktivaci pluginu přejděte na stránku jeho nastavení a zaškrtněte následující možnosti:

  • Hide WordPress version for all users but administrators
  • Remove various meta tags generators from the blog's head tag for non-administrators.
  • Remove Really Simple Discovery meta tags from front-end
  • Remove Windows Live Writer meta tags from front-end
  • Disable error reporting (php + db) for all but administrators
  • Remove core update notifications from back-end for all but administrators
  • Remove plug-ins update notifications from back-end
  • Remove themes update notifications from back-end
  • Remove login error notifications from front-end
  • Hide admin notifications for non admins
  • Remove the version parameter from urls

Aktuální míru zabezpečení a případné chyby můžete prozkoumat v administraci na stránkách Secure WP -> Nástěnka (Dashboard) a Secure WP -> Scanner.

Wordfence Security


Wordfence Security je plugin nabízející lepší zabezpečení vašeho webu a zahrnuje firewall, aktuální statistiky provozu s geolokací a další vlastnosti.
U tohoto pluginu je velký rozdíl mezi neplacenou a placenou verzí - pokud si pořídíte placenou verzi je to dobrá náhrada za předchozí plugin v opačném případě je lepší použít Acunetix Secure WordPress.

Ostatní


Pokud chcete ještě lepší zabezpečení proti mailware a spamu můžete také použít placené služby jako jsou Akismet či Securi - obě jsou prověřené a nabízejí výbornou spolupráci se systémem WordPress.

Zdroje


October 10, 2012

Another XUL application

I’m happy that another client of mine ordered tiny application on which I can use Mozilla XulRunner as a development environment. Functionality is pretty simple – application should select by lot winners from many thousands of records that are imported via CSV file. User can customize parameters of allotting and output is also CSV document in same format as the imported one. Application self was packaged using Inno Setup so it’s easy to install and use. Bellow some screenshots:





September 14, 2012

Scratchpad Snippets Released

Today was on AMO preliminary approved my new add-on for Mozilla Firefox so you are free to download it. Scratchpad Snippets is simple add-on that allows snippets in Firefox’s Scratchpad. Here are some important links:

Hopefully you will enjoy this add-on.

August 15, 2012

Mozilla Add On Install Manifest Schema updated

Yesterday I wrote about XUL Schema project – today I’ve also updated related project Mozilla Add On Install Manifest Schema and I’ve add regular release downloads for both of them.

You can download from these locations:

August 14, 2012

XUL Schema

If you are looking for up-to-date XSD for XUL you should look at https://xulschema.codeplex.com – I’ve recently updated it with changes from Gecko 2.0 up to the current development version (13). I also wrote short tutorial how to add schema into the Eclipse IDE.

August 9, 2012

First post

Because I lost my previous domain http://www.ondrejd.info/ and blog here is no more available I created new one here - I'm planning to move posts from old blog here and of course adding new posts as well :)