2017-12-31 48 views
1

iframe에 서비스 될 의도로 HTML이 Google App Engine에 업로드되는 경우 스크립트 또는 기타 악의적 인 HTML을 제거하는 등 가장 좋은 방법은 무엇입니까?Google App Engine에서 python으로 html blob 업로드를 어떻게 위생 처리합니까?

나는 거기에 이렇게 좋은 방법이며, 어떤 도움이 많이 감사합니다 만약 내가 궁금

 reader = blobstore.BlobReader(binfo.key()) 
     value = reader.read() 
     newHtml = lxml.html.clean.Cleaner().clean_html (value) 
     #save newHtml as the blob in google cloud store to be served. 

생각입니다.

NB : 앵커를 제거하거나 앵커 (또는 소스)를 비표준으로 만들고 http 등을 보안 할 수있는 방법이 있으면 아주 좋습니다 (또는 완전히 허용되지 않음).

답변

1

HTML을 악의적 인 콘텐츠와 함께 주입 할 수있는 많은 방법이 있으므로 문제를 해결하는 것은 어려운 문제 일 수 있습니다. script 요소는 아마도 가장 잘 알려진/공통이지만, form, inputimg 요소도 악용 될 수 있습니다. 또한 이벤트 핸들러를 통해 거의 모든 요소에 악성 JS가 포함될 수 있습니다. More information about XSS from OWASP, 시작하겠습니다.

당신이 파이썬을 사용하고 있기 때문에, 당신이 시도해 볼 수있는 HTML 위생 처리를위한 몇 가지 라이브러리가 있습니다.

  • 는이 iframe에서 사용자가 제공하는 HTML 호스팅 가치가 무엇인지에 대한
  • sanitize

bleach

  • html-sanitizer
  • 당신이 호스팅하고있는 응용 프로그램을 (액세스 악의적 인 콘텐츠를 방지하기위한 하나의 방법입니다 iframe을 예방하기위한 조치를 취할 수는 있지만 사용자가 해당 위치에서 호스팅되는 콘텐츠가 항상 신뢰할 수있는 것은 아니라는 점을 분명하게 알리고 싶을 수 있습니다.

    희망이 도움이됩니다.

    +0

    많은 감사. 나는 lxml.clean을 사용하고 있으며 이것으로 많은 것을 제거하고 하나의 대중적인 살균 소독제처럼 보인다. 그러나 내가 언급 한 다른 것들도 체크 아웃 할 것이다. Btw, 'iframe breakout'이라고하면 무슨 뜻이야? 또한 iframe을 '샌드 박스'로 생각하고 있습니다. 그런 경우 일반적으로 권장되는 방법입니까? – user1055761

    +0

    예, [sandboxed iframes] (https://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/)를 사용하면 더 많은 것을 잠글 수 있습니다. 또한 사용할 수있는 경우 ['X-Frame-Options'] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) 설정을 고려할 수도 있습니다 -케이스. 여기에 더 많은 정보가 있습니다. * [Clickjacking Defense 치트 시트] (https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet) * [최근 프레임 워크 파기에 대한 스레드] (https : // stackoverflow. co.kr/questions/958997/frame-buster-buster-code-needed) – erichiggins

    관련 문제