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