4
웹 사이트 사용자가 자신의 SVG 문서를 업로드하여 inkscape
또는 svg2pdf
으로 렌더링 할 수 있도록 할 계획입니다. 사용자는 인증되지 않았거나 사소한 가입 절차를 거치므로 해킹 시도가 예상됩니다. 따라서 보안 위협을 최소화하기 위해 어떤 필터링을 할 수 있는지에 대한 조언을 주시면 감사하겠습니다.사용자가 자신의 SVG 파일을 렌더링하게하는 보안상의 영향
- 잉크 스케이프는 JavaScript onload tags에 의해 방해 것으로 보인다 행복하게 아무것도 부적당 일어나는없이 컨텐츠를 렌더링하지 않습니다 (말했다, 그 방법을 사용하거나 경고 상자를 기침 파이어 폭스 (10)를 얻을 수 없다).
<image xlink:href />
태그가 이론적으로 서비스를 중단시킬 수있는 외부 URI를 사용하여 거대한 또는 잘못된 형식의 비트 맵 이미지에 연결할 수 있다고 우려하고 있습니다. XML 문서를 트래버스하여 쉽게 필터링 할 수 있습니까? 물론 XMLReader로이 작업을 쉽게 처리 할 수는 있지만, 'onload'에 대해onload
같은 것을 처리해야하는지 궁금 할 것입니다.하지만 Firefox는이를 유효하지 않은 것으로 거부 했으므로 불필요한 걱정입니다. Sidenode : 이미지 자체는 허용되지만 인라인data:
이거나 허용 된 대상 URI 허용 목록 (파일 크기 제한 포함)이 필요합니다.- 시스템 파일의 텍스트 내용 (예 :
/etc/passwd
)을 포함 할 수있는 SVG 지시문 (특히 렌더링 텍스트)이 있습니까? - 내가 취할 수있는 한 가지 방법은 SVG 사양에 대한 유효성 검사입니다. 그 질문은 다른 질문의 대상입니다. here.
다른 PHP 스트림 기반 시스템도 사용할 수 있지만 XMLReader 및 XMLWriter와 함께 PHP 5.2를 사용하고 있습니다. 시스템은 dev 용 OS X 10.6.8이고 프로덕션 환경에서는 LAMP입니다.
고맙습니다. 그러한 공격을 복제하는 방법에 대한 아이디어가 있다면 테스트 할 구체적인 것을 갖게 될 것입니다. – halfer