2012-03-11 2 views
4

웹 사이트 사용자가 자신의 SVG 문서를 업로드하여 inkscape 또는 svg2pdf으로 렌더링 할 수 있도록 할 계획입니다. 사용자는 인증되지 않았거나 사소한 가입 절차를 거치므로 해킹 시도가 예상됩니다. 따라서 보안 위협을 최소화하기 위해 어떤 필터링을 할 수 있는지에 대한 조언을 주시면 감사하겠습니다.사용자가 자신의 SVG 파일을 렌더링하게하는 보안상의 영향

  • 잉크 스케이프는 JavaScript onload tags에 의해 방해 것으로 보인다 행복하게 아무것도 부적당 일어나는없이 컨텐츠를 렌더링하지 않습니다 (말했다, 그 방법을 사용하거나 경고 상자를 기침 파이어 폭스 (10)를 얻을 수 없다).
  • <image xlink:href /> 태그가 이론적으로 서비스를 중단시킬 수있는 외부 URI를 사용하여 거대한 또는 잘못된 형식의 비트 맵 이미지에 연결할 수 있다고 우려하고 있습니다. XML 문서를 트래버스하여 쉽게 필터링 할 수 있습니까? 물론 XMLReader로이 작업을 쉽게 처리 할 수는 있지만, 'onload'에 대해 &#111;nload 같은 것을 처리해야하는지 궁금 할 것입니다.하지만 Firefox는이를 유효하지 않은 것으로 거부 했으므로 불필요한 걱정입니다. Sidenode : 이미지 자체는 허용되지만 인라인 data:이거나 허용 된 대상 URI 허용 목록 (파일 크기 제한 포함)이 필요합니다.
  • 시스템 파일의 텍스트 내용 (예 : /etc/passwd)을 포함 할 수있는 SVG 지시문 (특히 렌더링 텍스트)이 있습니까?
  • 내가 취할 수있는 한 가지 방법은 SVG 사양에 대한 유효성 검사입니다. 그 질문은 다른 질문의 대상입니다. here.

다른 PHP 스트림 기반 시스템도 사용할 수 있지만 XMLReader 및 XMLWriter와 함께 PHP 5.2를 사용하고 있습니다. 시스템은 dev 용 OS X 10.6.8이고 프로덕션 환경에서는 LAMP입니다.

답변

3

예 :/etc/passwd에 등과 같은 시스템 파일의 텍스트 내용을 포함 할 수있다 (텍스트를 렌더링 특히) 어떤 SVG 지침이 있습니까?

see here 특정 구현에 대해 XXE 공격을 수행 할 수 없는지 확인해야합니다.

+0

고맙습니다. 그러한 공격을 복제하는 방법에 대한 아이디어가 있다면 테스트 할 구체적인 것을 갖게 될 것입니다. – halfer

관련 문제