我有一个带有超链接的页面,下面是html代码。
<a id="More Details" name="More Details" href="javascript:processing_win0(0,3000); void window.open(method1('xyz.com?param1=%27+alert(123)+%27),'','');" tabindex="1">More Details</a>
在上面的href中,尽管“param1”被正确编码,但浏览器在点击超链接“更多细节”时会弹出一个警告弹出窗口。
这个html元素有什么问题?
编码不正确。 param1
位于xyz网址内,但JavaScript代码也位于a
标记的href网址中。因此,需要两个级别的编码,一个用于内部URL,一个用于外部URL。
当为内部网址编码时,'
符号变为%27
,然后为另一个编码为%2527
。
这可以通过不将这么多代码放入href
属性来解决,而是将其放入JavaScript文件中的另一个函数中。