微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

做jQuery的val()和prop()方法html-escape值?

关于 val()prop()的文档中没有找到任何东西,并且转义。

当用作设定者时,它们是否旨在逃避价值?

解决方法

不是真的。 .val()用于设置表单字段的value属性,因此在这里不需要转义。您将通过DOM设置值,因此不像您通过字符串连接构建HTML。另一方面,.prop()甚至不会与DOM属性进行交互 – 只是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节点。字符串本身没有被转义 – 它只是不被解释为标记。这只是一个字符串,就是这样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐