十一 142008
 

昨天写了《使用Asp.Net绕过As3的跨域安全沙箱》,有几个小问题。

先上一副图吧。

connect

这里A服务器是我们的服务器,假设了一个Web服务器。放有一个Asp.Net的资源转发文件(即我上面写的redir.ashx),同时有个flash的swf供网友使用。

B服务器是要获取的资源的服务器。

1、天地会上有人说那crossdomain.xml跑哪里去了,因为这里swf与asp.net的转发文件同域,因此这里不用crossdomain.xml也可以了。

2、这种方法的确比较耗资源,其实这样做也是不得已而为之,因为我们有时候需要从其他服务器取一些东西,而对方服务器又不是我们的,让flash直接去取如果对方没有放置crossdomain.xml则会失败。

最好是先判断一下B服务器是否有crossdomain.xml以及其中是否允许直接访问吧,如果允许访问就不要通过A服务器转发:)

同时,天地会上有同学qimming写了PHP和Asp的。转发一下:

<%
'用于实现Flash跨域读取文件
'注意:本程序为asp版,您的空间必须支持asp,使用过多将会加重服务器负担

dim url
url = request("url")

if url = "" then
        response.End()
end if

dim obj
Set obj = Server.CreateObject("Msxml2.ServerXMLHTTP")
obj.open "GET",url,false
obj.send()

if obj.readystate<>4 then
        response.Redirect(url)
end if

Response.ContentType = "application/octet-stream"
Response.BinaryWrite obj.responseBody

Set obj = nothing

%>

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>