跨域数据传输的安全问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI生成的内容
Windweller
V2EX    程序员

跨域数据传输的安全问题

  •  
  • &nsp; Windweller 2013-09-02 21:56:26 +08:00 3614 次点击
    这是一个创建于 4437 天前的主题,其中的信息可能已经有所发展或是发生改变。
    怎么说呢。。与其说这是一个程序问题,还不如说是个服务器问题。

    我用Java写了一部分网络应用程序,但是能够放Java的服务器不是很有限么?而且大部分还比较贵。我找到了一个免费的,但是数据库只给15M。所以我就想,另外一个Hosting服务,一个月只要30几元,无限数据库,但是只能用PHP。

    网页本身是在PHP所在的服务器上。

    现在的问题是,所有的请求用Javascript来发送和接受。这样的话,会不会触犯框架的XSS规则?(PHP我用的是CodeIgniter)会不会容易引发CSRF(跨域伪造)?

    更真正的问题是,这玩意可行么。。
    10 条回复    1970-01-01 08:00:00 +08:00
    xing393939
        1
    xing393939  
       2013-09-03 13:58:47 +08:00   1
    楼主在梦游么,开始是说的服务器用java,后来又说php。再说XSS,结果是CSRF。专业术语你知道,但是原理和细节你没有了解,所以你还是不要想了,just do it
    PrideChung
        2
    PrideChung  
       2013-09-03 16:24:29 +08:00   1
    应该不需要跨域,既然两台服务器都在你手上,可以通过设置document.domain来让Javascript跨子域。
    Windweller
        3
    Windweller  
    OP
       2013-09-03 21:32:38 +08:00
    @xing393939 嗯。。我差不多就只停留在知道专业术语。。和其浅表性意思上。我用的是两台服务器,一台是Java配置,一台是PHP配置。这两台服务器都不在一个服务商手上,是分开的,一台是IXWebhosting(PHP),一台是Heroku提供的免费Java服务。我想让这两个后台互相沟通。。由于我不知道后台如何直接沟通,所以想的是用Javascript发送ajax请求到服务器上。但是这会不会存在跨域的问题(我用的CodeIgniter框架。。里面似乎是屏蔽跨域请求的。。)?还是说我可以给这两台服务器同样的域名??(比如一个叫server.xxxx.com一个叫www.xxxx.com
    PrideChung
        4
    PrideChung  
       2013-09-03 22:47:16 +08:00
    @Windweller 屏蔽Javascript的跨域请求是浏览器干的事情,跟你用什么PHP框架无关。
    Windweller
        5
    Windweller  
    OP
       2013-09-03 22:59:52 +08:00
    @PrideChung 谢谢回答- -!额。。有办法关掉/绕过这种屏蔽么。。我之前提到的(不清楚是不是子域名)。。用www.xxx.com下的js访问server.xxx.com里面的API,现实么。。我之前提的是框架提供一些防御XSS和CSRF攻击的功能,比如这种:http://ellislab.com/codeigniter/user-guide/libraries/security.html
    qiayue
        6
    qiayue  
    PRO
       2013-09-03 23:33:34 +08:00   1
    你直接用 php 去请求 java 的数据不是更好吗?
    java 那边把数据封装成 json 格式, php 这边获取到之后也可以方便的解析。

    多嘴一句,楼主完全没必要这么折腾啊,写个应用还要一边 java ,一边 php ,不累么?
    PrideChung
        7
    PrideChung  
       2013-09-04 00:02:42 +08:00
    @Windweller 要是跨域的限制这么好绕过,我都改行去当黑客了。按你这种情况,可以按 @qiayue 说的,让跑Java的服务器来向跑PHP的服务器请求数据,不涉及到JavsScript也就没有跨域的问题了。
    Windweller
        8
    Windweller  
    OP
       2013-09-04 00:42:20 +08:00
    @qiayue 好办法,谢谢!!其实我都不知道PHP还能发送请求。。。折腾的原因是我不熟悉PHP。。CRUD在框架帮助下还好。。但复杂逻辑的东西就写不出来了,只能求助Java。。
    roricon
        9
    roricon  
       2013-09-04 13:21:08 +08:00
    其实我只想问,为什么不用远程数据库呢?
    php连接数据库一般也都是用user@host:port的形式。
    只要你PHP那个服务器那端支持从非localhost端登陆就可以直接连了嘛。
    PrideChung
        10
    PrideChung  
       2013-09-04 19:56:03 +08:00
    @roricon 目测就是只支持本地连接数据库。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3653 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 19ms UTC 10:29 PVG 18:29 LAX 03:29 JFK 06:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86