2012-08-29 77 views

回答

5

一个非常重要的区别是$重载了几个含义,因此在与用户定义的字符串一起使用时易受攻击,而find则不是。

E.g。

$('.items .'+location.hash.substr(1)) // very bad idea 
$('.items').find('.'+location.hash.substr(1)) // this is OK 
+1

这很有趣。你能否详细说明这个漏洞,也许有一个例子是可能的?我们在代码中多次使用第一种语法,我会对这些漏洞感兴趣。 – Nope

+1

+1 @FrançoisWahl。在风格上,我更喜欢做'$('。'+ location.hash.substr(1),'.items')'但是无论如何,我很难想象存在哪种漏洞 – BLSully

+3

http: //jsfiddle.net/DF9w2/ – Tgr