Bezpečnost

Přehled bodů jak zlepšit bezpečnost WordPress:

  1. Nepoužívejte uživatelské jméno admin
  2. Použijte silné heslo
  3. Omezení práv souborů a složek
  4. Zálohujte
  5. Změnte prefixu databáze
  6. Zabezpečení přihlašovací stránky
  7. Aktivujte SSL (https) pro přihlášení do administrace
  8. Zamkněte WordPress administraci /wp-admin/ na konkrétní IP adresy
  9. Zamknutí přihlášení wp-login.php na konkrétní IP adresy
  10. Přesuňte wp-config.php o úroveň výše
  11. Vypněte editaci šablon a pluginů z administrace
  12. Ochrana adresáře wp-includes
  13. Scanujte soubory a databázi
  14. Další zabezpečení v .htaccess
  15. All-in-one bezpečnostní pluginy
  16. Automatické aktualizace
  17. Vypněte hlášení PHP chyb na stránkách
  18. Vypněte XML-RPC Pingback
  19. Dvoufázové přihlašování
  20. Zamezení zjištění uživatelského jména pomocí ?author=1
  21. Zapomenutá instalace WordPressu v podadresáři
  22. Další bezpečnostní tipy

1. Nepoužívejte uživatelské jméno admin

Nejčastěji atakované uživatelské jména jsou: admin, test, user, administrator, a další viz statistiky z DDOS útoku na WordPress tak ty rozhodně nepoužívejte. Pokud již máte admin uživatelské jméno je třeba ho zrušit zřízením nového uživatele, přidáním admin práv (+ super admin v případě WPMU), odlogovat, přihlásit jako nový admin a smazat původní účet. Při smazání přesuňte všechny články a nového admina. Nejdříve zálohujte databázi.

2. Použijte silné heslo

Podívejte se na nejpoužívanější hesla při DDOS útoku na WordPress a ty si určitě nedávejte: admin, 123456, password, 12345678, 666666, 111111, 1234567, qwerty, 23321, 12345, 123123 a další viz odkaz statistiky výše. Kromě silného hesla by jste měli heslo čas od času změnit. Pokud máte hesel více můžete využít nástroj na správu hesel, je jich více já používám LastPass.

3. Omezení práv souborů a složek

Nastavením složek je preventivní a doporučuji nastavit níže uvedené hodnoty. Dejte pozor na některé konkrétní pluginy které mohou vyžadovat něco jiného!

  • CHMOD hodnota pro složky 755 nebo 750
  • CHMOD hodnota pro soubory 644 or 640
  • wp-config.php by měl mít práva 600
  • .htaccess nastavte 440 nebo 444  – Pozor nikdo pak nebude mít možnost upravovat soubor dokud přes ftp zvýšit práva na 644.

4. Zálohujte

Záloha má dvě části jedna je záloha databáze a druhá záloha souborů na FTP. Záloha je třeba udělat je jiný disk (a jiný server). Takže ideálně zálohy ukládejte někam jinam přes FTP, úložiště typu Dropbox a podobně.

  • Záloha databáze – pamatujte si, že snapshotem disku (např. VPS) se DB může zálohovat chybně. Vetšinou je na to potřeba nějaký softwarový agent, který udělá export DB
  • Záloha souborů – soubory je třeba zálohovat jsou: .htacces, wp-config.php, uploads, šablona a nějaké jiné soubory, kde jste dělali ručně změnu

Pluginy pro backup

Zde doporučuji nastavit zálohování tak, abyste měli zálohu na jiném místě (v cloudu) než máte hosting.  Já zálohuji do Dropboxu nebo Google docs. K zálohování můžete využít pluginy/služby zdarma tak i placené.

  • BackWPup (zdarma) – umí zálohovat do cloudu, lze nastavit zálohu databáze a soubor zvláště
  • UpdraftPlus (zdarma) – druhý skvělý pluugin na zálohy ale i migraci či klonování. Umí zálohovat docloudu
  • BackupBuddy (placený) – doporučení z ebooku viz zdroje
  • VaultPress (placený) – celkem dost lidí ho doporučuje, placený plugin od WordPress.com

5. Změnte prefixu databáze

WordPress při instalaci umožňuje změnit prefix z wp_ na cokoli jiného například gta_ . Některé pluginy tu umožňují udělat i zpětně. Zde doporučuji zálohovat databázi. Tato změna pomáhá předcházet SQL injection útokům.

6. Zabezpečení přihlašovací stránky

Nastavte max množství chybných přihlášení v určitém časovém úseku. Takže například v rámci 5 minut dovolíte max 5 krát se špatně přihlásit. Pokud se někdo zadá pošesté špatné heslo pak dostane ban na IP adresu na 15 minut se nejde přihlásit z dané IP adresy. Tohle je opravdu důležité, neuvěřili byste kolik robotů projíždí WordPress weby a zkouší se prolomit dovnitř pomocí odhadnutí přihlašovacího jména a hesla. Zde jsou tipy na pluginy:

7. Aktivujte SSL (https) pro přihlášení do administrace

Nastavte SSL šifrování tedy https pro přihlášení do administrace. Pokud máte kvalitní hosting tak ten Vám umožní použít jejich SLL certifikát pokud to budete využívat jen pro přihlášení do administrace. Toto lze nastavit pomocí pluginu nebo jednodušeji vložením následujícího kódu do wp-config.php

define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);

8. Zamkněte WordPress administraci /wp-admin/ na konkrétní IP adresy

Díky jednoduchému zápisu do .htaccess v /wp-admin/ složce máte možnost omezit přístup pouze na konkrétní IP adresu. Vytvořte .htaccess ve složce /wp-admin/ a vložte do něj kód viz níže. Editujte IP adresu na tu Vaší, případně si jich dejte více.

#zakáže přístup do wp-admin a povolí jen konkrétní IP adresy
Order Deny,Allow
Deny from all
#IP address to Whitelist
allow from 123.123.123.123

Pokud však používáte CloudFlare, nebude Vám výše uvedený způsob zamknutí složky /wp-admin/ fungovat. Je třeba vložit upravený kód dle rady http://blog.ergatides.com

# add the following lines to /wordpress/wp-admin/.htaccess
SetEnvIf X-FORWARDED-FOR 123.123.123.123 allowedip
order deny,allow
deny from all
allow from env=allowedip

9. Zamknutí přihlášení wp-login.php na konkrétní IP adresy

Pokud budete zamykat složku /wp-admin/ na konkrétní IP adresy, zamkněte určitě také soubor wp-login.php. Stačí opět zápis do .htaccess ale v hlavní složce /WWW/. Použijte tento kód:

# add the following lines to /wordpress/.htaccess
<Files wp-login.php>
    order deny,allow
    deny from all
    allow from 123.123.123.123
</Files>

Pokud však používáte CloudFlare, nebude Vám výše uvedený způsob zamknutí složky  fungovat stejně jako výše. Je třeba vložit upravený kód:

# add the following lines to /wordpress/wp-admin/.htaccess
SetEnvIf X-FORWARDED-FOR 123.123.123.123 allowedip
order deny,allow
deny from all
allow from env=allowedip

10. Přesuňte wp-config.php o úroveň výšewp-config_ouroven_vyse

WordPress umožňuje přesunout wp-config.php u úroveň výše – do hlavního adresáře FTP který je nad www nebo public_html a není z internetu dostupný. Podívejte se na obrázek, takto mě to na Wedosu funguje.

11. Vypněte editaci šablon a pluginů z administrace

Vypnutí editace souborů z administrace WordPressu je celkem jednoduchá věc. Místo toho editujte přes SFTP. Stačí pouze tento zápis do wp-config.php:

define('DISALLOW_FILE_EDIT', true);

12. Ochrana adresáře wp-includes

Do .htaccesu vložte následující kód:                                                                             (nevyzkoušeno)

# 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

Toto nebude moc dobře fungonat na multisite a navíc RewriteRule ^wp-includes/[^/]+\.php$ – [F,L] bude blokovat ms-files.php generování obrázků. Netestováno.

13. Scanujte soubory a databázi na podezřelé typy kódu

Tohle je trocho pro pokročilé, nicméně tyto pluginy Vám proscanuje stránky a databázi a umáže podezřelé kódy jako base64 encode a podobně.

14. Další zabezpečení v .htaccess

#Zakáže přímý přístup přes prohlížeč k souborům htaccess a htpasswd, a
#všem s příponou ini,txt,phps,fla,psd,log,sh,bak,backup,back,set a hlavně sql
<FilesMatch ".(htaccess|htpasswd)$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch ".(ini|txt|phps|fla|psd|log|sh|bak|backup|back|set|sql)$">
Order Allow,Deny
Deny from all
</FilesMatch>

#Ochrání důležitý soubor wp-config.php - alternativa k bodu 9.
<files wp-config.php>
order allow,deny
deny from all
</files>

15. All-in-one bezpečnostní pluginy

Dost práce za Vás mohou udělat bezpečnostní pluginy. Výběr je na Vás, zde jsou dva zajímavé

16. Automatické aktualizace

Počínaje verzí 3.7 začal WordPress používat automatické aktualizace samotného jádra WordPressu pro významné nové verze. Tím je myšleno 3.7, 3.8, 3.9 a podobně. Automatické aktualizace se netýkají pluginů, šablon a drobných bezpečnostních záplat. Drobné bezpečnostní aktualizace se označují 3.9.1, 3.9.2, 3.9.3 a podobně. Automatické akualizace ssebou nesou riziko, že pokud nebude nějaký používaný plugin nebo šablona delší dobu aktualizovaná jeho tvůrcem, může Vám to udělat na webu nejakou chybu. Vždy je třeba projít stránky jestli dobře fungují. Nicméně automatické aktualizace se dají nastavit v wp-config.php

Zakázaní automatických aktualizací

# Disable all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

Povolení všech automatických aktualizací jádra WP včetně drobných

# Enable all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

 Nastavení automatické aktualizace pluginů

# zapne automaticke aktualizace pluginu
add_filter( 'auto_update_plugin', '__return_true' );

 Nastavení automatické aktualizace šablon

# zapne automaticke aktualizace sablon
add_filter( 'auto_update_theme', '__return_true' );

Upozorňuji, že šablony musí podporovat automatické aktualizace!

17. Vypněte hlášení PHP chyb na stránkách

Jestliže plugin nebo šablona způsobí chybu, tak chyba se pak může ukázat na stránkách pokud to nemá hostingová firma vypnuté globálně. Takové chybové hlášení může usnadnit práci pirátům. Chybové hlášení vypnete zápise následujícího kódu do wp-config.php:

# disable error reporting
error_reporting(0);
@ini_set(‘display_errors’, 0);

 

18. Vypněte XML-RPC Pingback

Od verze WordPressu 3.5 byl XML-RPC zapnut již v základu. Tato funkce umožňuje vzdáleně připojit WordPress na blogovací klienty. Je také používán na trackbacky a pingbacky. Bohužel hackeři využívají tento soubor a utočí na něj DDOS útokem. Podívejte se na plugin Disable XML-RPC Pingback. Zatím jsem vypnutí XML-RPC Pingback netestoval, budu rád pokud se podělíte o své zkušenosti.
iThemes Security nově umí zabezpečit i XML-RPC. Můžete nastavit tři stavy:

  • Off = funkce XMLRPC je zapnuto
  • Only Disable Trackbacks/Pingbacks = vypne trackback/pingback, ale ostatní funkce budou fungovat. Některé jsou potřeba pro služby jako Jetpack nebo WordPress Mobile aplikaci.
  • Completely Disable XMLRPC – kompletně vypne XMLRPC

19. Dvoufázové přihlašování

dvoufazove_overeni_prihlaseniJedno z nejlepších zabezpečení. Přihlášení je klasicky uživatelské jméno a heslo. U dvoufázového přihlášení musíte ještě zadat vygenerovaný aplikací z mobilního telefonu. Normálně znáte z internetového bankovnictví zasílání kódu pomocí SMS zde se využívá mobilní aplikace.

Aktivace dvoufázového ověření při přihlášení:

  1. Instalujte plugin SZ – Google
  2. Aktivujte plugin
  3. Deaktivujte Google+ modul a aktivujte Google Authenticator modul
  4. Instalujte aplikaci Google Authenticator v Android telefonu
  5. Běžte do vašeho profilu ve WordPressu  „uživatelé – profil“ a v řádku Secret klikněte na „Create new code“ 
  6. Vytvořte profil v aplikaci (například název webu) a opište kód do aplikace v telefonu nebo pokud máte čtečku QR codů ho scanujte do aplikace (aplikace v telefonu umožňuje nascenovat QR kód ale chce externí čtečku kódu). Poté uložte
  7. Naposledy zaškrtněte ve WordPressu v části Google Authenticator Active a uložte
  8. Poté se odhlaste z WordPressu a přihlašte se

Zajímavá alternativa pro registraci uživatelů do WordPressu je kontrolní otázka například „Napište tisíc v číslech:“, používám plugin Signup Code.

20. Zamezení zjištění uživatelského jména pomocí ?author=1

Divili jste se někdy jak mohl robot zjistit Vaše uživatelské jméno a už jen tipuje hesla? Stačí napsat domena.cz/?author=1 poté se přesměruje na domena.cz/author/jmeno/. Zkuste si to na Vašem WordPressu. Díky za tip Vladimírovi Smitkovi a jeho prezentace z 3.Wordpress konference.

Tento zápis vložte do .htaccess

# zamezi zjisteni username pomocí ?author=1
RewriteCond %{QUERY_STRING} author=\d
RewriteRule ^(.*)$ http://domena.cz? [L,R=301]

Alternatiova (ověřuje jestli fungují obě)

# zamezi zjisteni username pomocí ?author=1
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://www.DOMENA.cz/? [L,R=301]

21. Zapomenutá instalace WordPressu v podadresáři

Martin v komentářích popsal zkušenost jak zapomenutá instalace WordPressu v podadresáři hakla a shodila celý webhosting. Kdy testovací instalace WordPressu zůstala zapomenutá, neaktualizovala se později byla hacknutá, rozesílala spam a napadla i hlavním instalaci WordPressu v root adresáři. Nezapomeňte takové instalace WordPressu v podadresáři webhostingu smazat.

Další bezpečnostní tipy

  • Nepoužívejte nejlevnější nebo free hosting
  • Dejte pozor odkud se přihlašujete – používejte jen svůj počítač a mobil na přihlášení do administrace. V žádném případě se nepřihlašujte v kavárně nebo u kamaráda, který hraje cracnuté hry a má možná trojského koně nebo je dokonce zombie a ani to neví
  • Aktualizujte, aktualizujte, aktualizujte
  • Smažte nepoužívané účty
  • Smažte nepoužívané pluginy a šablony, nechte aktivní a jednu základní např. twentyten
  • Dejte vždy (zákazníkovi, editorovy) co nejnižší možné práva, nedávejte jim administrátorské práva
  • Méně pluginů znamená více
  • Secret keys – zkontrolujte si jestli se Vám při instalaci vygenerovali secret keys v wp-config.php, pokud se tak nestalo zde
  • Použijte SFTP namísto FTP – ověřte si jestli umí Váš hosting SFTP a použijte je namísto FTP
  • sucuri.net/signup
    • Online kontrola webu zdali jste na blacklistu přímo na nástěnce
    • Kontrola základních bezpečnostních prvků + jejich nastavení zaujal me tento:
        • do adresáře /www/wp-content/uploads vloží .htaccess s kódem
      <Files *.php>
      deny from all
      </Files>

       

Zdroje informací:

Odkazy na kodex WordPressu:

47 komentářů u „Bezpečnost“

  1. Kvalitní a povedený článek. Díky za vyčerpávající informace ohledně bezpečnosti WordPressu, myslím, že pomůže nejen mě, ale i spoustě další lidí ve zvýšení zabezpečení webů.

  2. Prosím o info a radu, zda se s tím někdo setkal a jakou bezpečnostní část článku mohu na toto použít, aby se to již neopakovalo, když mi asi před necelým měsícem došel email od googlu, že mě z důvodu nebezpečných stránek a to konkrétně pishingu vyřazují z vyhledávání. Já jsem hned šla kontrolovat stránky, mám tam zatím jen šablonu a teprve se na práci s ní chystám – nicméně se nějak nějaký robot či co dostalo do tinymce a následně do tématu stránek a nahrálo mi tam následující soubor: respektive byl tam i zip souboru, vše sem smazala a v inkriminovanou dobu, kdy tam tyto souboru něco nebo někdo narhál, jsem na svém wp vůbec nebyla.
    //mydigest.net/wp-includes/js/tinymce/themes/advanced/skins/yahoo/login.html

    Může mi někdo poradit jak a co změnit, abych se vyvarovala podobných kulišáren? Heslo mám dobré, ale mohu změnit na lepší, admin mám původní myslím tak jej změním též, není problém, ale co ještě?

      1. Projedte stránky online scanem http://sitecheck.sucuri.net/scanner a Pokud jsou stránky čisté pokračujte dál. Pokud ne zkuste přeinstalovat wordpress
      2. udělejte si zálohu DB i FTP. Udělejte export WP v admin menu. (pokud na webunic nemáte vše smažte a nainstalujte WP znovu včetně DB)
      3. Změnte hesla do: databáze, FTP, wordpress admin
      4. nainstalujte si WP better security – a pohrajte sis s nastavením (limit login access, intrusion detection a další
      5. Zakažte robotům indexovat interní adresáře WP-admin a WP-includes (lépe pomocí htaccess)
      6. zakažte změny souborů htaccess a wp-config.php
      7. používejte scanner souborů aby Vás upozornil na změny souborů mailem (WP-better security nebo wp security scan)

      Pokud budete potřebovat pomoci, zadejte se na forech webtrhu nebo na separatistovi. Je to nastavování pro pokročilého uživatele WP.

      Google ban zkontrolujete pomocí tohoto odkazu (url změnte na Vaší): http://www.google.com/safebrowsing/diagnostic?site=bigdrobek.com

      1. Dobrý den,

        četla jsem váš článek o bezpečnosti a vyzkoušela scanner. Bohužel výsledek byl takový:

        Warning: Malicious Code Detected on This Website!

        Stránky teprve vytvářím, prosím, poradíte co s tím?

        Veronika

        1. Dobrý den Veroniko, zřejmě jste použila plugin, šablonu která má nějakou chybu nebo někdo odchytil Vaše heslo. Je hodně těžké takhle něco poradit, záleží jak tomu rozumíte a co od webu chcete. Můžete začít od znova a zjistit kde se stala chyba, nebo si na toho někoho najmout, mohu vám někoho doporučit.

    1. Velmi přínosné, na wp dělám odně malých webů, bzpečností jsem se nikdy moc nezabýval až do doby kdy mi jeden z nich někdo navštívil, skoncilo to kompletní predelavkou 🙂 Tyhle jsou k nezaplaceni.

  3. http://www.linkedin.com/groupAnswers?trk=view_disc&gid=154024&commentID=84289519&ut=3wp6R3zq5ZHBg1&viewQuestionAndAnswers=&discussionID=123413129
    Darel Parker • Use Website Defender and WP-Security Admin to identify improperly configured folder permissions and to change your WP database table prefixes.
    Use Bulletproof Security to secure and backup your .htaccess files.
    Install Timthumb Vulnerability Scanner and update any vulnerable scripts. Run it every time you install a new theme.
    Stick to established theme and plugin developers (WordPress.org, ThemeForest, Woo, etc.), and stay away from „free“ theme sites that distribute premium themes.

  4. Ahoj, prosím tě, jak tam máš ten zápis do htaccessu, tak „netluče“ se to pak s tím robots.txt?
    Jde mi o řádku:

    Pak mám ještě dotaz:
    ServerSignature Off
    Options -Indexes
    se dává úplně nahoru do htaccessu?
    Děkuji

    1. Teď jsem někde četl, že pokud nastavíš v robot.txt aby roboti neprocházeli nějaké adresáře, tak někteří „špatní roboti“ tohle můžou brát jako výzvu.
      Takže netluče se to. Robot.txt je informace pro roboty, kterým se nemusí řídit všichni. Kdežto přes htaccess si nastavuješ svůj vlastní server aby to neumožňoval.
      Myslím, že je to jedno kam to dáš.

  5. Ahoj, zkoušel jsem na verzi 3.3.2
    vložit
    define(‚DISALLOW_UNFILTERED_HTML‘, true); … Zakázání vkládání nefiltrovaného html pro všechny uživetele včetně administrátora

    a pozoruji problém s přístupností nabídky na instalaci pluginů, resp. se pak v adminovi nedostanu do instalace pluginů. Možná je to v nějaké souvislosti s nějakými jinými pluginy.

    1. matně jsi pamatuji že jsem to také zkoušel a že to mělo kolizi z nějakým pluginem nebo šablonou, ale už nevím s čím 🙁

  6. Ahoj,

    díky tvému návodu jsem spustil WP, i když jsem v tomto úplný amatér, ale rád se takové věci učím. Všechno proběhlo v pořádku. Pak jsem se dostal sem k otázce bezpečnosti a vůbec nevím, jakou má mít ten soubor .htaccess strukturu, jak se to zapisuje atd. Přestaly se mi zobrazovat trvalé odkazy, když jsem si tam překopíroval toto: http://www.separatista.net/forum/topic.php?id=1179#post-6026

    Mohu poprosit, zda by šlo poslat do mailu přímo to, co mám překopírovat do Word Padu, co uvádíš zde na stránkách?

    Jsem prostě jen uživatel, co si to chtěl spustit sám, ale teď už fakt nevím 🙁

    1. 1) místo wordpadu použij nějaký textový editor – já používám PSPad (wordpad může dělat problémy se znakovou sadou)
      2) jaký kód jsi tam zkopíroval? Nechal jsi tam kod který tam vložil WordPress?
      3) Klidně se registruj na foru a polož otázku do dané diskuze byt je půl roku stará 🙂

    1. Na některém hostingu to dělá toto:

      # Zakáže procházení adresářů vašeho serveru
      Options -Indexes

      Smažu to z návodu, dobrá připomínka. Díky

    1. Používám Limit login attempt (BWS) na odstranění „brute force attack“ to si myslím že plně dostačuje z hlediska bezpečnosti. IP dostane na 15 min ban a je jedno jaký uživatel.

  7. Ahoj, na zálohu (export) databáze používám plugin Adminer, který si pro potřeby provedení zálohy vždy v administraci aktivuji. Pak kompletní export obsahu. Nepřijdu tak o to nejdůležitější, tj. obsah.

    1. Já používám better wp security pokud je db menší jinak automaticky odlévám zálohy na Dropbox pomocí smapshot pluginu.

  8. Mám otázku k bodu 7. Kam do souboru wp-config.php mám vložit ty řádky

    define(‘FORCE_SSL_LOGIN’, true);
    define(‘FORCE_SSL_ADMIN’, true);

    Vložil jsem je na konec souboru ale přihlašování mi stále probíhá přes http a nepřesměruje se na HTTPS. Pokud zadám ručně HTTPS tak to je OK, takže SSL funguje.

    Funguje to na šechna přihlášení do administrace nebo jen na některé konkrétní username?

    1. kód vložit před /* That’s all, stop editing! Happy blogging. */
      Pak je myslím ještě třeba na hostingu aktivovat SSL. Někde umožnují použít sdílené SSL pro přihlášení admina

      define(‘FORCE_SSL_LOGIN’, true); - pro všechny uživatele
      define(‘FORCE_SSL_ADMIN’, true); - pro adminy

      Je třeba to více otestovat. Pro více info koukni sem:
      http://premium.wpmudev.org/blog/wordpress-ssl-login/ detailní nastavení
      http://www.wpbeginner.com/wp-tutorials/how-to-secure-your-wordpress-pages-with-ssl/ – plugin

  9. Díky za spoustu užitečných tipů, jen takový postřeh:

    Mj. jsem vyzkoušel bod 11 na premium šabloně, která má mnoho vlastních nastavení. A pokud v wp-config.php zakážu editaci šablon a pluginů, nefunguje pak právě nastavení šablony z administrace. U osobních projektů mi to nevadí, ale zákazníkovi ano.

    1. Ahoj,
      já bych doporučil pro apache toto:

      RewriteCond %{QUERY_STRING} author=
      RewriteRule ^(.*)$ http://beznekam.cz? [L,R=301]

      Řešení výše má 2 drobné nevýhody:

      a) {REQUEST_URI} ^/$ omezuje podmínku na dotaz do kořenové složky, to je většinou ok, ale u některých webhostingů mají mapované kořenové domény subdomény pomocí .htaccess do podsložek – např. u Wedosu: zde bude v defaultu request uri něco jako /domains/domena.xy/ a ne pouze /, takže k omezení nikdy nedojde.

      b) {QUERY_STRING} ^/?author testuje pouze, pokud je author hned za otazníkem a lze to pak jednoduše obejít pomocí dalšího parametru – např. /?obelsteni&author=1

      Také [0-9]* říká, že se číslo muže vyskytovat i nulakrát, takže to zablokuje i author=josef, což je ok, jen se ten výraz pak tváří, že dělá něco co doopravdy nedělá (vůbec tam ta část tedy nemusi být).

      Varianta co navrhuji testuje to, zda se kdekoliv v dotazu vyskytuje author=. Původně jsem měl ve výrazu author=d, který testoval zda je za rovnítkem číslice, ale to šlo obejit např. author= 1 (s mezerou) nebo author=%31 (ascii znak 1 v hexa).

  10. Zdravím,
    děkuji Vám za článek. Já osobně jsem na svém webu vyzkoušela bod 20. Ve WP nějaký ten čas pracuji, ale byl pro mě docela oříšek to, jak přepsat soubor .htaccess. Možná by bylo dobré připsat do článku pro začátečníky stručný návod, že .htaccess se dá otevřít pomocí programu, např. pomocí PsPadu či jiného. Když jsem si pak tento program nainstalovala, šel mi soubor .htaccess přepsat bez problémů. Pak uložit, nahrát FTP klientem na server, a bylo to. Při pokusu o zjištění uživatelského jména mě pak web jen přesměroval na úvodní stránku. Čili podle toho usuzuji, že se mi to povedlo. Ještě jednou Vám děkuji za článek a přeji krásný den.

  11. Já jsem zažil hack WP a celého hostingu, když jsem zapomenul na nějakou zkušební instanci WordPressu na jedné subdoméně. Ta se neaktualizovala a skrze ni se na webhosting nahrály skripty, co začaly posílat spam. Takže další postřeh je hlídat si různé zkušební a testovací instalace wordpressu a jakýchkoli jiných RS v různých zašitých podadresářích a subdoménách, a nezapomínat to vypínat jakmile se to někde nasadí naostro nebo se rozhodne, že se to pošle k ledu.

    1. Nechápu to, když děláš přece web, tak jedině na localu, ne? Testovat něco na ostro je dost o ústa 😀 (i když je pravda, jak co a kdy 🙂

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *