奇怪的问题:embed在chrome下src自动被转为"about:blank"

想让用户通过get或post的方式给页面上动态添加视频模块,却让chrome给弄成空白了。

源程序用post提交,smarty显示页面,这里我用get写个简易的demo做个演示

demo:

1
2
$dyn = $_GET['conentent'];
echo $dyn;

在chrome中输入:

http://localhost/test/test.php?content=%3Cembed%20src=%22http://www.tudou.com/v/cBrn6BmNpXI/v.swf%22%20type=%22application/x-shockwave-flash%22%20allowscriptaccess=%22always%22%20allowfullscreen=%22true%22%20wmode=%22opaque%22%20width=%22470%22%20height=%22367%22%3E%3C/embed%3E

(conent内容是土豆上弄的一个embed标签)

chrome中显示空白:

src变成了about:blank, type的值也没有了。

再在chrome里看一下源代码:

这里是没有任何问题的!

在火狐和IE下都没有问题:

在 stackoverflow 上有一哥们也碰到了问题,可惜没有正确的答案。围观一下

有谁知道答案的话麻烦告知一下……

[2012-04-17]终于看到今年2月22号有人解答:在显示内容前发送一个header就OK了。

1
header('X-XSS-Protection: 0');

不知道看观记不记得去年新浪微博的跨站点攻击。防范的方法就是对请求来源做一下检查。而chrome默认开启了这一项。导致我们需要的时候还要在程序里设置一下。

参考:

1.google官方解答 (stackoverflow上贴的就是这个地址)

2.Disable Webkit Browser XSS Protection

坚持原创技术分享,您的支持将鼓励我继续创作!