用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6140|回复: 11
收起左侧

[服务器] 如何处理跨域提交验证问题?

[复制链接]
发表于 2012-7-20 13:28:55 | 显示全部楼层 |阅读模式
本帖最后由 yuvista 于 2012-7-20 16:21 编辑

最近随着公司产品平台访问量的增加,原来的单一服务器已经无法满足需求,所以我们决定将服务器分拆,图片及文件附件被分拆到独立的一台服务器上(就目前的访问负载暂时还不会考虑DFS之类的东东),跨域上传的功能已经基本实现,但是在处理跨域请求时,遇到了跨域表单请求的验证问题:            我需要在a.com的网页上将文件上传到b.com上,这样一来

            如何验证用户发出的表单请求是合法的?

          这事已经困扰了我两天了,不知各位能否提供一个可实际应用的思路?{:soso_e183:}






ps:之前一台服务器的时候是通过程序内部的判断机制来处理的
         

发表于 2012-7-20 14:21:33 | 显示全部楼层
本帖最后由 暗夜星辰 于 2012-7-20 14:23 编辑

没处理过此类问题 仅提供一个思路

因为曾遇到 swf上传的问题 可能类似

开启 csrf 获取一个合法的token 然后通过 ajax 获取表单页?

这样是否可以处理 真实性的问题呢?

期待与您探讨
发表于 2012-7-20 14:28:39 | 显示全部楼层
看下 这个参考 是不是你想要的?
http://codeigniter.org.cn/forums ... hread&tid=11276

有关csrf那块
 楼主| 发表于 2012-7-20 14:38:05 | 显示全部楼层
谢谢了,值得参考,不过跟我要的还有点差别,呵呵
 楼主| 发表于 2012-7-20 15:34:27 | 显示全部楼层
暗夜星辰 发表于 2012-7-20 14:21
没处理过此类问题 仅提供一个思路

因为曾遇到 swf上传的问题 可能类似
我也是使用的flash做的跨域上传。
您说的思路是没有问题的,但是现在的问题是:发放token的是a.com ,接受并验证token的是b.com,b.com如何验证a.com分发的token,是我最困扰的问题。
发表于 2012-7-21 19:00:24 | 显示全部楼层
指纹识别 search on internet
发表于 2012-7-22 21:43:17 | 显示全部楼层
跨域,用XML,既做中间件,也做交互令牌。
另外,加入嵌套的iframe。
 楼主| 发表于 2012-7-23 08:43:33 | 显示全部楼层
太尉天上飞 发表于 2012-7-21 19:00
指纹识别 search on internet

能说下思路么
 楼主| 发表于 2012-7-23 08:45:29 | 显示全部楼层
spt119 发表于 2012-7-22 21:43
跨域,用XML,既做中间件,也做交互令牌。
另外,加入嵌套的iframe。

谢谢,您的提示。
目前跨域上传已经实现,问题出在交互令牌的验证问题上,或者怎么样产生一个可交互认证的令牌,能否提供下思路谢谢了
发表于 2012-7-23 21:17:03 | 显示全部楼层
楼上:
我说下一个简单的思路。前提是a.com和b.com不在一个服务器上。
用户看见的是a.com的页面,你需要在a.com的页面中iframe一下b.com的相关内容。
交互令牌的原理是a.com的操作,保存在一个xml文件中,b.com将在一个trigger触发后,主动到a.com读取这个xml。那么这个xml中保存的内容,就是session及file属性等内容,b.com得到这个xml后,整个工作也就完成。
trigger的设计有这样几种方式:
1.JS定时轮询.比如10秒或更短。这需要在b.com上设置一个常开的页面,否则JS无法操作。
2.内存常驻,这需要有直接操作服务器的权限。
3.由服务器“转按揭”,既a.com操作上传时,在数据库中某个表内发生数据变化。在b.com中由PHP捕获这个变化,并通知b.com去读a.com的xml。

一家之言。

本版积分规则