Javascript 清理从url传递到iframe src属性的参数
在domain-one.com上,iframe元素通过javascript编写,代码如下。 该iframe的src属性url需要接收提供给domain-one.com的url参数 e、 g。Javascript 清理从url传递到iframe src属性的参数,javascript,iframe,websecurity,Javascript,Iframe,Websecurity,在domain-one.com上,iframe元素通过javascript编写,代码如下。 该iframe的src属性url需要接收提供给domain-one.com的url参数 e、 g。 domain one.com?par1=value1&par2=value2 <script type="text/javascript"> var params = window.location.search.substring(1); if (params &&
domain one.com?par1=value1&par2=value2
<script type="text/javascript">
var params = window.location.search.substring(1);
if (params && params.length > 0) {
document.write('<iframe src="https://example.com/page?col=2&' + params + '"></iframe>');
}
else {
document.write('<iframe src="https://example.com/page"></iframe>');
}
</script>
var params=window.location.search.substring(1);
如果(params&¶ms.length>0){
文件。写(“”);
}
否则{
文件。写(“”);
}
使用此代码,可以向domain-one.com提供任意数量的参数和任意值。
这感觉不太好
将风险降至最低的最佳做法是什么?这需要转义还是编码?
使用上述代码可以在客户端执行哪些漏洞
提前感谢
var uri=“example?with params=?;
然后var res=encodeURI(uri);
是我要做的。最大的问题可能是您正在编写一个HTML字符串,而不是使用.src
设置属性,但即使如此,括号还是被转义的,因此,例如使用?
将导致。search
是?%3C/iframe%3E
。对于这种特殊情况,它可能是安全的,但它是安全的直到丑陋,最好改为设置iframe的src