做jQuery的VAL()和道具()方法HTML转义值?(Do jQuery's val()

2019-07-29 10:12发布

我不能找到文档中任何事情val()prop()和逃逸。

他们是打算作为制定者使用时逃跑值?

Answer 1:

并不是的。 .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节点将被创建。 字符串本身是没有逃脱 - 它只是简单地不解释为标记。 这只是一个字符串,就是这样。



Answer 2:

他们预计字符串,而不是HTML。 你不需要逃避什么。

自己不做任何方法要么逃跑,他们也使用底层的DOM API在处理字符串,而不是HTML。

一旦你开始使用JavaScript你几乎不必担心HTML语法,用打交道时,我能想到的唯一的例外是innerHTML财产与(DE)明确处理连载的DOM,并从HTML。



Answer 3:

我只想补充一点,你有内插入值时的副作用,可导致代码执行属性的后顾之忧。 这些包括可用于XSS图像src属性。 请参阅: https://www.owasp.org/index.php/Scr​​ipt_in_IMG_tags



文章来源: Do jQuery's val() and prop() methods html-escape values?