跨域数据传输的安全问题

2013-09-02 21:56:26 +08:00
 Windweller
怎么说呢。。与其说这是一个程序问题,还不如说是个服务器问题。

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

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

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

更真正的问题是,这玩意可行么。。
3228 次点击
所在节点    程序员
10 条回复
xing393939
2013-09-03 13:58:47 +08:00
楼主在梦游么,开始是说的服务器用java,后来又说php。再说XSS,结果是CSRF。专业术语你知道,但是原理和细节你没有了解,所以你还是不要想了,just do it
PrideChung
2013-09-03 16:24:29 +08:00
应该不需要跨域,既然两台服务器都在你手上,可以通过设置document.domain来让JavaScript跨子域。
Windweller
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
2013-09-03 22:47:16 +08:00
@Windweller 屏蔽JavaScript的跨域请求是浏览器干的事情,跟你用什么PHP框架无关。
Windweller
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
2013-09-03 23:33:34 +08:00
你直接用 php 去请求 java 的数据不是更好吗?
java 那边把数据封装成 json 格式, php 这边获取到之后也可以方便的解析。

多嘴一句,楼主完全没必要这么折腾啊,写个应用还要一边 java ,一边 php ,不累么?
PrideChung
2013-09-04 00:02:42 +08:00
@Windweller 要是跨域的限制这么好绕过,我都改行去当黑客了。按你这种情况,可以按 @qiayue 说的,让跑Java的服务器来向跑PHP的服务器请求数据,不涉及到JavsScript也就没有跨域的问题了。
Windweller
2013-09-04 00:42:20 +08:00
@qiayue 好办法,谢谢!!其实我都不知道PHP还能发送请求。。。折腾的原因是我不熟悉PHP。。CRUD在框架帮助下还好。。但复杂逻辑的东西就写不出来了,只能求助Java。。
roricon
2013-09-04 13:21:08 +08:00
其实我只想问,为什么不用远程数据库呢?
php连接数据库一般也都是用user@host:port的形式。
只要你PHP那个服务器那端支持从非localhost端登陆就可以直接连了嘛。
PrideChung
2013-09-04 19:56:03 +08:00
@roricon 目测就是只支持本地连接数据库。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/81102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX