Флаги re
, такие как re.I
, представляются целочисленными значениями. Но они интерпретируются как двоичные битовые маски. Итак, вот что ваши маски на самом деле равны:
re.S | re.X = 80
re.S + re.X = 80
re.S & re.X = 0
Вот то, что значение 80
в двоичном виде:
1010000
А вот значения для [116 ] (64) и re.X
(16) в двоичном виде:
re.S = 1000000
re.X = 0010000
1010000 <--- 80 in decimal
Должно быть ясно, что re.S | re.X
и re.S + re.X
перекрывают биты обоих флагов, в то время как re.S & re.X
не. В этом случае целочисленное сложение +
и побитовое ИЛИ |
дают одинаковый результат.
Вы действительно должны позволить пользователям вводить как можно меньше HTML и / или JavaScript. Одним из хороших решений для проверки и дезинфекции этого материала является использование готовой библиотеки, такой как OWASP AntiSamy .
Кроме того, взгляните на OWASP Enterprise Security API для коллекции методы безопасности, необходимые разработчику для создания защищенного веб-приложения.
You should always do basic HTML-escaping of data taken from sources like user input or the database that might contain invalid characters. The
JSP tag does this, for example. That way if the user enters "