免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3346 | 回复: 9
打印 上一主题 下一主题

[xajax]有關xajax的保安 與 跨域應用 問題 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-19 02:38 |只看该作者 |倒序浏览
我對xajax跟SSL配合應用上有一些的概念不是很了解,希望各位提供一下意見。

案例 1. 如果我把呼叫函式跟網頁寫在同一個php上,那只要進入頁面時使用https://進入,在呼叫時XML的傳遞也會加密。

案例 2. 如果我把呼叫函式和頁面分開放在不同的php檔,而都放在同一個domain之下,那只要進入頁面時使用https://進入,在呼叫時XML的傳遞也會加密。

案例 3. 如果我寫了一個xajax呼叫函式給別人的網站用,人家的網站不論有沒有使用https://,在呼叫我伺服器上的函式時,都要使用$xajax = new xajax('https://我的網站/xajax_service.php');才可以在呼叫時使用SSL加密來傳遞資料。

不知道我這些想法是否正確?

另外,如果我希望指定用戶才能呼叫我提供的xajax呼叫函式,我應該怎樣做來識別用戶身份呢?例如我把我的網上商店目錄和購物籃以xajax寫成Discuz的外掛,讓架站的人可以把購物站功能直接加入討論區裡,不過我又想限定使用這個外掛的網站要先向我登記才可以使用這功能。由於xajax的呼叫都是使用javascript,而javascript又是明碼的,所以不可能使用用戶名:密碼的方式。我可以從xajax呼叫函式中使用$_SERVER來取得正確的呼叫者來源資料嗎?

[ 本帖最后由 mickey9801 于 2005-12-20 13:36 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2005-12-19 09:16 |只看该作者
如果是原生的xmlhttprequest操作,是不允许跨域操作的.

也是就是说,其他的站点在客户端是无法调用的.

如果你开发插件或者其他的可能支持.

论坛徽章:
0
3 [报告]
发表于 2005-12-20 03:44 |只看该作者
Yahoo Javascript Developer Center有一篇關於跨域XMLHTTPRequest的文章。

http://ws1.inf.scd.yahoo.com/javascript/howto-proxy.html

這裡提供了一個簡單的PHP web proxy用來向Yahoo API 發出請求。我就是想透過這個方法向其他用戶提供Ajax web service。

[ 本帖最后由 mickey9801 于 2005-12-20 04:07 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2005-12-20 09:18 |只看该作者
原帖由 mickey9801 于 2005-12-20 03:44 发表
Yahoo Javascript Developer Center有一篇關於跨域XMLHTTPRequest的文章。

http://ws1.inf.scd.yahoo.com/javascript/howto-proxy.html

這裡提供了一個簡單的[url=http://ws1.inf.scd.yahoo.com ...




这个所谓的跨域技术完全属于陈旧的技术,  这个做法基本不可取.

服务器之间的交互, 建议采用 web services来进行, 这才是正道.

论坛徽章:
0
5 [报告]
发表于 2005-12-20 13:35 |只看该作者


您的意思是認為Yahoo這個做法不正道?小弟覺得只是方法論而已。在不影響保安和效能的前提下,小弟不覺得這個方法不可取。

小弟覺得Web Service比較多用在server對server的應用上(當然不是只限於這樣),而Ajax則是Client對server用的。直到現在小弟都是用XMLRPC寫Web Service,主要都是用在server對server的資料交換上,例如中央收款系統與網上商店間的資料傳遞。

小弟的想法是要做一個像Amazon Search般任由任何架站網友取用安裝的網上商店插件(暫且以Discuz的外掛作例子吧),有興趣的用戶把這插件安裝在自己的論壇之後,論壇上某個角落就會顯示一個商品清單和購物籃,購物清單會定期向指定網上商店取得資料並更新用戶的清單。如果用戶看上了哪件貨品,用戶不用離開論壇,只要輕輕的把清單的物件拖放到旁邊的購物籃,就可以更新購物籃。用戶想結賬時,也只要更新購物插件部份的內容就可以。直到把客戶交給網上付款公司那一刻,才需要彈出一個付款視窗。整個過程都不用離開論壇半步,而論壇服務器那邊也只是擔任中介角色,不會儲存關於網上商店的任何資料(除非計算分成時需要留下紀錄吧。)

如果小弟沒有曲解大大的意思的話,您的意思就是xajax service那邊接收到xajax client的請求後,以XMLRPC向網上商店取得資料,整理過後再向xajax client作出回應,那麼xajax就只要應付本地端的請求就可以了。

xajax client request -> xajax server side -> convert request -> XMLRPC client side request -> XMLRPC server side -> shop server operation -> XMLRPC server side response -> XMLRPC client side -> convert response -> xajax server side response -> xajax client side show result

這個做法的確比較正統,不過缺點是小弟得要多應付XMLRPC傳回來的資料轉換工作 (我想XMLRPC傳回來的XML回應應該不能直接用 return 傳回 client 去吧?)。如果這件事跟中介網站無關的話(在這例中,直到結賬為止,中介網站都可以不參與),何不直接讓用戶跟網上商店直接對談,讓小弟免卻煩惱?

Yahoo所介紹的的方法,似乎是提供了一個直接讓用戶跨過中介網站來與目標服務器交談的方法。

xajax client request -> web proxy forward request -> remote xajax server side ->  shop server operation -> xajax server side response -> web proxy forword response -> xajax client side show result

到現在為止,小弟在拖放和更新插件內容上都沒有問題,現在的問題只是由於不知道哪個論壇的哪個用戶會用上這個插件,購物網站方面應該怎樣辨別來自不同網域的顧客呢?

小弟見識淺薄,可能未有發現甚麼隱藏問題,希望大大不要見怪。小弟也在xajax官方論壇貼了文,希望也聽聽原作者對跨域Ajax應用的意見。

(由於話題似乎轉移到Ajax跨域應用上,小弟將標題改了一下,希望大大不要見怪)

[ 本帖最后由 mickey9801 于 2005-12-20 13:38 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2005-12-20 14:15 |只看该作者
因为经过代理服务器之后,很多客户的浏览器相关信息都会发生改变.

而如果你的上层允许你这么做,那他提供web services的接口,一切都会非常简单了.

除非他不想你这么操作.

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
7 [报告]
发表于 2005-12-20 16:37 |只看该作者
如果提供了web services接口, 我想LS所说的这个问题还能叫做问题么?

论坛徽章:
0
8 [报告]
发表于 2007-03-29 12:13 |只看该作者
原帖由 HonestQiao 于 2005-12-20 16:37 发表
如果提供了web services接口, 我想LS所说的这个问题还能叫做问题么?


说的对.

论坛徽章:
0
9 [报告]
发表于 2007-03-29 13:11 |只看该作者
不过现在 可以使用 flash socket 来实现

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
10 [报告]
发表于 2007-03-29 15:36 |只看该作者
原帖由 eye_onme 于 2007-3-29 13:11 发表
不过现在 可以使用 flash socket 来实现


flash xmlhttp可以做了。
不过服务器需要先设置好权限。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP