python / intermediate
Snippet
Eindämmung von Cross-Site-Scripting durch benutzerdefinierte Formular-Bereinigungsmethoden
Die Annahme von unbereinigtem Texteingaben durch Benutzer setzt Webanwendungen Angriffen durch Stored Cross-Site Scripting (XSS) aus. Das Überschreiben des clean_<feldname>-Hooks in einem Django-Formular stellt sicher, dass Daten bereinigt werden (z. B. durch Entfernen von HTML-Tags mit strip_tags), bevor sie in die Datenbank gelangen oder Benutzern erneut angezeigt werden.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
from django import formsfrom django.utils.html import strip_tagsclass UserBioForm(forms.Form):bio = forms.CharField(widget=forms.Textarea)def clean_bio(self):raw_bio = self.cleaned_data.get('bio', '')sanitized_bio = strip_tags(raw_bio)return sanitized_bio
django
Erklärung
1
class UserBioForm(forms.Form):
Defines an ein Standard-Django-Formular für die Eingabe von Benutzerbiografien.
2
def clean_bio(self):
Implementiert einen feldspezifischen Clean-Hook, der automatisch während der Formularvalidierung aufgerufen wird.
3
sanitized_bio = strip_tags(raw_bio)
Entfernt HTML-Tags aus dem Eingabestring des Benutzers, um Script-Injection-Risiken zu neutralisieren.