Ajax 板


LINE

※ [本文转录自 Web_Design 看板 #1EBlbxSa ] 作者: TonyQ (沉默是金。) 看板: Web_Design 标题: Re: [问题] 一些javascript问题想请教 时间: Wed Jul 27 01:29:29 2011 ※ 引述《Derix (PalaPala)》之铭言: : 在下为js新手,想请问各位前辈些许问题... : 1.是否可能使用js开启新页面後,接着自动在该新页面执行指定的js函式? : 如:在A页面的网址执行javascript:window.open('B.html');後,接着自动在B页面执 : 行其他script如alert('HI');呢(并非在B页面写入alert函式)? 没有经过使用者自己有任何行为, 或者该目标页面有任何行为帮助的话,基本上是不可能的。 举几个该目标页面没有良好设计的隐忧: 像是新页面有倚赖网址参数去作一些行为, 因此从网址被注入攻击,比方说 iframe src 是用 param 带入的这种笨行为, 或者新页面内容根本就有已经放好得内鬼。 : 2.在A页面执行,从B网域得到的xmlhttprequest.responsetext的script内容,因为same : origin policy的关系,不能直接eval使用,那是否有其他方法可以间接执行该script : 呢? 1.这里有几件事情要讲清楚 a.ajax 在 cross domain 时, 被 request 的目标页面的确会收到,也会处理给你回应。 b.但是这个回应browser会挡掉把他当空气,所以不只是不能直接eval使用, 应该是连 xmlhttprequest.responsetext 你都会拿不到。 c.目前要解决跨domain 处理的方式, getJSONP 是唯一解,他不是走 ajax 而是走 script tag, 而且使用上很有局限性。(限定用get) : 3.承问题2,如果有的话,是否就代表该same origin policy事实上是不够完备的? 请注意你谈论的这两件事情是A网站网站开发者设计的, 而且 B 网站如果A网站不信任他的话,根本不应该试着引入B网站的script。 same origin policy 事实上是一种防止 B 网站被A网站任意存取的机制, 而 JSONP 的实做方案,则是B网站提供其愿意被存取的部份给A网站存取, 要讨论完备这件事情,要先讨论目的及其意义。 不然一个网站可以引入外界的 script tag , 这样某个角度上一样是 violate same origin policy 。 : 4.在HTML里,嵌入<script src = "http://xxx.xx/A.js">的动作可以跨网域取得A.js的 : script执行,那为何还需要same origin policy来防止XSS的攻击呢? : 感谢指点迷津的各位大大们,如果小的观念错误的话,还希望不吝给小的指导! : 谢谢Orz 1.这样限定 javascript 的格式,而大幅的限制你获取资料的方式 不代表任意html页面资料都可以透过ajax去要求跟存取。 这方面其实要多参考 user script ,你就会知道两者有多大的差别, 巧妇难为无米之炊,一般而言我们要存取外部网站,那些资料是重点。 如果你要对一篇文章作增删的动作,你没有先从页面中拿到其连结或id, 你根本无从下手起,所以有这个限制是差很多的。 2.这样就把事情限定在"get" 的层级里, 一是可以挡掉get所不支援的大量资料存取, 另一方面是只要website 有确实把 get 跟post分清楚,就不会有问题。 XSS 目前的热门危险区域还是在於使用者可以写入 script 位置, 比方说使用者自由编辑区块或者iframe url是由user 提供的。 但凭良心讲 XSS 防堵上非常困难,目前最有效的 sub domain 方案, 实做起来非常累,而且又阻绝了内容本身跟外面的连结方式,会造成很多限制。 这也是为什麽目前各大 blog 平台,大致上都是采用 script 白名单的方式, 或者直接不允许使用者自行写入 script tag 的作法。 -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 198.203.175.175 ※ 编辑: TonyQ 来自: 198.203.175.175 (07/27 01:30) ※ 编辑: TonyQ 来自: 198.203.175.175 (07/27 01:31) ※ 编辑: TonyQ 来自: 198.203.175.175 (07/27 01:32)
1F:→ grence:oh..我回了一样的问题,只是你人比较好XD 07/27 02:09
-- 我:一半的日子让你说,我听你说你的所有______________________________________ ______________________________________一半的日子我想说,对你说过去的所有:我 _______________________________________________________ 在讨论中妥善扮演兼具聆听与分享的角色,是我们一生的课题。 _______________________________________________________ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 198.203.175.175
2F:→ Derix:感谢东尼大热心转来回覆,容小的再消化消化一下QQ 07/27 02:40
3F:推 gs1458:原来跨站只有jsonp能办到而已阿O.O 07/27 09:42
4F:推 poopoo888888:好文推 07/28 10:02
5F:推 lovelycateye:推一下 07/28 10:29
6F:→ TonyQ:server side proxy法我是觉得那有点作弊 而且跟真正的跨站有 07/29 00:20
7F:→ TonyQ:一点区别,所以我没有提近来,在某些状况下server side作一 07/29 00:21
8F:→ TonyQ:个 proxy 页面(由server去跟远方要html/json)再给ajax捞 07/29 00:21
9F:→ TonyQ:也是一种可行的作法。 07/29 00:21
10F:→ TonyQ:只是这样就没办法利用使用者的session状态 会复杂很多 07/29 00:21
※ 编辑: TonyQ 来自: 198.203.175.175 (07/29 00:23)
11F:推 senser:好文推 07/29 02:35
12F:→ senser:对 跨网域的问题 如果不用jsonp 通常就是用proxy 07/29 02:39
13F:→ senser:而且这是很常见的方式 可以看看yahoo这篇 讲的挺清楚 07/29 02:40
15F:推 senser:Tony大有提到 request实际上是会处理的 是browser的问题 07/29 02:44
16F:→ senser:除了proxy 外可以看一下他的 others solutions 07/29 02:48
17F:→ senser:里面也有大家提到的jsonp和<script> 方式 07/29 02:50
18F:推 senser:事实上大家常用的api如google 都会提供跨网域的web service 07/29 02:56
19F:→ senser:你的request 里加上output=json跟callback 就会当js处理 07/29 02:57







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP