HTTP 1.0 hat Sicherheitsschwäche im Zusammenhang mit Session Hijacking. Ich möchte es auf meinem Webserver deaktivieren.Deaktivieren des HTTP 1.0-Protokolls in Apache?
Antwort
Sie können die SERVER_PROTOCOL
Variable in einer Mod-Rewrite-Klausel überprüfen. Stellen Sie sicher, dass Sie diese Regel als erste setzen.
RewriteEngine On
RewriteCond %{SERVER_PROTOCOL} ^HTTP/1\.0$
RewriteCond %{REQUEST_URI} !^/path/to/403/document.html$
RewriteRule^- [F]
Die zusätzliche negative Kontrolle für !^/path/to/403/document.html$
ist so, dass die verbotene Seite kann die Benutzer angezeigt. Es würde sonst zu einer Rekursion führen.
Wenn Sie sich auf einem namensbasierten virtuellen Host befinden (und jeder virtuelle Server nicht seine eigene separate IP-Adresse hat), ist es technisch unmöglich, eine Verbindung zu Ihrem virtuellen Host über HTTP/1.0 herzustellen. Nur der Standardserver - der erste definierte virtuelle Server - ist verfügbar. Dies liegt daran, dass HTTP/1.0 den HTTP-Hostanforderungsheader nicht unterstützt und der Hostheader für namensbasierte virtuelle Hosts erforderlich ist, um den virtuellen Host auszuwählen, an den die Anforderung gerichtet ist. In den meisten Fällen ist die Antwort auf eine echte HTTP/1.0-Anfrage eine 400-Bad-Anfrage. Wenn Sie es geschafft haben, dass dieser Code funktioniert, aber später versucht hat, benutzerdefinierte Fehlerdokumente zu verwenden (siehe Apache core ErrorDocument-Anweisung), dann Das Ergebnis der Blockierung einer Anfrage wäre eine "unendliche" Schleife: Der Server würde versuchen, mit einem 403-Forbidden-Response-Code zu antworten und das benutzerdefinierte 403-Fehlerdokument zu liefern. Aber das würde zu einem weiteren 403-Fehler führen, weil Zugriff auf alle Ressourcen - einschließlich der benutzerdefinierten 403-Seite - verweigert wird. Der Server würde also einen weiteren 403-Fehler erzeugen und dann versuchen, darauf zu antworten, indem er einen weiteren 403 erstellt, und noch einen und einen weiteren ... Dies würde so lange weitergehen, bis entweder der Client oder der Server aufgab.
Ich würde vorschlagen, so etwas wie:
SetEnvIf Request_Protocol HTTP/1\.0$ Bad_Req
SetEnvIf Request_URI ^/path-to-your-custom-403-error-page\.html$
Allow_Bad_Req
#Order Deny,Allow
Deny from env=BadReq
Allow from env=Allow_Bad_Req
In mod_rewrite, so etwas wie:
RewriteCond %{THE_REQUEST} HTTP/1\.0$
RewriteCond %{REQUEST_URI} !^/path-to-your-custom-403-error-page\.html$
- 1. Deaktivieren Cache in Apache Felix
- 2. Apache Common Logging deaktivieren
- 3. Filter in Apache HTTP-Server
- 4. Apache HTTP Webserver-Anfragen
- 5. Deaktivieren AngularJS $ http Cache
- 6. Apache HTTP Filter/Logging
- 7. Apache httpd deaktivieren Verzeichnis Browser
- 8. Deaktivieren der TRACE-Anforderungsmethode unter Apache/2.0.52
- 9. Deaktivieren Sie die IIS7-HTTP-Fehlerbehandlung?
- 10. Apache Camel Dynamic Http Anruf
- 11. Apache CXF - Set HTTP-Header
- 12. aktivieren Apache http Autorisierung Header
- 13. Kill HTTP (S) Verbindung in Apache
- 14. vorbei Attribute in Apache HTTP-Client
- 15. Http-Zugriff auf BitBucket deaktivieren
- 16. Apache und Varnish http/https
- 17. Apache curl via HTTP-Proxy
- 18. HTTP-Cache in Angular2 deaktivieren oder leeren
- 19. Deaktivieren des Kopierens in dojo.dnd
- 20. Wie kann ich Pings in Apache :: DBI deaktivieren?
- 21. Internationalisierung (i18n) mit Apache HTTP Server
- 22. Apache Velocity deaktivieren Vorlage & Ressourcen-Caching
- 23. Nicht möglich, https mit Apache HTTP POST
- 24. Umleitung funktioniert nicht in Apache, HTTP zu HTTPS
- 25. LocalCluster deaktivieren Einloggen bei Apache Storm
- 26. Wie Zwischen insgesamt deaktivieren mit Apache POI
- 27. Speichern des Verlaufs deaktivieren
- 28. Apache-Konfiguration: Regex zum Deaktivieren des Zugriffs auf Dateien/Verzeichnisse beginnend mit einem Punkt
- 29. Apache Umleitung http zu https ohne www
- 30. java.lang.NoClassDefFoundError: org/Apache/http/impl/conn/ManagedHttpClientConnectionFactory