Úvodní stránka › Fórum podpory WordPressu › Pluginy (funkčnost webu) › Pomoc, rada s bezpečností
Štítky: .htaccess, Better WP Security, bezpečnost, robots.txt, zabezpečení
Zvolené téma obsahuje celkem 11 odpovědí. Do diskuze (5 účastníků) se naposledy zapojil uživatel admin a poslední změna je stará 9 let, 7 měsíců.
-
AutorPříspěvky
-
21. července 2012 (15:03) #1846
Zdravím, chtěl bych se zeptat, dle dostupných informací jsem si nastavil
.htaccess
arobots.txt
.
Otázka zní, mám ten.htaccess
správně, nebo tam má být např jiné pořadí, nebo nějaké věci jinak, popřípadě bych to potřeboval prosím nějak “učesat” (vím, že asi např. to “RewriteEngine On” tam má být asi na začátku a pouze jednou, ale nejsem si jistý).
Druhá otázka je, zda se nebude ten.htaccess
s tímrobots.txt
nějak “bít” navzájem?
Popřípadě zda můj web bude nadále zaindexovatelný a viditelný pro katalogy a vyhledávače? Nerad bych nějakým nešikovným zápisem web “zneviditelnil”.
Díky moc za rady.Tady jsou mé soubory:
.htaccess
# disable server information ServerSignature Off # disable directory browsing Options -Indexes # disables direct access to files through a browser htaccess and htpasswd, and all with the extension ini, phps, fla, psd, logos, sh, bak, backup, back, and especially set sql <FilesMatch ".(htaccess|htpasswd)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch ".(ini|phps|fla|psd|log|sh|bak|backup|back|set|sql)$"> Order Allow,Deny Deny from all </FilesMatch> # protect wpconfig.php <files wp-config.php> order allow,deny deny from all </files> # other lines will protect everything in your wp-includes <IfModule mod_rewrite.c> RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /wp-includes/.*$ [NC] RewriteCond %{THE_REQUEST} !^[A-Z]{3,9} /wp-includes/js/.+/.+ HTTP/ [NC] RewriteCond %{REQUEST_FILENAME} ^.+.php$ RewriteRule .* - [F,NS,L] </IfModule> #disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC] #RewriteRule .(jpg|jpeg|png|gif)$ – [F] #RewriteRule .(jpg|jpeg|png|gif)$ http://www.yourdomain.com/hotlink.png [R,L] # protect from spam comments RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] # limit file uploads to 10mb LimitRequestBody 10240000 # remove „category“ in url RewriteRule ^category/(.+)$ […] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /test/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /test/index.php [L] </IfModule> # END WordPress
a
robots.txt
:User-agent: * Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: /tag Disallow: /author Disallow: /wget/ Disallow: /httpd/ Disallow: /cgi-bin Disallow: /images/ Disallow: /search Disallow: /feed Disallow: /feed/ Disallow: /trackback/ Disallow: /rss Disallow: /comments/feed Disallow: /feed/$ Disallow: /*/feed/$ Disallow: /*/feed/rss/$ Disallow: /*/trackback/$
21. července 2012 (17:06) #12177Dobrý den,
a) – Ano, v podstatě je soubor celkem dobrým zabezpečením vašeho webu pomocí .htaccess. Jen bych měl jednu připomínku, vyměňte
yourdomain.com
za vlastní doménu.b) – Soubor
robots.txt
máte také správně. Nemusíte se bát, že by vyhledávače přestali indexovat váš web, protože jim zamezujete přístup pouze do administrace.S přáním hezkého dne,
Neteyescz22. července 2012 (22:01) #12178Děkuji za odpověď,
yourdomain.com
je tam zatím jen pro ukázku….
Čerpal jsem právě z vámi uvedeného odkazu (odstraněn, nefunkční) + ještě nějaké odkazy, jak v cz, tak v AJ.akorát ještě nevím, jestli tam musí být:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /test/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /test/index.php [L] </IfModule> # END WordPress
nebo zda stačí pouze:
# BEGIN WordPress RewriteEngine On RewriteBase /test/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /test/index.php [L]
a co
RewriteEngine On
, to nemusí být úplně nahoře a pouze jednou? Já se v tom htaccessu totiž až zas tak dobře nevyznám. Taky mi jde o to, jestli ty příkazy můžou být v jakémkoliv pořadí, nebo jestli se musí dodržet určitá posloupnost.
Děkuji.23. července 2012 (8:03) #12179Kód
<IfModule mod_rewrite.c> ... </IfModule>
je vlastně podmínka, která říká, že pokud je na serveru aktivní
mod_rewrite
proveď tento kód.Když tento mod na serveru nebude nic se nestane. Jestliže tuto podmínku neuvedete a na serveru tento mod nebude dostanete místo webu chybovou hlášku serveru.
RewriteEngine On
Zapíná
mod_rewrite
jednoduše řečeno, takže stačí pouze jednou. Posloupnost se určitě dodržet musí.Každopádně bych to zase s
.htaccess
moc nepřeháněl, každé načtení stránky způsobí to že server (apache) prvně proleze.htaccess
a udělá to co je v něm zadané a až pak se začne pracovat se stránkou, tedy se začne parsovat PHP atd atd. Velké množství podmínek a příkazů v tomto souboru může při velice navštěvovaném webu způsobit další (a někdy ne zrovna malé) vytížení serveru navíc.23. července 2012 (8:10) #12180<FilesMatch ".(htaccess|htpasswd)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch ".(ini|phps|fla|psd|log|sh|bak|backup|back|set|sql)$"> Order Allow,Deny Deny from all </FilesMatch>
lze napsat do jednoho bloku
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh|bak|backup|back|set|sql)$"> Order Allow,Deny Deny from all </FilesMatch>
(v závorce jsou koncovky souborů které nebudou dostupné pro přímé načtení)
(znak “|” znamená “nebo”)23. července 2012 (8:13) #12181Co se týče souboru
robots.txt
používám tento a bez problémů:Sitemap: http://domena.cz/sitemap.xml User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /wp-content/maintanence.php Disallow: /wp-content/db-error.php Disallow: /wp-content/cache/ Disallow: /wp-content/themes/ Disallow: /wp-content/languages/ Disallow: /wp-content/upgrade/ Disallow: /trackback/ Disallow: /feed/ Disallow: /comments/ Disallow: /category/*/* Disallow: */trackback/ Disallow: */feed/ Disallow: */comments/ Disallow: /*? Allow: /wp-content/uploads/
24. července 2012 (9:19) #12182To: Lukenzi, díky moc za rady. Jestli byste mi prosím mohl nějak ještě setřídit ten htaccess (jde vidět, že se v tom vyznáte). Jde mi jen o to, abych měl WP trošku více zabezpečený + zakázal linkování obrázků + zobrazování a výpisy adresářů + co by bylo ještě vhodé. Zatím v htaccessu mám pouze:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /test/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /test/index.php [L] </IfModule> # END WordPress
Přečetl jsem si nějaké články o bezpečnosti a chtěl bych to aplikovat, ale nějak se mi zdá, že z toho htaccessu mám teď trošku “džungli” :-/ Tak by se mi hodilo, kdyby jste buď Vy (prosím, prosím) nebo nějaká jiná hodná duše mi pomohla tady ten úplně horní
.htaccess
nějak “učesat”, optimalizovat, nebo navrhnout nějaký jiný, který jak píšu nahoře, by WP trošku více zabezpečil.
Sám totiž nevím, jak tam ty příkazy naskládat, který příkaz před který a tak….24. července 2012 (12:07) #12183pro zajímavost přidávám část htaccessu kterou vytváří plugin Better WP Security:
# BEGIN Better WP Security Options All -Indexes <files .htaccess> Order allow,deny Deny from all </files> <files readme.html> Order allow,deny Deny from all </files> <files install.php> Order allow,deny Deny from all </files> <files wp-config.php> Order allow,deny Deny from all </files> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC] RewriteRule ^(.*)$ - [F,L] RewriteCond %{QUERY_STRING} ../ [NC,OR] RewriteCond %{QUERY_STRING} boot.ini [NC,OR] RewriteCond %{QUERY_STRING} tag= [NC,OR] RewriteCond %{QUERY_STRING} ftp: [NC,OR] RewriteCond %{QUERY_STRING} http: [NC,OR] RewriteCond %{QUERY_STRING} https: [NC,OR] RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR] RewriteCond %{QUERY_STRING} base64_encode.*(.*) [NC,OR] RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>|ę|"|;|?|*|=$).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*("|'|<|>||{||).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC] RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^(.*)$ - [F,L] </IfModule> # END Better WP Security
Moc by mě zajímalo, jestli by šel udělat nějaký “univerzální”
.htaccess
co se týče a)bezpečnosti a b)cachování. Cílem takového článku by bylo zvednout bezpečnost a rychlost načítání stránek bez nutnosti mít na to plugin.Pokud by na to chtěl někdo napsat článek, bylo by to super a něco bych i přispěl(finančně) kdyby se to věnovalo wpmu :)
25. července 2012 (7:47) #12184To: Bigdrobek – Dobrý nápad, návodů je vlastně spousta, ale nikde jsem nenarazil na něco jako “tady máte finální ukázkový zabezpečený
.htaccess
, který můžete použít”. Taky by se mi nějaký takový.htaccess
hodil. Asi nainstaluji pár pluginů, které toto řeší a podívám se, co do toho htaccessu zapisují a v jakém pořadí….20. září 2012 (8:57) #12185Chtěl bych se zeptat, jestli v tom
.htaccess
to musí mít určitou posloupnost, jako ty zápisy, nebo se můžou napsat v libovolném pořadí? Protože třeba to “RewriteEngine on” je většinou jakoby zanořené např v<IfModule mod_rewrite.c>
. Tak mě zajímá, jestli by nešlo zapsat pouze jednou a jestli nemá být spíš úplně na začátku? Taky co ty tagy typu např:<IfModule mod_rewrite.c></IfModule>
, musí být ten zápis uvnitř, nebo to může být bez těch tagů? Protože v klasických stránkách máte např toto:# stranka s chybovym hlasenim pro chybu 404 - not found ErrorDocument 404 /chyba.html RewriteEngine On # presmerovani stranky www.neco.cz na neco.cz RewriteCond %{HTTP_HOST} ^www.neco.cz$ RewriteRule ^.*$ http://neco.cz$1 [R=301,QSA] #neco.cz/index.html > neco.cz RewriteRule ^index.html$ http://neco.cz$1 [R=301,L]
20. září 2012 (10:46) #12186Už to tu jednou bylo zodpovězeno… Pořadí se dodržet musí, jelikož každý řádek má nějaký význam a většinou závisí na řádku předchozím.
Bez tagů
to rozhodně být může, ale v případě, že na hostingu z nějakého důvodu deaktivují mod_rewrite
, tak se místo vašeho webu zobrazí hláška “chyba serveru”. Pokud tuto podmínku uvedete web bude nadále funkční (jen nebudou fungovat “hezká url”).Jinak k těm předchozím dotazům…až budou všechny servery nakonfigurovány stejně tak určitě bude existovat i nějaký univerzální
.htaccess
soubor. Uvědomte si, že tyhle “tagy” nastavují server, tedy to na čem fungují vaše stránky. Z tohoto důvodu neexistuje hosting, který by dovolil jen tak si cokoliv nastavovat. Každý hosting má některá omezení a co je povoleno tam nemusí být povoleno jinde.18. června 2015 (15:18) #23596Po letech doplním aktualizaci k tématu: Na uvedené úpravy souborů
.htaccess
arobots.txt
bych byl trochu opatrný, i když třeba ještě mohou fungovat. Osobně nechávám pouze výchozí nastavení WordPressu, který je dost zabezpečený sám o sobě a žádné speciality ve většině případů nepotřebuje. Naopak si můžete spíše způsobit různé problémy s funkčností webu (ne vše funguje na každém serveru) nebo vyhledávači. -
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.