Castle Project полон функций, включает в себя несколько потрясающих подпроектов, и разрабатывать с ним было одно удовольствие.
Моя команда почти готова предоставить индивидуальный EAM, и мы дорабатываем нашу систему. Мы попробовали несколько базовых XSS-атак и угадали: все они сработали.
Несмотря на то, что он будет работать в среде интрасети, мы не хотим, чтобы пользователи случайно сломали всю систему, и мы изучаем решения для решения проблем XSS.
NVelocity по умолчанию ничего не ускользает, поэтому этот код:
${entity.Field}
с полем, содержащим такие вещи, как:
<script>alert('xss!')</script>
даст нам хорошее оповещение xss.
Библиотека Microsoft AntiXSS выглядит неплохо: обрабатывает несколько типов возможных векторов XSS и так далее. Мы столкнулись с помощником AndyPike, но это решение заставит нас рефакторировать пару тысяч строк. Ага, нехорошо. И это не повлияет на автоматическое связывание ActiveRecord / NVelocity при редактировании существующих объектов.
Возникает вопрос: можно ли / рекомендуется использовать методы кодирования вывода для исправления движка NVelocity Castle Project? Так же, как они сделали с Брайлом? У кого-нибудь есть идея получше?
Спасибо!
PS: Stackoverflowers, использующие Castle Project, будут использовать такой патч?