it-swarm-eu.dev

Zabezpečení složky wp-admin - účel? Důležitost?

Snažím se pochopit, jak zabezpečit WordPress stránky. Jeden bezpečnostní úkol, kterému nerozumím, je ... Jak důležité je chránit složku „wp-admin“? Například bych považoval snahy o limitní přihlášení za velmi důležité.

Jaký je účel ochrany složky wp-admin? Je to, aby se zabránilo hackerům dostat do vašeho řídicího panelu WordPress? Ale pokud ochráníte wp-login.php, jak by se hacker stejně dostal do řídicího panelu?

<Files wp-login.php>
order deny,allow
deny from all
allow from xxx.xxx.x.x
</Files>

Pokud používáte "Code A", budete také potřebovat whitelist frontend AJAX funkčnost a whitelist install.css?

"Kód A" - Omezte přístup ke složce wp-admin

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
</LIMIT>

.
.
Jak se „kód A“ porovnává s „kódem B“? Použili byste jeden nebo druhý, nebo oba současně?
.

"Kód B" - zabezpečení adresáře wp-admin

1   # enable basic authentication
2   AuthType Basic
3   # this text is displayed in the login dialog
4   AuthName “Restricted Area”
5   # The absolute path of the Apache htpasswd file. You should edit this
6   AuthUserFile /path/to/.htpasswd
7   # Allows any user in the .htpasswd file to access the directory
8   require valid-user




Allow front end Ajax functionality


Some WordPress plugins use Ajax functionality in WordPress.  
This means that such plugins might need access to the file admin-ajax.php  
To allow anonymous access to such file for the WordPress plugins to function,  
add the below to .htaccess  

1   <Files admin-ajax.php>
2       Order allow,deny
3       Allow from all
4       Satisfy any
5   </Files>



Update: /wp-admin/css/install.css is also sometimes needed on the frontend,  
you should whitelist that as well. Here's the necessary configuration 
to whitelist a file in a password protected location in lighttpd:


$HTTP["url"] =~ "^\/wp-admin\/.*" {
    $HTTP["url"] !~ "^\/wp-admin\/(admin-ajax\.php|css\/.*)" {
        auth.require = (
            "" => (
                "method" => "basic",
                "realm" => "Password protected area",
                "require" => "user=theuser",
            ),
        ),
    },
},
4
leko

Ale pokud ochráníte wp-login.php, jak by se hacker stejně dostal do řídicího panelu?

Útočník by se mohl pokusit o zneužití nebo vytvoření platného ověřovacího souboru cookie. V poslední době se vyskytla možná zranitelnost, která usnadnila vytvoření takového souboru cookie: CVE-2014-0166 Byla opravena verze 3.7.3/3.8.3

Jak se „kód A“ porovnává s „kódem B“? Použili byste jeden nebo druhý, nebo oba současně?

Pokud whitelist wp-admin/admin-ajax.php (jako v "Code B"), tento skript by mohl stále fungovat jako kontaktní místo pro útočníka, aby ověřil jeho padělání cookie a na základě úspěchu jako vstupní bod pro manipulaci s daty pro každou akci, která není zabezpečena. další nonce. Ale i ty by mohly být teoretické.

Pokud však nepotřebujete funkci AJAX pro veřejnost a máte možnost whitelistovat všechny adresy IP pro všechny své účty, zabezpečení adresáře wp-admin/ by snížilo možné útočné vektory, jak je popsáno výše.

Ale tato metoda nechrání vaše stránky před útoky typu „člověk ve středu“ nebo útoky infikovaných klientských počítačů, protože ty by prošly kontrolou whitelistů.

Konečně mi dovolte, abych vám udělil osobní klasifikaci k prvnímu dotazu:

Jak důležité je chránit složku „wp-admin“?

Podle mého názoru je důležitější používat bezpečná hesla (možná dvoufaktorová autentizace), bezpečné tajné klíče (soli v wp-config.php) a pokud je to možné, vždy https připojení, když spravujete svůj WordPress, od prvního požadavku (požadavek https://…/wp-login.php) . Také udržujte všechny komponenty aktuální a odstraňujte nepoužívané komponenty (Plugin/Theme) ze serveru. Poté můžete ještě zvážit ochranu adresáře wp-admin.

4
David