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 будет использовать такой патч?