strUntrustedUserLinkIs encodeURI()足够,还是你也应该转义属性?

时间:2014-12-16 22:47:50

标签: javascript encoding escaping

假设我有以下javascript,我将用户链接插入到图像中,然后将其放入div中。

<div id="divString"></div>

<script type="text/javascript">
 var strUntrustedUserLink = '/path/to/image.jpg';
 $('#divString').html('<img src="'+encodeURI(strUntrustedUserLink)+'">');
</script>

仅使用encodeURI()进行转义是否足够?或者我应该使用一个为属性转义的函数(它在Javascript中不能很好地存在,即我只读你必须自己创建)来进一步逃避它,如下所示:

<div id="divString"></div>

<script type="text/javascript">
 var strUntrustedUserLink = '';
 $('#divString').html('<img src="'+strSomeEscapeFunctionForAttributes(encodeURI(strUntrustedUserLink))+'">');
</script>

我认为encodeURI会逃避链接的一些危险字符,但不会考虑链接显示的上下文,即。回显的上下文可以是HTML或元素属性或CSS或......

编辑:发现变量错字,并添加了一些说明

0 个答案:

没有答案