it-swarm-eu.dev

Funguje toto nastavení zabezpečení .htaccess opravdu?

Co to dělá .htaccess?

Mám pravdu v tom, že všechno, co dělá, je zabránit automatickým útokům brutální síly?

Takže pro přístup k wp-login.php musíte ručně zadat adresu URL domény tak, aby negovala všechny roboty hledající wp-login.php

Mám pravdu?

Zde je pravidlo .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^https://(.*)?my-domain.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
</IfModule>
7
henry

Zdá se, že zabrání jakýmkoli požadavkům POSTp wp-login.php, které nejsou vytvořeny ze stránky na adrese my-domain.com.

Když prohlížeč odešle požadavek POST, například po odeslání formuláře, bude obsahovat záhlaví HTTP Referrer sdělující serveru, od kterého požadavek pochází.

To teoreticky brání botům, kteří odesílají POST požadavky přímo do wp-login.php jako součást útoku na hrubou sílu, ale HTTP referrer je triviální k falešným účelům, takže to není ve skutečnosti všechno užitečné.

9
Jacob Peattie

Co to nebrání: Brute Force

vše, co dělá, je zabránit automatickým útokům brutální síly?

Ne. To nezabrání útokům brutální síly.

Při útoku hrubou silou má útočník kontrolu nad všemi parametry požadavku HTTP. To zahrnuje referer. Jak útočník může posílat libovolné referenty, to nezabrání útokům brutální síly. (Téměř) všechny nástroje pro hrubou sílu umožní nastavení referenta a nastavení samotného webu jako referenta je dost standardní.

Mechanismy, které chrání před hrubou silou, by byly zakázány nebo omezeny na základě IP nebo uživatelského jména, jakož i captchas.

Co by to mohlo zamezit: CSRF

Tento kód může být odsazen, aby bylo možné přidat kontrolu odesílatele do všech požadavků POST do oblasti admin. Pokud odkazovač není platný, požadavek je odmítnut.

V útoku CSRF útočník nutí oběť, aby provedla požadavek na změnu stavu POST. K tomu může dojít např. Odesláním kódu HTML a Javascriptu na adrese attacker.com, který poté automaticky pošle požadavek společnosti victim.com, jakmile ověřená oběť navštíví stránku.

Kontroly refererů jsou jedním z mechanismů ochrany proti CSRF. Jelikož je jako platný referer přijímán pouze victim.com, útočník nemůže donutit oběť, aby poslala požadavek z vlastní domény.

WordPress má samozřejmě vlastní ochranu proti CSRF (přes anti-CSRF nonces). Ale nemusí to chytit všechny případy a bezpečnost pluginů závisí na vývojáři pluginů.

Další kontrola refererů může pomoci zabránit zneužití zranitelností CSRF v jádru WP a zejména v pluginech.

Samozřejmě, pokud to byl záměr, kód je odposlouchán. $ v RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ zabraňuje kontrole většiny požadavků.

Kontrolu lze také snadno obejít. Byli přijati následující referenti:

Referer: http://example.com.org
Referer: http://not-example.com
Referer: http://notexample.com
Referer: http://attacker.com/example.com
[...]

Aby bylo možné přidat k zabezpečení webu cokoliv, je třeba tyto dvě otázky nejprve opravit. Kód by mohl být dále vylepšen tím, že nebude omezen na požadavky POST (ve špatně napsaných aplikacích, požadavky GET mohou také měnit stav serveru nebo POST požadavky mohou být transformovatelné do Požadavky GET). Protože kontrola se týká pouze administrátorů, nemělo by to omezovat použitelnost.

6
tim

Jste Částečně Správní

Váš výše uvedený kód pomáhá chrání vaše stránky WordPress pouze povolením požadavků na přihlášení, které přicházejí přímo z vaší domény.

Většina útoků hrubou silou odesílá požadavky POST přímo do vašeho skriptu wp-login.php. Takže požadovat POST požadavek mít vaši doménu jako referrer pomáhá zastavit tyto roboty.

Pokud máte statickou adresu IP pomocí následujícího kódu, můžete jít o krok dále:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR}!^111\.111\.111\.111$
RewriteRule ^(.*)$ - [R=403,L]

* Nahraďte statickou IP adresou.

* Nemusí fungovat, pokud je váš web za službou DNS, například CloudFlare.

4
Invariant Change