GVKun编程网logo

Django之基于iframe的ajax伪造(django iframe)

10

本篇文章给大家谈谈Django之基于iframe的ajax伪造,以及djangoiframe的知识点,同时本文还将给你拓展ajax--iframe模拟ajax文件上传效果、AjaxControlToo

本篇文章给大家谈谈Django之基于iframe的ajax伪造,以及django iframe的知识点,同时本文还将给你拓展ajax--iframe模拟ajax文件上传效果、AjaxControlTookit中的Ajax以及JQuery中的Ajax与iframe的兼容性问题、ajax伪造、Django + Django REST framework步骤总结等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Django之基于iframe的ajax伪造(django iframe)

Django之基于iframe的ajax伪造(django iframe)

<divdata-md-url="https://i.cnblogs.com/EditPosts.aspx?opt=1"&gt;
<blockquotehttps://www.jb51.cc/tag/dddd/" target="_blank">dddddd; padding: 0px 1em; color: #777777; quotes: none;">
<p>IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架

获取更新,也就是局部刷新。

display: block; overflow: auto; overflow-x: auto; color: #333333; background: #f8f8f8; text-size-adjust: none;">
normal;"><normal;">form = = = >
        normal;"><normal;">iframe =display: none"  = = = =>normal;">normal;">iframe>
        normal;"><normal;">input = = />
        normal;"><normal;">input = = />
        normal;"><normal;">input = />
    {% csrf_token %}
normal;">normal;">form>
函数为

display: block; overflow: auto; overflow-x: auto; color: #333333; background: #f8f8f8; text-size-adjust: none;">
 arams">() {
     str_json = $().contents().find().text();   内容
      obj = .parse(str_json);
   .log(obj.message)
}
函数:

display: block; overflow: auto; overflow-x: auto; color: #333333; background: #f8f8f8; text-size-adjust: none;">
 arams">(req):
     req.method == :
         render(req,)
     req.method==:
        ret = {: }
         HttpResponse(json.dumps(ret))
imsI+PC9wPjxwPmFqYXjnmoTnkIblv7XmmK/kuI3ov5vooYzmtY/op4jlmajpobXpnaLl iLfmlrDnmoTkv6Hmga/ojrflj5bmm7TmlrDvvIzkuZ/lsLHmmK/lsYDpg6jliLfmlrDjgII8L3A+ PHA+6YKj5LmI5Lyq6YCgYWpheOeahOaWueW8j+WNs+S4uuWwhuWQkeacjeWKoeerr+WPkemAgeiv t+axgui/lOWbnueahOaVsOaNrui/lOWbnuWIsGlmcmFtZeS4re+8jOWGjeS9v+eUqGpz5LuOaWZy YW1l5Lit55qE5paH5qGj5Lit5Y+W5Ye65pWw5o2u5L2/55So44CCPC9wPjxwPuWFt+S9k+aWueW8 j+eugOWNleS4vuS+i++8mjwvcD48cD5gYGBodG1sPC9wPjxwcmU+Jmx0O2Zvcm0gYWN0aW9uPSIv bG9naW4vIiBtZXRob2Q9InBvc3QiIHRhcmdldD0iaWZyYW1lXzEiICZndDs8YnI+ICAgICAgICAm bHQ7aWZyYW1lIHN0eWxlPSJkaXNwbGF5OiBub25lIiAgaWQ9ImlmcmFtZV8xIiBuYW1lPSJpZnJh bWVfMSIgc3JjPSIiIG9ubG9hZD0ibG9hZElmcmFtZSgpOyImZ3Q7Jmx0Oy9pZnJhbWUmZ3Q7PGJy PiAgICAgICAgJmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXIiIC8mZ3Q7PGJyPiAgICAg ICAgJmx0O2lucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwd2QiIC8mZ3Q7PGJyPiAgICAgICAg Jmx0O2lucHV0IHR5cGU9InN1Ym1pdCIgLyZndDs8YnI+ICAgIHslIGNzcmZfdG9rZW4gJX08YnI+ Jmx0Oy9mb3JtJmd0OzwvcHJlPjxwPmBgYDwvcD48cD5vbmxvYWTlh73mlbDkuLo8L3A+PHA+YGBg amF2YXNjcmlwdDwvcD48cHJlPmZ1bmN0aW9uIGxvYWRJZnJhbWUoKSB7PGJyPiAgICB2YXIgc3Ry X2pzb24gPSAkKCcjaWZyYW1lXzEnKS5jb250ZW50cygpLmZpbmQoJ2JvZHknKS50ZXh0KCk7ICAg Ly/mib7liLBpZnJhbWXkuK3nmoTlhoXlrrk8YnI+ICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZShz dHJfanNvbik7PGJyPuOAgOOAgOOAgGNvbnNvbGUubG9nKG9iai5tZXNzYWdlKTxicj59PC9wcmU+ PHA+YGBgPC9wPjxwPnB5dGhvbuinhuWbvuWHveaVsO+8mjwvcD48cD5gYGBweXRob248L3A+PHBy ZT5kZWYgbG9naW4ocmVxKTo8YnI+ICAgIGlmIHJlcS5tZXRob2QgPT0gJ0dFVCc6PGJyPiAgICAg ICAgcmV0dXJuIHJlbmRlcihyZXEsJ2FwcDEvbG9naW4uaHRtbCcpPGJyPiAgICBpZiByZXEubWV0 aG9kPT0nUE9TVCc6PGJyPiAgICAgICAgcmV0ID0geydtZXNzYWdlJzogJ2FqYXjkvKrpgKDmiJDl ip8nfTxicj4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2UoanNvbi5kdW1wcyhyZXQpKTwvcHJl PjxwPmBgYDwvcD4=">​

ajax--iframe模拟ajax文件上传效果

ajax--iframe模拟ajax文件上传效果

js无权读取本地的文件,so不能上传文件但是
有这几种方法
1 iframe伪装 jquery-uploaded-file
2 swf插件  (这个不讲,是一个单独的软件
3 html5

iframe模拟ajax文件上传效果
1捕捉表单提交动作
2创建iframe
3target修改指向 iframe
4去掉iframe


<h1></h1>
<!-- enctype 属性可能的值:
application/x-www-form-urlencoded
multipart/form-data
text/plain
规定在发送表单数据之前如何对其进行编码。

target
规定在何处打开 action URL。(这边是iframe里) 
onsubmit 点击运行js的方法通过才到`action

文件上传说没上传  enctype没写-->
	
登录后复制

js部分(用了jquery)  创建iframe 

<script type="text/javascript" src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script><script type="text/javascript">
	function upfile(){
		// 创建iframe 和属性name
		var ifname = &#39;up&#39;+Math.random();
		$(&#39;<iframe name="&#39; + ifname +&#39;">&#39;).appendTo($(&#39;body&#39;));
		// form表单加入target属性,form点击在iframe打开
		$(&#39;form:first&#39;).attr(&#39;target&#39;,ifname);

	}


	</script>
登录后复制
php部分  error为0就代表文件上传成功 在之前写的h1标签里出现信息

<?php if(empty($_FILES)){
	exit(&#39;no file&#39;);
}

$error = $_FILES[&#39;pic&#39;][&#39;error&#39;] == 0 ? &#39;上传成功&#39;:&#39;上传失败&#39;;
echo "<script> parent.document.getElementsByTagName(''h1'')[0].innerHTML = ''$error''";

?&gt;
登录后复制

ajax--iframe模拟ajax文件上传效果

以上就介绍了ajax--iframe模拟ajax文件上传效果,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

AjaxControlTookit中的Ajax以及JQuery中的Ajax与iframe的兼容性问题

AjaxControlTookit中的Ajax以及JQuery中的Ajax与iframe的兼容性问题

总结

以上是小编为你收集整理的AjaxControlTookit中的Ajax以及JQuery中的Ajax与iframe的兼容性问题全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

ajax伪造

ajax伪造

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>伪造AJAX</title>
    </head>
    <body>
        <div>
            <p>请输入要加载的地址:<span id="currentTime"></span></p>
            <p>
                <input id="url" type="text" />
                <input type="button" value="提交" onclick="LoadPage();">
            </p>
        </div>
        <div>
            <h3>加载页面位置:</h3>
            <iframe id="iframePosition"></iframe>
        </div>
        <script type="text/javascript">
            window.onload= function(){
                var myDate = new Date();
                document.getElementById(''currentTime'').innerText = myDate.getTime();
 
            };
            function LoadPage(){
                var targetUrl =  document.getElementById(''url'').value;
                document.getElementById("iframePosition").src = targetUrl;
            }
        </script>
    </body>
</html>

Django + Django REST framework步骤总结

Django + Django REST framework步骤总结

主要记录一下Django + Django REST framework的步骤总结,第一次鼓捣后台和python,代码写得可能有点乱
此demo项目的部署记录点击这里

一、创建配置项目

项目初始配置

创建项目

$django-admin startproject mysite

安装数据库驱动

$pip install pymysql

更改数据库配置(tips:这里为了方便就直接用root了)

DATABASES = {
    ''default'': {
        ''ENGINE'': ''django.db.backends.mysql'',    #数据库引擎
        ''NAME'': ''blog_db'',  #数据库名
        ''USER'': ''root'',   #账户名
        ''PASSWORD'': ''password'', #密码
        ''HOST'': ''localhost'', #主机
        ''PORT'': ''3306'', #端口
    }
}

接着在_init_.py添加如下代码

import pymysql
pymysql.install_as_MySQLdb()

设置settings.py中TIME_ZONE改为自己的时区

TIME_ZONE = ''Asia/Shanghai''

MySQL中创建blog_db数据库

CREATE DATABASE `blog_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

执行数据库迁移命令

$python manage.py makemigrations
$python manage.py migrate

这时可在MySQL下看见创建的表

clipboard.png

创建应用

$python manage.py startapp blogApp

models.py中定义模型

class Blog(models.Model):
    header = models.CharField(max_length=50)
    content = models.TextField()
    cover = models.TextField()
    markdownContent = models.TextField()#保存markdown语法内容
    time = models.CharField(max_length=50)
    readTimes = models.IntegerField()
    def __str__(self):
        return self.header

激活模型

在settings.py的INSTALLED_APPS中添加设置

INSTALLED_APPS = [
    ''django.contrib.admin'',
    ''django.contrib.auth'',
    ''django.contrib.contenttypes'',
    ''django.contrib.sessions'',
    ''django.contrib.messages'',
    ''django.contrib.staticfiles'',
    ''blogApp.apps.BlogappConfig'' #这里,具体apps.后是什么看对应app下的apps.py
]

接着运行命令,检测模型文件的修改,并把修改的部分储存为一次迁移(注意这里还没有修改)

$python manage.py makemigrations blogApp

执行迁移命令

$python manage.py migrate

MySQL下可以看见新建的表

clipboard.png

二、配置管理员页面

先创建管理员账号

$python manage.py createsuperuser

在blogApp/admin.py下向管理员页面添加应用

from django.contrib import admin
from .models import Blog
# Register your models here.
admin.site.register(Blog)

到这里,启动虚拟服务器,到http://127.0.0.1:8000/admin/下输入账号密码就可以看到对应管理界面

clipboard.png

三、使用Django REST framework

主要步骤如下:
安装并配置restframework—>serializer配置—>编写views.py—>URL配置

安装并配置restframework

安装:

pip install djangorestframework

配置:
settings.py的INSTALLED_APPS中添加:

NSTALLED_APPS = [
    ...
    ''rest_framework'',
]

serializer配置

blogApp下创建serializers.py,编写代码

from rest_framework import serializers
from django.contrib.auth.models import User
from .models import Blog

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = (''username'', ''password'')

class BlogSerializer(serializers.ModelSerializer):
    class Meta:
        model = Blog
        fields = (''header'', ''content'', ''cover'', ''markdownContent'', ''time'', ''readTimes'')

views.py编写

这里代码比较多就直接后面的GitHub地址吧,不过是第一次接触python和后台方面的东西,没有试过serializer,代码写得比较差,这篇blog主要是以记录步骤为主

URL配置

blogApp下创建urls.py编写URL

from django.urls import re_path
from blogApp import views

urlpatterns = [
    re_path(r''^test_view/$'', views.test_view),
    re_path(r''^login_view/$'', views.login_view),
    .....
]

mysite/urls.py配置

from django.contrib import admin
from django.urls import path, re_path, include

urlpatterns = [
    path(''admin/'', admin.site.urls),
    re_path(r''^'', include(''blogApp.urls'')),#映射blogApp的urls.py
]

至此,完成,启动本地服务器测试吧,test_view是我自己编写的测试view

clipboard.png

总结

完整项目代码GitHub地址如下,再说明下,第一次使用python和django,views.py中的代码写得较差,这篇blog主要是记录步骤,不然实在太容易忘记啦!
https://github.com/Joeoeoe/my...

我们今天的关于Django之基于iframe的ajax伪造django iframe的分享就到这里,谢谢您的阅读,如果想了解更多关于ajax--iframe模拟ajax文件上传效果、AjaxControlTookit中的Ajax以及JQuery中的Ajax与iframe的兼容性问题、ajax伪造、Django + Django REST framework步骤总结的相关信息,可以在本站进行搜索。

本文标签:

上一篇Django 1.6.0 正式发布,大幅改进事务处理(django orm 事务)

下一篇安装DEDECMS源码时常见的问题以及对应的办法总结(dedecms安装步骤)