Django之基于iframe的ajax伪造

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))
posted @ 2018-11-20 21:42  sfencs  阅读(490)  评论(0编辑  收藏  举报