我不能找到文档中任何事情val()
和prop()
和逃逸。
他们是打算作为制定者使用时逃跑值?
我不能找到文档中任何事情val()
和prop()
和逃逸。
他们是打算作为制定者使用时逃跑值?
并不是的。 .val()
用来设置窗体字段的value
属性,所以逃避是不是真的有必要存在。 你会被设置通过DOM的价值,所以它不喜欢你通过字符串连接构建HTML。 .prop()
而另一方面,甚至不带属性的所有交互-只是DOM属性,所以你不需要工作有关HTML逃脱他们要么。
编辑:澄清起见,我假定你问这个是因为你担心.prop()
或.val()
作为XSS攻击向量(或只是拍摄自己的脚的机会) ? 如果是这样的话,你需要记住,通过设置DOM属性和属性时,您所设置的值基本上沙盒给您进行交互的属性或值。 例如,给定以下内容:
<div id="foo"></div>
而你试图滥用的属性值,如:
$('#foo').attr('rel', '"></div><script>alert("bang");</script><div rel="');
你可能会担心,这将导致类似如下:
<div id="foo" rel=""></div><script>alert("bang");</script><div rel=""></div>
这永远不会发生,但。 事实上,你将有一个rel
与邪恶的前瞻性字符串作为其值的属性,但没有新的标记或DOM节点将被创建。 字符串本身是没有逃脱 - 它只是简单地不解释为标记。 这只是一个字符串,就是这样。
他们预计字符串,而不是HTML。 你不需要逃避什么。
自己不做任何方法要么逃跑,他们也使用底层的DOM API在处理字符串,而不是HTML。
一旦你开始使用JavaScript你几乎不必担心HTML语法,用打交道时,我能想到的唯一的例外是innerHTML
财产与(DE)明确处理连载的DOM,并从HTML。
我只想补充一点,你有内插入值时的副作用,可导致代码执行属性的后顾之忧。 这些包括可用于XSS图像src属性。 请参阅: https://www.owasp.org/index.php/Script_in_IMG_tags