Django之基於iframe的ajax偽造

sfencs發表於2018-11-20

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))

相關文章