欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Django之基于iframe的ajax伪造

程序员文章站 2024-01-18 15:14:10
IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架 ajax的理念是不进行浏览器页面刷新的信息获取更新,也就是局部刷新。 那么伪造ajax的方式即为将向服务端发送请求返回的数据返回到iframe中,再使用js从iframe中 ......

iframe是html标签,作用是文档中的文档,或者浮动的框架(frame)。iframe元素会创建包含另外一个文档的内联框架

ajax的理念是不进行浏览器页面刷新的信息获取更新,也就是局部刷新。

那么伪造ajax的方式即为将向服务端发送请求返回的数据返回到iframe中,再使用js从iframe中的文档中取出数据使用。

具体方式简单举例:

<form action="/login/" method="post" target="iframe_1" >
        <iframe style="display: none"  id="iframe_1" name="iframe_1" src="" onload="loadiframe();"></iframe>
        <input type="text" name="user" />
        <input type="password" name="pwd" />
        <input type="submit" />
    {% csrf_token %}
</form>

onload函数为

function loadiframe() {
    var str_json = $('#iframe_1').contents().find('body').text();   //找到iframe中的内容
     var obj = json.parse(str_json);
   console.log(obj.message)
}

python视图函数:

def login(req):
    if req.method == 'get':
        return render(req,'app1/login.html')
    if req.method=='post':
        ret = {'message': 'ajax伪造成功'}
        return httpresponse(json.dumps(ret))