Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清理从url传递到iframe src属性的参数_Javascript_Iframe_Websecurity - Fatal编程技术网

Javascript 清理从url传递到iframe src属性的参数

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上,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 && 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