Russisk kørselsfejl 2019 | Skøre drivere | Del 18 | VERDENSFEJL, S

For nylig bemærkede jeg, at mange mennesker skrev .htaccess filer her med:

 

Nogle gange vises dette endda flere gange i filen! Det kontrolleres naturligvis for at se om mod_write er faktisk aktiveret, men de udsagn, den beskytter, er alligevel nødvendige for disse websteder. Så hvis den IfModule mislykkes, hjemmesiden er ødelagt alligevel.

Er der en fordel ved at have mislykkes snarere end RewriteRule udsagn under det?

mod_write nu er så vigtigt og allestedsnærværende, at jeg ikke ser efter det længere. Kan dette forårsage en sårbarhed af en slags?

Nej, det er for det meste ikke nødvendigt at kontrollere for mod_rewrite. Faktisk er det ofte at foretrække for at fjerne denne kontrol.

Hvis mod_rewrite-direktiverne er krævet af dit websted, så skal du ikke pakke dem ind i en beholder. Fordi hvis de er krævet og mod_rewrite er ikke tilgængelig, så direktiverne fejler simpelthen stille og dit websted fortsætter med at bryde på en anden måde (maskerer den underliggende årsag) og muligvis udsætter noget, du ikke havde forventet. Uden indpakning, så ville webstedet bryde øjeblikkeligt (og fuldstændigt) med en let identificerbar fejl, og intet uventet udsættes for.

De eneste gange, hvor indpakning skal bruges er enten:

  1. Webstedet er designet til at arbejde med eller uden mod_rewrite. Dette er tilfældet med WordPress. Uden mod_rewrite "fungerer" webstedet stadig, får du bare ikke de "smukke" URL'er.

Eller

  1. Du har direktiver fra et andet modul der er afhængige af, at mod_rewrite er udført med succes. Så i dette tilfælde vil du pakke disse ind Andet direktiver i en indpakning. For eksempel at indstille en HTTP-svaroverskrift (med mod_headers) baseret på en eller anden egenskab ved den anmodning, du har bestemt ved hjælp af mod_rewrite. I dette tilfælde kan du indpakke Headers direktiv i en beholder.

Det meste af tiden, hvis du kender din server, behøver du ikke tjek - da du allerede ved, om mod_rewrite er aktiveret eller ej. Den eneste gang, du har brug for det, er, hvis du skriver bærbar kode for at arbejde på flere servere, og enten betingelse nr. 1 og / eller nr. 2 ovenfor er opfyldt.

Nogle gange vises dette endda flere gange i filen!

Og det meste af tiden er dette helt unødvendigt. Til forsvar for denne adfærd sker dette dog ofte, når du har forskellige plugins, der redigeres .htaccess automatisk og uafhængigt. Det samme gælder for flere RewriteEngine og RewriteBase direktiver.

For håndskrevet kode skal du aldrig se dette. For håndskrevet kode sker dette generelt igennem tankeløs kopier / indsæt (som desværre synes at ske meget med .htaccess direktiver).

Er der en fordel ved at have mislykkes snarere end RewriteRule-udsagnene under det?

Kun i tilfælde af nr. 1 eller nr. 2 ovenfor. Nej, det meste af tiden.

mod_write er nu så vigtig og allestedsnærværende, at jeg ikke ser efter det mere. Kan dette medføre en sårbarhed af en slags?

Hvis det er vigtig til dit websted, så er der ingen grund til at kontrollere det. Ingen sårbarhed.

Faktisk kunne det modsatte endda være sandt ... hvis mod_rewrite-direktiverne er det vigtig at kontrollere for tilstedeværelsen af ​​mod_rewrite kan endda give dig flere problemer, hvis mod_rewrite pludselig bliver utilgængelig af en eller anden grund. Som nævnt ovenfor ville dine mod_rewrite-direktiver nu stille mislykkes (stress "lydløs" - ingen fejl), men webstedet kan stadig fortsætte med at fungere uden en Server Fejl bliver udløst, men returnerer vrøvl til brugeren (og søgemaskine-bots) med en status på 200 OK. Hvis indpakningen var udeladt, ville du straks have fået besked om problemet. Men hvis denne fejl blev tavset, kan der gå et stykke tid, før problemet opdages, på hvilket tidspunkt der muligvis allerede er gjort mere alvorlige skader.

Det bruges mest af Content Management Systems som WordPress, da de kan fungere med PHP-omskrivning eller mod_rewrite, hvis mod_rewrite ikke understøttes, og du ikke bruger IfModule, vil nogle websteder resultere i fejl 500.

Hver installation af WordPress vil forsøge at bruge .htaccess, og under større opgraderinger kan den udløse en kontrol for at se, om denne kode er til stede:

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

Ved flere lejligheder har jeg været vidne til, at WordPress tilføjer koden IGEN hvis deres kode er blevet ændret. Dette er grunden til, at WordPress-brugere generelt lader koden være uændret eller bruger chmod for at forhindre, at WordPress tilføjer den, det er faktisk en god idé fra et sikkerhedsstandpunkt at indstille din .htaccess til 0444.

Dette er grunden til, at jeg besluttede at lade det være, når jeg besvarede et af mine spørgsmål vedrørende WordPress HTTP til HTTPS uden efterfølgende skråstreg resulterer i dobbelt omdirigering

Resumé

Ved brug af eller ej vil ikke gøre nogen målbar forskel med hensyn til ydeevne for det normale websted. Hvis du kan fjerne det så gør det på alle måder, det vil ikke gøre en forskel, hvis du gør eller ikke, bare rul med det, der fungerer bedst til din opsætning.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger