最近在做个人空间,不想搭本地php和数据库,为了省事,在新浪云SEA开了个php应用,挺好用的,现在没什么访问量,基本不收费,特别适合练手。
我的空间是php,由于没有实名验证,每个页面都会出现一个 " 该页面的提供者尚未完成 实名认证 您的访问可能存在风险",特别烦。
这是新浪用js注入到php页面生成的,每次服务器返回一个php页面,其末端都会被新浪加上一段js代码。更坑爹的是,我想echo些json数据返回给前端,数据里面也会被自动添加进这个东西,所以还要写另外的函数去处理。之前找到资料(http://www.cnblogs.com/KC-Mei/p/4421894.html),在结尾加入半个注释符的办法将这段js消除,我试了下,有效果,然而不是很好,因为无法解决json数据也被污染的问题。
后来,因为我要实现一个php读取文件再提供下载地址的功能,于是要手动设置header里的content-type,然后神奇的事情出现了,新浪不再向这个页面注入js。这倒也是,在这种页面注入js只会使下载的文件损坏。于是我测试了下,发现新浪只是对不设置content-type的页面或者content-type为text/html的页面注入js,因此对于json数据,只要把content-type设置为application/json就可以防止注入。对于普通的php/html,在考虑了各个浏览器兼容问题之后,我发现要把content-type设置为空,就可防止注入了。如:
<?php header('content-type: '); ?>