跨浏览器HTML5拖放JSON DataTransfer失败

时间:2013-10-14 14:21:16

标签: javascript html5 cross-browser xss html5-draggable

我注意到,由于某种原因,当mime设置为application/json时,无法通过可拖动对象将数据从chrome传输到firefox或反之亦然。

在此处查看演示:http://jsfiddle.net/n7N9p/4/

(打开chrome和firefox中的链接,然后尝试将可拖动的JSON从一个浏览器拖到另一个浏览器中。)

我已经测试了在不同情况下拖动拖动器:

  1. 从CHROME到CHROME通过文字 工作
  2. 从CHROME到CHROME通过 application / json 工作
  3. 从CHROME到CHROME INCOGNITO通过文本 工作
  4. 从CHROME到CHROME INCOGNITO通过 application / json 工作
  5. 通过文字从FIREFOX到FIREFOX 工作
  6. 从FIREFOX到FIREFOX,通过 application / json 工作
  7. 通过文本从FIREFOX到FIREFOX私人窗口 工作
  8. 从FIREFOX到FIREFOX私人窗口,通过 application / json 工作
  9. 从CHROME到FIREFOX,通过文字 工作
  10. 从CHROME到FIREFOX,通过 application / json 无效
  11. 通过文字从FIREFOX到CHROME 工作
  12. 从FIREFOX到CHROME通过 application / json 不起作用
  13. 为什么(仅)10和12失败?

    这是错误还是安全功能?如果它是一个安全功能,那为什么它不安全? 3号,4号,7号和8号怎么不被认为是不安全的?为什么它始终适用于设置为text的mime?

1 个答案:

答案 0 :(得分:1)

Why does (only) 10 and 12 fail?

application/json can be serialized to text if the browser knows the source

How come 3, 4, 7 and 8 are not considered insecure?

The data is transferred from client to client, not client to server

Why does it always work with the mime set to text?

The setData method of the dataTransfer object accepts text and dataURLs

References