web攻击之跨域方法发布时间:2020/12/17 14:25:52 阅读次数:

  

我们所说的那些跨域方法有哪些呢?


HTML标签


可以跨域加载的资源带有的标签都带有<’script> src属性,不被同源策略所支配。每次点击后都会由web端来发送一次GET请求,然后使用src属性进行资源加载,此时浏览器会限制JavaScript的权限,使其不能把反馈回来的内容进行记录。


常见标签:


 图片1.png


原理:在页面配置在相同主域名的不同子域名下,能够设置domain.document让它们同域。


我们只需要设置document.domain在跨域的两个页面中就可以了。然而修改document.domain的方法只适用于不同子域的框架间的交互,需要载入iframe页面。


Window.name


在javascript中,Window对象表示浏览器中打开的窗口,而name属性可设置或返回存放窗口的名称的一个字符串。


利用window.name的性质,我们可以在iframe中加载一个跨域页面。


这个页面载入之后,让它设置自己的window.name,然后再让它进行当前页面的跳转,跳转到与iframe外的页面同域的页面,此时window.name是不会改变的。


这样,iframe内外就属于同一个域了,且window.name还是跨域的页面所设置的值。


window.postMessage


window.postMessage( targetOrgin,message)所使用的技术核心新引进了html5的特性。


调用postMessage方法的windows对象是其中那个要接受信息的windows对象,该技术的第一个参数message一般指要发送的消息,类属只能是字符串;第二个参数targetOrgin用来限定接收消息的那个windows对象所在的域,还可以使用通配符*在不想限制域的时候。


需要接收消息的windows对象,可是通过监听自身的message时间来获取传过来的消息,消息内容存储在该事件对象的data属性中。


location.hash


location.hash 的方式跨域是子框架具有修改父框架src的hash值,通过这个属性更改hash值、进行数据传递,而且也不会刷新页面。


但对于传递出去的数据而言,其字节数是有限的。