XXX.Validation = function() {
var ok = false;
loop:
do {
for (...) {
while (...) {
if (...) {
break loop; // Exist the outermost do-while loop
}
if (...) {
continue; // skips current iteration in the while loop
}
}
}
if (...) {
break loop;
}
if (...) {
break loop;
}
if (...) {
break loop;
}
if (...) {
break loop;
}
ok = true;
break;
} while(true);
CleanupAndCallbackBeforeReturning(ok);
return ok;
};
Django поставляется с шаблоном фильтра под названием striptags , который вы можете использовать в шаблоне:
value|striptags
Он использует функцию strip_tags
, которая находится в django.utils.html
. Вы также можете использовать его для очистки данных вашей формы:
from django.utils.html import strip_tags
message = strip_tags(form.cleaned_data['message'])
В качестве альтернативы, есть библиотека Python, которая называется bleach :
Bleach - это библиотека для очистки и сортировки текста на основе белого списка HTML. Он предназначен для ввода ненадежного пользовательского ввода с некоторым HTML.
Поскольку Bleach использует
html5lib
для разбора фрагментов документов так же, как это делают браузеры, он чрезвычайно устойчив к неизвестным атакам, гораздо больше, чем дезинфицирующие средства на основе регулярных выражений.
Пример:
import bleach
message = bleach.clean(form.cleaned_data['message'],
tags=ALLOWED_TAGS,
attributes=ALLOWED_ATTRIBUTES,
styles=ALLOWED_STYLES,
strip=False, strip_comments=True)
strip_tags фактически удаляет теги из входных данных, что может быть не тем, что вы хотите.
Чтобы преобразовать строку в «безопасную строку» с угловыми скобками, амперсандами и кавычками, преобразованными в соответствующие объекты HTML, вы можете использовать фильтр escape :
from django.utils.html import escape
message = escape(form.cleaned_data['message'])