2014-09-25 6 views
2

그래서 ... (내용이 HTML 태그가)의 난 내용으로 기사를 있다고 가정 해 봅시다. '내가 이중 텍스트를 탈출받을나뭇 가지 이스케이프 ('JS') symfony2

등등 .. 내가 돈 HTML을 의미하고 .. 그래서

{{article.content|raw|e('js')}} 

을하고 시도하고 모든 탈출 - 사용자가 스크립트 태그를 추가하는 경우

문제입니다 더 이상 html 태그가 없습니다. 모든 태그가 이스케이프 처리됩니다. 나뭇 가지 버그 또는 어떤 종류의 버그입니까?

예 : 내가 "\x3Cp\x3Etestas\x3C\x2Fp\"을 볼 수 {{article.content|raw}}"<p>test</p>"

내가 {{article.content|raw|e('js')}}에 "테스트"를 볼 수 있습니다. 무슨 일 이니? 나는 서버 측에서 스크립트 태그를 벗어날 수 있다는 것을 알고 있지만 내 접근 방식에 무엇이 잘못되었는지 알고 싶어합니다.

+1

원시로 가기 전에 탈출을 시도 했습니까? –

+0

예 ... 시도했는데 .. 같은 .. – user2118788

+0

왜 js를 벗어나야하나요? 내 말은 콘텐츠를 HTML 또는 js로 인쇄하고 싶다면 'raw'로 인쇄하십시오 – Javad

답변

0

탈출 필터를 사용하는 작업에 대한 도구가 잘못되었습니다. 작성한 내용에 따라 "원시"필터는 아무 작업도 수행하지 않으며 이스케이프는 출력중인 문자열을 이스케이프 처리하여 출력의 자바 스크립트 섹션에 데이터로 포함하기에 적합합니다.

당신이 찾고있는 것은 HtmlPurifier과 같은 XSS 필터입니다. 프로젝트에 XSS 필터를 포함하기 위해 작곡가 또는 직접 설치를 사용하면 스크립트 태그 등의 XSS 벡터를 걸러 내고 원시 필터를 통해 출력하는 변수를 안전하게 남겨 둘 수있는 Twig 용 사용자 정의 필터를 작성할 수 있습니다 .

관련 문제