`
daigong
  • 浏览: 116346 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Django,解决403 Forbidden的方法

阅读更多
学习Django,添加一个add.py,出现403 forbidden错误
写道
Forbidden (403)
CSRF verification failed. Request aborted.

Help
Reason given for failure:
CSRF token missing or incorrect.


解决方法:

在mysite文件夹下,修改settings.py,添加一行 'django.middleware.csrf.CsrfResponseMiddleware', 即可解决问题.

Python代码
<SPAN style="COLOR: #ff0000">...</SPAN>  
 
MIDDLEWARE_CLASSES = (  
    'django.middleware.common.CommonMiddleware',  
    'django.contrib.sessions.middleware.SessionMiddleware',  
    'django.middleware.csrf.CsrfViewMiddleware',  
    'django.middleware.csrf.CsrfResponseMiddleware',  
    'django.contrib.auth.middleware.AuthenticationMiddleware',  
    'django.contrib.messages.middleware.MessageMiddleware',  
)  
 
...

...

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.csrf.CsrfResponseMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

... add.py

Python代码
from django.http import HttpResponse  
 
text = """<form method="post" action="/add/"> 
    <input type="text" name="a" value="%d"> + <input type="text" name="b" value="%d"> 
    <input type="submit" value="="> <input type="text" value="%d"> 
</form>""" 
 
def index(request):  
    if request.POST.has_key('a'):  
        a = int(request.POST['a'])  
        b = int(request.POST['b'])  
    else:  
        a = 0 
        b = 0 
    return HttpResponse(text % (a, b, a + b))
分享到:
评论
1 楼 feng88724 2012-02-14  
这是为什么呢?

相关推荐

    Django解决Ajax中post提交数据403的代码

    通过以上步骤,你应该能够成功解决Django Ajax POST请求中的403 Forbidden错误。理解并正确使用CSRF保护是确保Web应用安全的重要一环。在实际开发中,应根据项目需求和安全策略灵活应用这些解决方案。

    django在接受post请求时显示403forbidden实例解析

    在Django框架中,当你尝试发送一个POST请求到服务器时,如果遇到403 Forbidden错误,这通常意味着请求被拒绝,因为Django的安全机制没有找到有效的CSRF(跨站请求伪造,Cross-Site Request Forgery)令牌。...

    django中CSRF的问题及解决

    当请求中未找到CSRF令牌时,会出现“Forbidden (403)”错误,具体提示为“CSRF verification failed. Request aborted”。 - **解决方案**: 1. **确保视图函数使用`RequestContext`**:在渲染模板时,应使用`...

    django的403/404/500错误自定义页面的配置方式

    本文将详细介绍如何在Django框架中自定义403 Forbidden、404 Not Found 和 500 Internal Server Error 的错误页面。 #### 1. 创建HTML错误页 首先,你需要为每种错误类型创建对应的HTML文件。这些文件通常放置在...

    django使用ajax post数据出现403错误如何解决

    本文通过两种方法给大家介绍在django中,使用jquery ajax post数据,会出现403的错误,具体内容请看下文。 方法一: 如果用jQuery来处理ajax的话,Django直接送了一段解决问题的代码。把它放在一个独立的js文件中,...

    DJANGOPOST提交问题解决2.pdf

    在使用Django框架开发Web应用时,可能会遇到一个常见的问题,即在尝试通过POST方法提交表单时,收到“Forbidden (403) CSRF verification failed. Request aborted.”的错误。这个错误是由于Django的跨站请求伪造...

    django主动抛出403异常的方法详解

    Django提供了内置的`PermissionDenied`异常类,可以用来抛出403 Forbidden错误。当你检测到用户没有足够的权限执行某项操作时,可以使用这个异常。例如,以下代码会抛出403异常: ```python from django.core....

    Django框架.md

    - 403 Forbidden:服务器理解请求但拒绝执行。 - 404 Not Found:请求的资源不存在。 - **5xx**:服务器错误状态码,表示服务器在处理请求时出现错误。 ### URL 构造 URL(Uniform Resource Locator)是互联网上...

    django中使用jquery ajax post数据出现403错误的解决办法(两种方法)

    在完成以上两种方法中任一种之后,jQuery AJAX POST请求应该能够成功通过Django的CSRF验证,从而解决403错误的问题。当然,还可以有其他方法来解决这个问题,例如通过Django模板在表单中自动包含CSRF令牌等。但上述...

    Django跨域请求CSRF的方法示例

    如果不一致,则为CSRF攻击,服务器将返回403 Forbidden错误。 此外,为了加强安全性,Django还要求所有通过AJAX发起的POST请求在HTTP头部信息中添加一个名为X-CSRFTOKEN的header,其值为cookie中的csrftoken字段的...

    Django限制API访问频率常用方法解析

    - `block=True`:设置为True表示当超出限制时,直接返回403 Forbidden错误,阻止请求。默认为False,超出限制时会注释掉请求,但不会阻止。 `django-ratelimit`插件的灵活性在于可以自定义限速规则,根据不同的业务...

    PyPI 官网下载 | django-extra-exceptions-1.0.0.tar.gz

    "django-extra-exceptions"扩展了Django的异常体系,提供了一些新的异常类,如`Http404NotAcceptable`(HTTP 406 Not Acceptable)、`PermissionDenied403`(HTTP 403 Forbidden)、`InvalidToken`(用于处理令牌...

    基于django的RBAC权限管理控制模块

    如果用户无权访问,可以返回403 Forbidden响应。 4. **后台(Admin)**: Django的内置后台可以扩展以支持角色和权限的管理。管理员可以创建、修改角色,分配权限,并将角色分配给用户。 5. **文档(readme.md)**:...

    PyPI 官网下载 | django-iprestrict-1.0.0.tar.gz

    - **错误处理**:当请求的IP不在允许列表内,`django-iprestrict`会返回HTTP 403 Forbidden响应。 4. **版本1.0.0** 版本号1.0.0通常表示软件已经达到了稳定的初始状态,具有完整的功能集并经过了充分的测试。这...

    解决Django提交表单报错:CSRF token missing or incorrect的问题

    解决这个错误的方法通常涉及以下几个步骤: 1. **确认中间件配置**:确保在项目的`settings.py`文件中,`MIDDLEWARE`列表中包含了`django.middleware.csrf.CsrfViewMiddleware`。这个中间件负责处理CSRF保护。 2. ...

    vue-resource post数据时碰到Django csrf问题的解决

    在使用vue-resource发起POST请求时,如果后端配置了CSRF保护,那么直接发送请求很可能会收到403 Forbidden的错误响应。这个错误表明CSRF验证失败,意味着请求中缺少正确的CSRF令牌或令牌不正确。 ### 解决方法 ...

    django和vue实现数据交互的方法

    在Django中,当发送POST请求时,如果没有正确的CSRF令牌,服务器会返回403 Forbidden错误。对于常规表单提交,Django可以通过在HTML模板中添加`{% csrf_token %}`来自动处理CSRF令牌,但在Vue.js的AJAX请求中,情况...

    Python Django框架防御CSRF攻击的方法分析

    如果不匹配,Django将拒绝该请求,通常返回403 Forbidden错误。 接下来,我们看看如何在Django项目中配置CSRF防护: 1. **启用CSRF中间件**:在项目的配置文件`settings.py`中,你需要确保`CsrfViewMiddleware`...

    在Django中预防CSRF攻击的操作

    否则,Django会拒绝该请求并返回403 Forbidden状态码。 此外,了解如何在Django中实现URL重定向也是开发者必备的知识。在Django的`urls.py`配置文件中,可以通过`RedirectView`来实现URL的跳转。例如: ```python ...

Global site tag (gtag.js) - Google Analytics