代码之家  ›  专栏  ›  技术社区  ›  Decent Dabbler

允许视频嵌入时需要注意哪些XSS/CSRF攻击(如果有)?

  •  3
  • Decent Dabbler  · 技术社区  · 14 年前

    没有允许用户嵌入视频的经验:

    在一分钟内,我想脱掉所有标签,除了 <object> , <param> <embed> . 但我觉得这还不够,是吗?

    编辑
    也:
    <embed src= <param name="movie" value=
    /编辑

    如果是重要的,环境将是:

    • MySQL数据库

    要点:
    是否有一个通用的最小黄金法则/代码模板,用于在所有视频网站上有效的视频嵌入代码,我可以用来过滤输入?

    2 回复  |  直到 14 年前
        1
  •  2
  •   shfx    14 年前

    首先也是最危险的xss(?)是flash可以读取你的DOM。。。不要在用户可以输入他/她的登录数据的页面上嵌入视频。登录表单应该分开。

    通常,flash embeds使用的代码类似于:

    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>
    

    <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>
    

    元安全:

    <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>
    

    启用嵌入内容的最佳解决方案是剥离标签,但 嵌入,参数,对象 以及可以使用的样本中的属性列表。

        2
  •  1
  •   St. John Johnson    14 年前

    为什么不访问所有的站点,保存它们的嵌入代码,然后只允许用户提交所需的站点参数呢?

    推荐文章