Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst] settings.php + trusted_host_patterns + Protecting against HTTP HOST Header attacks

Eingetragen von ZNC (45)
am 26.10.2016 - 07:27 Uhr in
  • Anfängerfragen
  • Drupal 8.x

Moin moin in die Runde,

nachdem ich nunmehr (erfolgreich nach meinem derzeitigen Wissenstand) Drupal 8.2.1 installiert habe, dachte ich "Alles in Butter". Bis ich im Konfigurationsbereich von Drupal die Warnmeldung "One or more problems were detected with your Drupal installation. Check the status report for more information." sah. Ich hangelte mich zum Statusbericht (status report) durch und las folgende Meldung "Trusted Host Settings: Nicht aktiviert: The trusted_host_patterns setting is not configured in settings.php. This can lead to security vulnerabilities. It is highly recommended that you configure this. See Protecting against HTTP HOST Header attacks for more information.".

Bei meinen Recherchen bin ich dann auf Protecting against HTTP HOST Header attacks gestoßen. Diesen Artikel versuchte ich zu übersetzen. Könnte jemand mir bei den fehlenden Übersetzungen (sind fett markiert) helfen?

Beginn der Übersetzung:

Schutz vor HTTP-HOST-Header Attacken
Stand: 23.09.2016

Drupal 7 erweiterte den Kern (core) um ein neues Feature, das dem Anwender nicht ins Auge sticht, aber manchmal als "der Cron des armen Mannes" bezeichnet wird. Diese Funktion aktiviert periodisch anstehende Aufgaben einer Drupal Seite wie beispielsweise Logfiles leeren, eMails verschicken und bestimmte Caches leeren. Aber in Kombination mit der dynamischen Erkennung der base_url (in Drupal 4.7 hinzugekommen), kann dies zu verrückten Situationen führen. Dieser Artikel beschreibt einige dieser Situationen, die mit einem oder beiden der Module auftreten können und was Sie tuen können, um dies zu verhindern. Die Beispiele unten gehen von einigen Standard-Konfigurationen aus - am Schluß werde ich ausführen, wie Sie dies, um solche Probleme zu verhindern, umgehen können.

Szenario 1: Versenden und Erhalten von Benutzer-eMails, die für eine andere Domäne bestimmt zu sein scheinen

Dieses Szenario ist ziemlich einfach zu bewerkstelligen:

  1. Weisen Sie eine neue Domain der IP einer existierenden Seite zu - die vorhandene Website soll www. beispielseite .com und der neue Name, der auf diese IP verweist, soll boeseSeite.beispielseite .org heißen.
  2. Besuchen Sie die URL: boeseSeite.beispielseite .org/user/password
  3. Geben Sie einen gängigen, auf dieser Seiten benutzten, Benutzernamen ein.

Das Ergebnis ist, dass in Schritt 2 die base_url Erkennung denkt, dass Ihre Website boeseSeite.beispielseite .org ist und somit alle Tokens für die eMails wie [user: one-time-login-url], die Links zu Ihrer Website, enthalten auf boeseSeite.beispielseite .org als Basis-URL ändert.

Der Benutzer, der diese E-Mail empfängt, sieht, dass der Benutzername und eMail der beispielseite.com jetzt irgendwie für boeseSeite.beispielseite .org verwendet wird, was normalerweise nur verwirrend ist. Allerdings können zwei üble Szenarien hieraus resultieren:

  • In einem Worst-Case-Szenario könnte die boeseSeite über einen Passwort-Reset-Link in dieser eMail das Password somit erschleichen.
  • Sie könnte Benutzername/Password auf der boeseSeite.beispielseite .org eingeben - ein sogenannter Social-Engineering-Angriff, was dann auf der Hauptseite verwendet werden könnte.

Szenario 2: Cache-Einträge, die eine falsche Domain beinhalten

Ein ähnliches Problem kann auftreten, wenn ein Benutzer die falsche Domäne verwendet, um Anfragen zu stellen und ies führt dazu, dass ein Cacheeintrag mit dynamischen, voll qualifizierten Domainnamen initialisiert wird. Nachfolgende, die Informationen aus diesem Cache abrufen, erhalten dann den falschen Domänennamen. Der Seitencache des Drupal Kerns verwendet, um dieses Problem zu verhindern, die Domäne als Teil der Cache-ID, aber andere Caching-Mechanismen in Drupal wären möglicherweise nicht so robust.

Szenario 3: Benachrichtigungsmails, die eine falsche Domain beinhalten

Bei Modulen, die während Cron-Aufträge abgearbeitet werden, eMails versenden, könnte ein weiteres Problem auftauchen. Dieses Szenario gilt für den "Cron des armen Mannes" in Verbindung mit der base_url-Erkennung. Wenn ein Anwender über eine falsche Domain in den "Cron des armen Mannes" einsteigt, während dort Benachrichtigungen in der Warteschlange sind, werden diese Benachrichtigungen mit der falschen Domain geschickt. Es verwirrt die Empfänger, da die eMails, die sie normalerweise von www. beispielseite .com erhalten, die boeseSeite.beispielseite .org beinhalten.

Lösungen für die verwirrenden Möglichkeiten mit der dynamischen base_url-Erkennung von Drupal

Es gibt mindestens vier mögliche Lösungen dieses Problem, aber nicht alle sind notwendig, um es zu beheben. Sie sollten sich die rauspicken, die für Ihre Umgebung die passende ist.

  1. Sie deklarieren ihre Domain als Ihr $base_url in sites/default/settings.php. Die dynamische base_url-Erkennung kann ein praktische Feature sein, kann aber auch zu Problemen führen. Eine Möglichkeit, Probleme zu verhindern, ist eben diesen Wert zu setzen.
  2. Benutzen Sie eine spezifische sites/example.com/settings.php und lassen Sie die base_url automatisch ermitteln. Dies hat die Auswirkung, dass Drupal überlassen wird, auf alle Subdomains von www. beispielseite .com zu antworten, dies kann manchmal vielleicht ein Vorteil sein.
  3. Konfigurieren Sie Ihren Webserver so, dass ihre Standard-Seite hochkommt, wenn eingehende Anfragen etwas anderes als Ihre Standard-Drupal-Installation ist, z. B. eine Fehlerseite.
  4. Richten sie Ihre Webserver-Konfiguration so aus, dass alle Anforderungen, die zwar nicht für ihre Domäne sind, aber Ihren Server erreichen, auf den richtigen Domänennamen weitergeleitet werden.

Trusted Host-Sicherheitseinstellung in Drupal 8

Ab Januar 2015 unterstützt Drupal 8 "trusted host patterns" (vertrauenswürdige Host-Muster), wo Sie eine Reihe von regulären Ausdrücken definieren können (und auch sollten), die eingehenden Anfragen müssen dann mit diesen Domänen-Eintragungen übereinstimmen. Beispielkonfiguration in settings.php:

<?php
$settings
['trusted_host_patterns'] = array(
 
'^www\.beispielseite\.com$',
 
'^www\.forum\.beispielseite\.com$',
);
?>

Anmerkung zur Schreibweise in trusted_host_patterns für den Domainnamen:

Zitat Hyp1:

Zitat:

Regex Zeichen:
^ = start of string
$ = start of string
/ = unescaped delimiter
. = any character

Für Domains bedeutet das:
Da ein Punkt "." in regex ein beliebiges Zeichen ist muss dieser escaped werden
Da ein Slash "/" in regex ein Delimiter ist muss dieses escaped werden

Für weitere Informationen Websiteentwicklung: PHP: Reguläre Ausdrücke
(Absatz: Zeichenklassen und klassenartige Konstrukte + Anker und Zusicherungen der Länge null)

‹ Module / Themes in drupal 8 mit Composer hinzufügen? [gelöst] settings.php + trusted_host_patterns + Protecting against HTTP HOST Header attacks ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, das ist nicht ganz

Eingetragen von Hyp1 (1463)
am 26.10.2016 - 11:21 Uhr

Hi,

das ist nicht ganz richtig.

Zitat:

Zu der Schreibweise ein interessanter Thread "trusted_host_patterns" auf http://www.drupalcenter.de/node/55704
Scheinbar ist das \. keine Maskierung des Punktes, sondern dient der Eingrenzung des Domainnamens.

Auch bei einer normalen schreibweise würde der Punkt den Domainnamen abgrenzen: www.example.com

Der Punkt muss "escaped" werden weil das Trusted Hostname Pattern eine Regular Expression ist.
In Regex bedeutet der Punkt ein beliebiges Zeichen mit \. sagt man in Regex das tatsächlich
der Punkt gemeint ist und kein beliebiges Zeichen.

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für Deine Rückmeldung

Eingetragen von ZNC (45)
am 26.10.2016 - 13:14 Uhr

Danke für Deine Rückmeldung @Hyp1.

Wie sähe dann der Eintrag für beispielsweise diese Adresse aus: www. privat.meine-seite .com?
So?
'^www\.privat\.meine-seite\.com$'

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi

Eingetragen von Hyp1 (1463)
am 26.10.2016 - 13:31 Uhr

Ja, der Eintrag sähe so aus:
^www\.privat\.meine-seite\.de$

zur vollständigen Erklärung:

Regex Zeichen:
^ = start of string
$ = start of string
/ = unescaped delimiter
. = any character

Für Domains bedeutet das:
Da ein Punkt "." in regex ein beliebiges Zeichen ist muss dieser escaped werden
Da ein Slash "/" in regex ein Delimiter ist muss dieses escaped werden

Du kannst das hier testen:

https://regex101.com/
ohne http://
^www\.privat\.meine-seite\.de$
gültig:
www.privat.meine-seite.de

oder mit http://
^http:\/\/www\.privat\.meine-seite\.de$
gültig:
http://www.privat.meine-seite.de

Hoffe das bringt Licht ins Dunkel ;-)

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lieben Dank. Jetzt ist nur

Eingetragen von ZNC (45)
am 26.10.2016 - 14:06 Uhr

Lieben Dank.

Jetzt ist nur noch die Übersetzung offen. Vielleicht jemand da, der Hilfestellung geben kann?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Übersetzung:2. [en: Use a

Eingetragen von Hyp1 (1463)
am 26.10.2016 - 15:46 Uhr

Übersetzung:

2. [en: Use a specific sites/example.com/settings.php and leave dynamic $base_url - this has the implication of letting Drupal respond to all subdomains of example.com which may or may not be a benefit. > de: ?]

2. Benutzen Sie eine spezifische sites/example.com/settings.php
und lassen Sie $base_url dynamisch - das hat die Auswirkung, dass Drupal auf alle subdomains von example.com antwortet. Dies kann ein Vorteil oder auch ein Nachteil sein

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Übersetzung gesucht: settings.php + trusted_host_patterns + ...

Eingetragen von ZNC (45)
am 27.10.2016 - 07:17 Uhr

Hallo Robert,

Zitat:

Use a specific sites/example.com/settings.php and leave dynamic $base_url

Ist damit nicht:
Benutzen Sie eine separate sites/example.com/settings.php und verwenden keine dynamische base_url-Erkennung
gemeint?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das muss man wohl ausprobieren

Eingetragen von ronald (3857)
am 27.10.2016 - 07:35 Uhr

leave kann belassen, aber auch verlassen, oder bleiben lassen heißen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo @ronald, ja das ist

Eingetragen von ZNC (45)
am 27.10.2016 - 08:01 Uhr

Hallo @ronald, ja das ist klar, wie würdest Du diesen Satz übersetzen?

Den Durchblick habe ich noch nicht. Wenn man die Zusammenhänge kennt, könnte z.B. auch dies mit
Benutzen Sie eine separate sites/example.com/settings.php und belassen Sie die dynamische base_url-Erkennung
übersetzt werden, nicht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

eben weil es nicht eindeutig ist

Eingetragen von ronald (3857)
am 27.10.2016 - 08:08 Uhr

kommst du ums probieren nicht herum.

Ich hätte es auch genau so gesehen - to leave something - es belassen wie es ist.

Man muss bei Softwaredokumentationen aber auch damit rechnen, dass diese von Menschen aus ganz anderen Sprach- und Kulturräumen geschrieben worden sind.

Vielleicht gehst du auf die Suche nach einer anderen Beschreibung, die eindeutiger ist.

Meist haben sich mehrere Personen in unterschiedlichen Ländern mit der Thematik befasst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Leute, ich weiss zwar was

Eingetragen von Hyp1 (1463)
am 27.10.2016 - 13:34 Uhr

Hi Leute,

ich weiss zwar was gemeint(Semantik) ist, aber Übersetzen(Syntax) ist halt etwas anderes.
Aber evtl. hilft es dabei wenn ich schreibe wie ich denke dass es gemeint ist.

Hier im ersten Satz ist die Rede von einem Unterverzeichnis im Document Root des Servers.
Ich leite das daraus ab, weil von default/settings.php die Rede ist und $base_path nicht gesetzt werden müsste, wäre die Site im Document Root.
->
Sie deklarieren ihre Domain als Ihr $base_url in sites/default/settings.php. Die dynamische base_url-Erkennung kann ein praktische Feature sein, kann aber auch zu Problemen führen. Eine Möglichkeit, Probleme zu verhindern, ist eben diesen Wert zu setzen.

Hier im zweiten Satz ist die Rede von RICHTIGEN Domains bzw. Domain Aliase
Das leite ich daraus ab, dass von sites/example.com/settings.php die Rede ist und dynamisch kann der $base_url nur sein wenn er NICHT gesetzt ist.
Wäre $base_url hier gesetzt würde die Site auch nur für diesen Antworten.
->
[en: Use a specific sites/example.com/settings.php and leave dynamic $base_url - this has the implication of letting Drupal respond to all subdomains of example.com which may or may not be a benefit. > de: ?]

Soll heissen ich kann es zwar erklären aber auch nur schlecht Übersetzen

Liebe Grüsse vor allem an Dich Ronald! ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

settings.php + trusted_host_patterns + Protecting against HTTP H

Eingetragen von ZNC (45)
am 29.10.2016 - 06:33 Uhr

Dies ist die Antwort auf meine Frage aus https://www.drupal.org/node/1992030#comment-11754560:

Hello, first of all I had to explain, that I have rudimentary knowledge of english. I tried to translate this into german, but two sentences are not clear for me (I think because of my lacks):
1. "Submit a username that is likely to be populated." Do you mean, to try to find a popular username?
2. "Use a specific sites/example.com/settings.php and leave dynamic $base_url - this has the implication of letting Drupal respond to all subdomains of example.com which may or may not be a benefit." I couldn't understand wether "leave" in german means to skip something or to left something.

Antwort von gregglers
Good questions. I've tried to edit the document to make it clearer to understand because it wasn't that clear in English really.
To address your questions:
1. Yes, your understanding is correct. A popular username or one likely to exist for any reason (e.g. a site like drupal.org is likely to have an account named drupal and drupalfan but that is not a popular username anywhere else).
2. Leave it (do not hard-code a value) so it has the default behavior where it is dynamic.

Er hat die Übersetzungen folgendermaßen geändert:
1. Submit a username that is likely to be used on the site
2.Use a specific sites/example.com/settings.php and let $base_url be detected dynamically - this has the implication of letting Drupal respond to all subdomains of example.com which may or may not be a benefit.

Mir hats geholfen. Mein Dank an Euch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

wie machte ich das bei localhost und einer Mailadresse,

Eingetragen von Dorothea_Z (198)
am 15.04.2019 - 05:07 Uhr

die auf meinem provider liegt, bei dem ich künftig das Projekt hochladen will?
Also localhost (Ordner var/www/html/web/drupal) und Mailadresse z.B. adminmails@providerdomain.xyz
Danke für Hinweise!
LG
D.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das SMTP-Modul einsetzen.

Eingetragen von wla (9461)
am 15.04.2019 - 09:15 Uhr

Das SMTP-Modul einsetzen. Dort definierst Du den Server, den User und das Passwort, unter dem die Mail abgeschickt werden soll. Du kannst da also eine Deiner Mailadressen mutzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 9 Stunden
  • Hey danke
    vor 2 Tagen 3 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 21 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 7 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 10 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association