面白いライブラリがあるのですね。
GitHubのIssuesにインジェクション対策が掲載されていました。
Injection Vulnerability #391
python
1import bleach
2from django import forms
3
4from django_summernote.widgets import SummernoteWidget
5
6ALLOWED_TAGS = [
7 'a', 'div', 'p', 'span', 'img', 'em', 'i', 'li', 'ol', 'ul', 'strong', 'br',
8 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
9 'table', 'tbody', 'thead', 'tr', 'td',
10 'abbr', 'acronym', 'b', 'blockquote', 'code', 'strike', 'u', 'sup', 'sub',
11]
12
13STYLES = [
14 'background-color', 'font-size', 'line-height', 'color', 'font-family'
15]
16
17ATTRIBUTES = {
18 '*': ['style', 'align', 'title', ],
19 'a': ['href', ],
20}
21
22class HTMLField(forms.CharField):
23 def __init__(self, *args, **kwargs):
24 super(HTMLField, self).__init__(*args, **kwargs)
25 self.widget = SummernoteWidget()
26
27 def to_python(self, value):
28 value = super(HTMLField, self).to_python(value)
29 return bleach.clean(
30 value, tags=ALLOWED_TAGS, attributes=ATTRIBUTES, styles=STYLES)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/18 00:54
2020/04/18 01:09