首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django debug page XSS漏洞(CVE-2017-12794)分析

Django发布了新版本1.11.5,修复了500页面中可能存在的一个XSS漏洞,这篇文章说明一下该漏洞的原理和复现,和我的一点点评。...我们可以做个简单的测试,在Django命令行下,我们创建一个username为phith0n的用户,然后再次创建一个username为phith0n的用户,则会抛出一个IntegrityError异常:...这是为了方便开发者进行SQL错误的调试,因为Django的模型最终是操作数据库,数据库中具体出现什么错误,是Django无法100%预测的。...0x03 漏洞复现 经过我的测试,我发现在使用Postgres数据库并触发异常的时候,psycopg2会将字段名和字段值全部抛出。...那么,如果字段值中包含我们可控的字符串,又由于0x02中说到的,这个字符串其实就会被设置成__cause__,最后被显示在页面中。

1.6K41

如何在 Django 中测试模型表单

clean user_profile = self.instance.user_profile File "/usr/local/lib/python2.7/dist-packages/django...在测试用例中,没有为 FilterForm 设置模型实例。...为了解决这个问题,可以在测试用例中添加以下代码:filterform = FilterForm()#print filterform.is_valid()form_data = {'keyword':...常见的解决方案涉及遍历并比较两个列表中的每个元素,但我们希望探索更具数学性、高效的方法。解决方案集合交集法:一种常用方法是使用集合的交集运算。我们可以将每个列表的坐标视为一个集合,计算它们的交集。...线性方程法:另一种方法是将列表中的元素视为线段,使用线性方程求解线段相交点。我们可以构造一个线性方程组,其中每个方程代表列表中的一条线段。求解该方程组,可以得到两个线段的交点。

13310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django 1.8 官方文档翻译:6-5-1 Django中的测试

    Django中的测试 自动化测试对于现代web开发者来说,是非常实用的除错工具。...使用Django的测试执行框架和各种各样的工具,你可以模拟请求,插入测试数据,检查你的应用的输出,以及大体上检查你的代码是否做了它应该做的事情。 最好的一点是,它非常简单。...在Django中编写测试的最佳方法是,使用构建于Python标准库的unittest模块。这在编写和运行测试 文档中会详细介绍。...你也可以使用任何其它 Python 的测试框架;Django为整合它们提供了API和工具。这在高级测试话题的使用不同的测试框架 一节中描述。...Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。

    33420

    Django 教程 --- Django中的视图

    Django视图是Django M V T结构的重要参与者之一。视图是用户界面,即您呈现网站时在浏览器中看到的内容。它由HTML / CSS / Javascript和Jinja文件表示。...要检查如何使用Django的MVT(模型,视图,模板)结构制作基本项目,请访问创建项目Django。 视图类型 Django视图分为两大类: 基于功能的视图 基于类的视图 ?...基于功能的视图 基于函数的视图是使用python中的函数编写的,该函数以HttpRequest对象作为参数并返回HttpResponse对象。...Django CRUD(创建,检索,更新,删除)基于功能的视图:- 创建视图–基于函数的视图Django 细节视图–基于函数的视图Django 更新视图–基于函数的视图Django 删除视图–基于函数的视图...在geeks / urls.py中, from django.urls import path # importing views from views..py from .views import

    3K30

    【测试开发技能】Django中验证码的实现

    本篇不会去教大家采取哪种方式去识别验证码,而是给大家介绍一下在django中怎么实现验证码这个功能的。...背景 在实际应用中,很多业务场景如 登录,注册,发送短信验证码 等需要大家输入验证码,其主要目的是强制人机交互来抵御自动化攻击。本篇以注册功能为例,讲解django中是如何实现验证码功能的。...步骤 安装第三方 django-simple-captcha 包 pip isntall django-simple-captcha==0.4.6 在settings.py 文件中的 INSTALLED_APPS...在views.py 文件中的实现 注意在get方法中,我们要将上一步的form表单实例化,传递给前端html 文件 ,看具体的代码实现: ? 在前端html页面中验证码块做如下修改 ?...好了,django中如何实现验证码功能就介绍到这里,有兴趣的同学可以实践下!代码是截图,如需要复制,可联系微信号cctester 一键关注微信公众号,获取更多资讯

    1.5K10

    08.Django基础六之ORM中的锁和事务

    下面的是函数嵌套上下文的例子: from django.db import IntegrityError, transaction @transaction.atomic def viewfunc(request...except IntegrityError: handle_exception() add_children()       这个例子中,即使generate_relationships...尽量不要在atomic代码块中捕获异常 因为当atomic块中的代码执行完的时候,Django会根据代码正常运行来执行相应的提交或者回滚操作。...担心主要集中在DatabaseError和它的子类(如IntegrityError)。如果这种异常真的发生了,事务就会被破坏掉,而Django会在代码运行完后执行回滚操作。...通过Django外部的python脚本来测试一下事务: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE

    2.2K40

    基于django的单元测试

    【知道】认识单元测试 单元测试:测类、方法、函数,测试最小单位 由于django的特殊性,通过接口测单元,代码逻辑都放在类视图中 单元测试好处 消灭低级错误 快速定位bug(有些分支走不到,通过单元测试提前测出问题...【掌握】编写和运行django的单元测试 django环境 数据库编码 数据库用户权限(需要建临时数据库、删临时数据库) 每个应用,自带tests.py 类,继承django.test.TestCase...前置、后置方法 test开头的测试用例 集成在django的项目文件里,更多是开发人员写django自动的测试 运行 进入manage.py目录 命令 python manage.py test 指定目录下的某个文件...TestCase类 3.1【知道】前后置方法运行特点 django.test.TestCase类主要由前、后置处理方法 和test开头的方法组成 test开头的方法 是编写了测试逻辑的用例 setUp方法...类方法(名字固定)在调用整个类测试方法后执行一次 from django.test import TestCase ​ class MyTest(TestCase): @classmethod

    82230

    基于django的单元测试

    【知道】认识单元测试 单元测试:测类、方法、函数,测试最小单位 由于django的特殊性,通过接口测单元,代码逻辑都放在类视图中 单元测试好处 消灭低级错误 快速定位bug(有些分支走不到,通过单元测试提前测出问题...【掌握】编写和运行django的单元测试 django环境 数据库编码 数据库用户权限(需要建临时数据库、删临时数据库) 每个应用,自带tests.py 类,继承django.test.TestCase...前置、后置方法 test开头的测试用例 集成在django的项目文件里,更多是开发人员写django自动的测试 运行 进入manage.py目录 命令 python manage.py test 指定目录下的某个文件...TestCase类 3.1【知道】前后置方法运行特点 django.test.TestCase类主要由前、后置处理方法 和test开头的方法组成 test开头的方法 是编写了测试逻辑的用例 setUp方法...类方法(名字固定)在调用整个类测试方法后执行一次 from django.test import TestCase ​ class MyTest(TestCase): @classmethod

    72200

    Django中的QuerySet

    一、QuerySet   查询集,类似一个列表,包含了满足查询条件的所有项。QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只有你查询的时候才真正的操作数据库。...意味着QuerySet是惰性执行的----即创建查询集不会带来任何的数据库访问,直到查询集需要求值的时候,Django才会真正运行这个查询。...,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列... distinct(): 从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。... count(): 返回数据库中匹配查询(QuerySet)的对象数量。

    1.4K32

    python测试开发django-6.模板中include使用

    前言 当我们打开一个网站的时候,在打开不同的页面时候,会发现每个页面的顶部、底部内容都差不多,这样就可以把这些公共的部分,单独抽出来。...类似于python里面的函数,把公共部分写成函数,然后调用就行了,这样就能实现代码的复用。django里面也有类似的功能,用include可以实现。...《玩转Django2.0》是最近出版的,语法比较新,基础部分很详细,初学者值得入手! 公共内容 如下图所示,网站的每个页面都有顶部导航,body正文,底部导航这三块内容 ?...def page1(request): return render(request, 'page1.html') urls.py添加访问路径 from django.conf.urls import...url from django.urls import re_path, path from hello import views urlpatterns = [ path("page1/",

    81930

    Django 中 cookie的使用

    Cookie是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上。因为Http请求是无状态的,通过读取cookie的记录,服务器或者客户端可以维持会话中的状态。...比如一个常见的应用场景就是登录状态。Django里面,对cookie的读取和设置很简单。...Cookie本身的格式类似字典,因此可以通过request的key或者get获取;然后他的设置则是通过response对象的set_cookie设定; 如果要取消cookie,把过期时间设置为当前时间就行了...,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问 domain=None, Cookie生效的域名 secure=False, https传输 httponly=False 只能...type="password" name="pwd" placeholder="密码" /> 例2: 现实生活中,

    1.7K10

    Django中的关系映射

    在关系型数据库中,通常不会把所有数据都放在同一张表中,不易于扩展。...级联删除的特殊字段 models.CASCADE:Django模拟SQL约束ON DELETE CASCADE,并删除包含ForeignKey的对象 注意该CASCADE会有限查找是否有关联数据,先删除管理数据...models.PROTECT:抛出ProtectedError以阻止被引用对象的删除 SET_NULL:设置ForeignKey为Null,需要指定null=True from django.db import...') 反向查询 没有外键属性的一方,可以调用反向属性查询到关联的另一方 反向关联的属性为实例对象.引用类名(小写) 当反向引用不存在的时候,则会触发异常 当UserId类中定义了外键约束...MySQL中创建多对多需要以来第三张表来完成 Django中无需手动创建,Django自动完成 语法:在关联的两个类中的任意一个类中models.ManyToManyField(MyModel

    1.7K20
    领券