Eines der Sicherheitsprinzipien ist die Bereinigung von Zeichenfolgen und Variablen, die vom Client an den Server übergeben werden. In einfachem PHP gibt es einige Funktionen, um XSS - Schwachstellen ( Cross-Site Scripting ) zu verhindern :
Welche Strategie verfolgt Drupal 8, um XSS-Angriffe zu verhindern? Wie kann ich Client-Datenpost bereinigen, um meine Site vor XSS-Angriffen zu schützen?
Ich erinnere mich, dass Drupal 7 filter_xss()
XSS-Schwachstellen verhindern muss, aber was ist die Drupal 8-Strategie gegen XSS-Schwachstellen?
Antworten:
Quelle: Drupal 8: Schreiben von sicherem Code von: Rade, Shyamala, Robert Castelo und Pere Orga.
quelle
Zweigvorlagen haben die Ausgabe in meiner Anwendung nicht bereinigt. Eine Skriptzeichenfolge oder ein XSS-Angriff, der in ein Kommentarfeld eingegeben und gespeichert wurde, wurde beim Laden der Seite ausgeführt. Stattdessen habe ich das Problem gelöst, indem ich jedes String-Eingabefeld in bereinigt habe
hook_ENTITY_TYPE_load
.quelle
Drupal verfolgt im Allgemeinen den Ansatz, nach Ausgabe zu filtern, nicht nach Eingabe.
Ein Modul, das die Eingabe einer Person als nicht Teil des Feldsystems akzeptiert, muss sie bei der Ausgabe filtern (auch von privilegierten Administratorbenutzern). Die Ausgabe erfolgt normalerweise als Render-Array. Eine einfache Möglichkeit, dies zu tun, besteht darin, die zulässigen Tags beim Rendern zu begrenzen. So nehmen Sie ein Beispiel aus der Ausgabe eines Termlabels durch das Taxonomiemodul :
...
quelle