캐슬 프로젝트는 기능이 풍부하고 멋진 서브 프로젝트를 포함하고 있으며 개발이 즐거웠습니다.NVELocity에서 XSS를 처리하는 방법
저희 팀은 EAM으로 주문 제작을 거의 준비했으며 시스템을 연마하고 있습니다. 우리는 몇 가지 기본적인 XSS 공격을 시도하고 추측했습니다. 모두 작동했습니다.
인트라넷 환경에서 실행되지만 사용자가 우연히 전체 시스템을 손상시키는 것을 원하지 않으며 XSS 문제를 처리하기위한 솔루션을 연구하고 있습니다. 기본적으로
NVelocity 아무것도 탈출, 그래서이 코드하지 않습니다 필드를 같은 것들을 포함와
${entity.Field}
:
<script>alert('xss!')</script>
우리에게 좋은 XSS 경고를 줄 것이다.
Microsoft의 AntiXSS 라이브러리는 모양이 좋습니다. 가능한 여러 가지 유형의 XSS 벡터를 처리합니다. 우리는 AndyPike의 helper을 만났습니다. 그러나이 솔루션은 우리에게 몇 천 개의 라인을 리팩터링하게 만들 것입니다. 그래, 좋지 않아. 그리고 이것은 기존 엔티티를 편집 할 때 ActiveRecord/NVelocity 자동 바인드를 처리하지 않습니다.
질문 : 출력 인코딩 기술을 사용하여 성 프로젝트의 NVelocity 엔진을 패치 할 수 있습니까? 그들이 Brail과 같이했던 것처럼? 누구나 더 좋은 아이디어가 있습니까?
감사합니다.
추 신 : 성 프로젝트를 사용하는 Stackoverflowers은 그러한 패치를 사용합니까? 기본적으로
그냥 빨리 참고 : FormHelper는 입력 필드에 값을 넣기 전에 HtmlEncondig 않습니다. – wtaniguchi