Ruski neuspjeh u vožnji 2019 | Ludi vozači | 18. dio | WORLD FAIL, S

Nedavno sam primijetio da mnogi ljudi objavljuju .htaccess datoteke ovdje s:

 

Ponekad se to čak i nekoliko puta pojavi u datoteci! Očito provjerava je li mod_write je zapravo omogućen, ali izjave koje štiti ionako su potrebne tim web mjestima. Pa ako IfModule ne uspije, web stranica je ionako pokvarena.

Postoji li prednost u posjedovanju neuspjeh nego RewriteRule izjave ispod nje?

mod_write sada je toliko bitan i sveprisutan da ga više ne provjeravam. Može li to uzrokovati neku vrstu ranjivosti?

Ne, većinu vremena provjera mod_rewrite nije potrebna. Zapravo je često poželjno da biste uklonili ovu provjeru.

Ako su smjernice mod_rewrite potreban na vašoj web lokaciji, tada ih ne biste trebali umotati u kontejner. Jer ako jesu potreban i mod_rewrite nije dostupan, tada direktive jednostavno ne uspijevaju tiho a vaša se web lokacija nastavlja lomiti na neki drugi način (maskirajući temeljni uzrok) i možda izlažući nešto što niste očekivali. Bez toga omot tada bi se web mjesto odmah (i potpuno) razbilo s lako prepoznatljivom pogreškom i ništa neočekivano nije otkriveno.

Jedini puta kada omot treba koristiti bilo:

  1. Web stranica je dizajnirana za rad sa mod_rewrite ili bez njega. To je slučaj s WordPressom. Bez mod_rewrite web stranica i dalje "radi", jednostavno nećete dobiti "lijepe" URL-ove.

Ili

  1. Imate smjernice od drugi modul koji ovise o uspješnom izvršavanju mod_rewrite. Dakle, u ovom biste slučaju ovo zamotali drugo smjernice u a omot. Na primjer, postavljanje zaglavlja HTTP odgovora (s mod_headers) na temelju nekog svojstva zahtjeva koje ste odredili pomoću mod_rewrite. U ovom slučaju možete omotati Headers direktiva u a kontejner.

Većinu vremena, ako poznajete svoj poslužitelj, tada vam nije potreban provjeri - jer već znate je li mod_rewrite omogućen ili ne. Jedino kad vam zatreba je ako pišete prijenosni kôd za rad na više poslužitelja i ako su ispunjeni bilo koji od uvjeta # 1 i / ili # 2.

Ponekad se to čak i nekoliko puta pojavi u datoteci!

A najčešće je to potpuno nepotrebno. Međutim, u obranu ovog ponašanja, to se često događa kada imate različite dodatke koji uređuju .htaccess automatski i neovisno. Isto vrijedi i za višestruke RewriteEngine i RewriteBase direktive.

Za ručno napisani kôd ovo nikada ne biste trebali vidjeti. Kod ručno napisanih kodova to se obično događa putem bezuman copy / paste (što se nažalost čini da se puno događa s .htaccess direktive).

Postoji li prednost u posjedovanju fail, a ne RewriteRule izjave ispod njega?

Samo u slučaju gore navedenih br. 1 ili 2. Većinu vremena, ne.

mod_write sada je toliko bitan i sveprisutan da ga više ne provjeravam. Može li to uzrokovati neku vrstu ranjivosti?

Ako jest bitno za vašu web lokaciju tada nema potrebe provjeravati je. Nema ranjivosti.

U stvari, čak bi moglo biti i suprotno ... ako jesu smjernice mod_rewrite bitno tada bi vam provjera prisutnosti mod_rewrite mogla čak uzrokovati više problema ako mod_rewrite iznenada postane nedostupan iz bilo kojeg razloga. Kao što je gore spomenuto, vaše bi smjernice mod_rewrite sada tiho neuspjeh (naglašavanje "tiho" - bez pogreške), ali web mjesto može i dalje raditi bez a pogreška servera pokreće se, ali vraća gluposti korisniku (i botovima tražilice) sa statusom 200 OK. Ako je omot je izostavljen, tada biste odmah bili obaviješteni o problemu. Međutim, ako je ova pogreška utihnula, moglo bi proći neko vrijeme prije nego što se problem otkrije, a tada je možda već napravljena ozbiljnija šteta.

Uglavnom ga koriste Sustavi za upravljanje sadržajem, poput WordPressa, jer mogu raditi s PHP prepisivanjem ili mod_rewrite, ako mod_rewrite nije podržan i ako ne koristite IfModule, neka će web mjesta rezultirati pogreškom 500.

Svaka instalacija WordPressa pokušat će koristiti .htaccess i tijekom velikih nadogradnji može pokrenuti provjeru je li prisutan ovaj kôd:

# BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

U nekoliko navrata bio sam svjedok kako WordPress dodaje kôd OPET ako je njihov kod izmijenjen. Zbog toga će korisnici WordPressa taj kôd obično ostavljati nepromijenjenim ili koristiti chmod kako bi spriječili da se WordPress doda na njega, zapravo je sa stajališta sigurnosti dobro postaviti svoj .htaccess na 0444.

Zbog toga sam odlučio to ostaviti na miru kada odgovaram na jedno od mojih pitanja u vezi s WordPress HTTP-om na HTTPS-u, a da ne rezultiram kosim crtama u dvostrukom preusmjeravanju

Sažetak

Koristeći ili ne, neće napraviti mjerljivu razliku u smislu izvedbe za normalno web mjesto, ako ga možete ukloniti, svakako učinite, neće imati razlike ako to učinite ili ne, samo se okrećite onim što najbolje odgovara za vaše postavljanje.

radio za vas: Charles Robertson | Želite nas kontaktirati?