作者rocairforce (拾贰)
看板Ajax
标题[问题] 动态的 function name ??
时间Wed Aug 22 08:51:00 2012
各位版上的神人们您好
我最近遇到个有点棘手的问题,因为一些特殊的需求,我需要把网页上的东西拆成分开的
元件,例如新闻、最新消息...etc
可是又要求同一页面可以安插两个相同的元件,例如同时有两个新闻的元件,不过这两个
新闻的资料来源可能是不同的,到这部分都还没什麽问题,问题是在呈现的部分
第一个新闻元件可能是要用列表的方式,第二个则可能需要是图文方式,我的做法是
写一个function先去捞所有元件的资料,再分别对应到呈现资料的function
问题是我的资料捞出来後是json,用回圈跑时,要怎麽指定到相对应的function
麻烦各位指教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.208.2
1F:→ superpai:棘手在哪里?@@ 08/22 09:03
2F:→ rocairforce:会先有个function用ajax去捞元件的view,然後再有个 08/22 09:04
3F:→ rocairforce:function去捞所有元件的资料,格式是ajax 08/22 09:04
4F:→ rocairforce:因为每个元件的显示方式会写在元件的view那个html档里 08/22 09:05
5F:→ rocairforce:所以我想问的是,要怎麽用回圈动态指定 function name 08/22 09:05
6F:推 s25g5d4:这种行为十分危险 08/22 09:07
7F:→ s25g5d4:很容易被XSS 除非你有配套方案能避免不信任的资料 08/22 09:08
8F:→ rocairforce:不考虑任何攻击的情况下是可能做到的吗? 08/22 09:09
9F:推 s25g5d4:如果你取得该function的名称 可以透过eval实作 08/22 09:10
10F:→ rocairforce:谢谢各位 08/22 09:17
11F:→ s25g5d4:我已经警告过你危险性了 还有效能也会比较差 08/22 09:18
12F:→ s25g5d4:建议你更改整个架构 如果坚持使用eval风险自负 08/22 09:19
13F:→ nenpow:为什麽一定要用eval? 宣告一个functions objects用名字取回 08/22 09:35
14F:→ nenpow:像是 var tmpFunc = funcs['funcA']; 08/22 09:36
15F:→ rocairforce:不知道function会叫什麽 08/22 09:41
17F:推 s25g5d4:我觉得这个也有危险性.. 08/22 09:51
18F:推 Fantasywind:这样不是只会有两种view render 不能写死吗? 08/22 11:58
19F:→ nenpow:不然就指给window像是window.viewFunc = function(){...}; 08/22 12:24
20F:→ nenpow:var tmpFUnc = window['viewFunc'] 08/22 12:25
21F:→ nenpow:不过既然在不同view 为什麽不能用同一个func name? 08/22 12:25
22F:→ nenpow:会需要动态决定funcname的情境应该是所有view共有同一个js 08/22 12:44
23F:→ nenpow:然後所有functions都写在那个js里, 08/22 12:45
24F:→ TonyQ:s25g5d4 你走火入魔了,如果发生 XSS 的话,不是从 JS层去 08/23 12:15
25F:→ TonyQ:影响到的,自订 function 名称本身跟"危险"这件事情没有关联 08/23 12:15
26F:→ TonyQ:会"危险"的是操作跟资料後面的检查有没有确实,有没有被作 08/23 12:16
27F:→ TonyQ:XSS 的空间。以现在的资讯来讲,要判断是不是危险还很难说。 08/23 12:17
28F:→ s25g5d4:我只是提醒而已...就是因为没有足够的资讯 08/23 12:47
29F:→ TonyQ:我是觉得自订函式名称这件事情对XSS的安全性没有任何影响 08/23 22:53
30F:→ TonyQ:然後动态function name 不需要透过 eval 08/23 22:53
31F:→ TonyQ:上面 nenpow 已经说过了 XD 08/23 22:54
32F:→ s25g5d4:恩 我没想到那里去..直觉就想到eval orz 08/23 23:03
33F:→ TonyQ:eval 有安全姓问题只限於被eval 的内容含有使用者自己输入的 08/23 23:12
34F:→ TonyQ:东西,所以这些前提都要讲清楚。不然人家来问问题的,莫名被 08/23 23:13
35F:→ TonyQ:吓跑是有点无辜。XD 08/23 23:13
36F:推 carlcarl:感谢解说 08/24 02:38