使用他人提供的公共服务时,发现ajax异步请求发不成功,请教他人后,原来是使用了iframe的sandbox属性的缘由。由于iframe常常嵌入第三方服务,若是不加以限制的话,会存在不少安全问题,sandbox就是用来限制第三方嵌入页面操做权限的。
sandbox有不少属性,目前已经研究的属性有:""、 allow-same-origin、allow-top-navigation、 allow-forms、allow-scripts,接下来分别说下每一个属性的做用。ajax
sandbox="allow-top-navigation"
容许更改iframe父页面加载地址,好比iframe里面嵌入一段代码:segmentfault
<a href="https://segmentfault.com/" target="_parent">测试allow-top-navigation</a>
点击就会让父页面重定向到https://segmentfault.com, 若是不设置这个值,会提示以下提示:跨域
以上讲了几个属性值,父页面能够根据iframe嵌入的页面来判断是否须要使用这些操做权限设置;可是若是设置了sandbox属性,就须要保证准确,以避免给第三方页面(ps: 尤为是公司内部信任网页)带来问题。安全
若是之后使用到其余属性,再作补充。cookie