Was XSS / CSRF-Attacken (falls vorhanden) sich bewusst sein, wenn das Video bettet erlaubt?

StackOverflow https://stackoverflow.com/questions/2471834

  •  20-09-2019
  •  | 
  •  

Frage

Ich habe ein Projekt für eine Website zugewiesen wurde, in dem Benutzer erlaubt wird Videos hochladen (eine YouTube-API), aber was noch wichtiger ist (für mich) werden sie auch Videocodes einzubetten einreichen können (aus zahlreichen Video-Websites, YouTube, Vimeo etc. etc.).

Da sie keine Erfahrung mit so dass Anwender Video einbinden:
Wie schützt man am besten gegen Cross-Site-Scripting und / oder Cross-Site-Request-Forgery-Angriffe speziell für Video-Einbettung? Was sind einige der häufigsten Gefahren sind zu achten?

Bei einem Minimum würde ich denken, alle Tags außer <object>, <param> und <embed> abzustreifen. Aber ich habe ein Gefühl, das nicht genug sein wird, wird es?

Bearbeiten
Auch:
Glauben Sie, dass nur bekannte Video-Domainnamen in den <embed src= und <param name="movie" value= Attribute erlaubt ist genug Rogue Flash-Filme zu verhindern, dass in diesen Attributen eingebettet werden?
/ bearbeiten

Wenn es von Bedeutung ist, wird die Umgebung sein:

  • PHP / Zend Framework
  • MySQL

Bonuspunkte:
Gibt es eine gemeinsame Mindest goldene Regel / Code-Vorlage für Videocodes einzubetten, die auf allen Video-Websites gültig sind, dass ich nutzen, um die Eingabe zu filtern?

War es hilfreich?

Lösung

Der erste und gefährlichste xss (?), Dass Flash ist Ihr DOM lesen können ... Do Videos auf den Seiten nicht einbetten, wo Eingangs Benutzer kann seine / ihre Daten anmelden. Login-Formulare getrennt werden sollen.

Blitz Normalerweise bettet Verwendungen Code, sieht ähnlich aus wie:

Youtube:

<object width="425" height="350">
  <param name="movie" value="http://www.youtube.com/v/AyPzM5WK8ys" />
  <param name="wmode" value="transparent" />
  <embed src="http://www.youtube.com/v/AyPzM5WK8ys"
         type="application/x-shockwave-flash"
         wmode="transparent" width="425" height="350" />
</object>

Vimeo:

<object width="400" height="225">
  <param name="allowfullscreen" value="true" />
  <param name="allowscriptaccess" value="always" />
  <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10239065&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" />
  <embed src="http://vimeo.com/moogaloop.swf?clip_id=10239065&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed>
</object>
<p><a href="http://vimeo.com/10239065">La Fete (HD - 2010)</a> from <a href="http://vimeo.com/animalcolm">Malcolm Sutherland</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

Metacafe:

<embed src="http://www.metacafe.com/fplayer/4317045/bmx_face_slide.swf" width="400" height="345" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" name="Metacafe_4317045"> </embed>
<br><font size = 1><a href="http://www.metacafe.com/watch/4317045/bmx_face_slide/">BMX Face Slide</a> - <a href="http://www.metacafe.com/">Free videos are just a click away</a></font>

Beste Lösung für embeded Inhalt ermöglicht ist Tags mit Ausnahme abzustreifen für einbetten, param, Objekt und die Liste der Attribute von den Proben, die verwendet werden können.

Denken Sie daran, können einige Attribute JavaScript-Code sowie Ankers laufen href ...

Edit: Zulassen nur vertrauenswürdige Sites in src und Wert-Attribute des param ist irgendwie guter Weg hAx0rs zu tun, schlechte Dinge zu verhindern, aber es ist nicht flawles. Eine andere große Sache: Lesen Sie mehr über allowScriptAccess. Sein ein Param des Attributs sollten Sie entfernen oder Satz zu samedomain / nie. Es wird verhindert, dass SWF von Javascript ausgeführt wird:)

Andere Tipps

Warum gehst du nicht einfach alle die Seiten besuchen, speichern ihre Einbettungscode, und dann auch nur erlauben den Benutzern die erforderlichen Website Parameter einreichen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top