`

巧妙的解决csrf_token问题

阅读更多

无论是在django中,还是在ruby on rails中,都提供了一种基于token验证的机制,可以理解为防跨站机制。这种机制呆了的好处不必多说,但是会带来一种麻烦,就是在使用ajax的时候,会导致提交失败,比如在django中会提示:

 

CSRF verification failed. Request aborted.(django)
Can't verify CSRF token authenticity.(rails)

 

 这时候大家多数都会在ajax的对应ajax中加入

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def ajax_method:
   django
skip_before_filter :verify_authenticity_token (rails)

 其实还有另外一个方法,这里只说在django中的应用,因为在rails里面没有测试过:

 

 <input type="hidden" id="csrfmiddlewaretoken" name="csrfmiddlewaretoken" value="{{ csrf_token }}"> 

 

 然后在用ajax的地方,加入:

   data: {datas:‘ datas’,csrfmiddlewaretoken: $("#csrfmiddlewaretoken").val()},

这样就可以了。

 

 

 

 

 

分享到:
评论

相关推荐

    对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍

    总结来说,Laravel的CSRF防御机制是通过在用户会话中存储一个不可预测的令牌,并在表单中加入该令牌的隐藏字段csrf_token()实现的。当表单提交或API请求时,Laravel会对这个令牌进行校验,以确保请求是由合法用户...

    安全开发 | 如何让Django框架中的CSRF_Token通过AJAX的POST请求后端服务

    用过Django 进行开发的同学都知道,Django框架天然支持对CSRF攻击的防护,因为其内置了一个名为CsrfViewMiddleware的中间件,其基于Cookie方式的防护原理,相比基于session的方式,更适合目前前后端分离的业务场景。...

    83.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结_杨秀璋的专栏-CSDN博客1

    【网络安全自学篇】八十三.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结 本文主要介绍了网络安全领域中常见的几种攻击手段,包括CSS注入、越权访问、csrf-token窃取以及XSS跨站脚本攻击,并通过WHUCTF比赛中的...

    Laravel开发-laravel-token

    在Laravel中,可以使用`csrf_token()`函数来生成一个唯一的CSRF令牌,这个令牌通常插入到表单的隐藏字段中: ```blade &lt;input type="hidden" name="_token" value="{{ csrf_token() }}"&gt; ``` 三、表单提交 在...

    Django中针对基于类的视图添加csrf_exempt实例代码

    在Django中对于基于函数的视图我们可以 @csrf_exempt 注解来标识一个视图可以被跨域访问。那么对于基于类的视图,我们应该怎么办呢? 简单来说可以有两种访问来解决 方法一 在类的 dispatch 方法上使用 @csrf_exempt...

    Django中ajax发送post请求 报403错误CSRF验证失败解决方案

    先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了;很显然,用ajax发送post请求这样就白搭了; 文末已经更新更简单的方法,上面的略显麻烦 上网上查了一下,看了几个别人的博客,才知道...

    Python库 | django_request_token-0.14.1-py3-none-any.whl

    总之,`django_request_token`是一个对Django开发者来说至关重要的安全工具,它简化了CSRF防护的实现,让开发者能专注于更重要的业务逻辑,而不必担心安全性问题。通过正确使用这个库,你可以确保你的Python/Django...

    RubyonRails6课程作为API,通过devise_token_auth显示身.zip

    本课程聚焦于如何利用Ruby on Rails 6构建一个API,并通过devise_token_auth实现身份验证。下面我们将深入探讨相关知识点。 首先,Ruby on Rails 6是这个项目的基石,它是一个基于Ruby语言的开源Web应用程序框架,...

    详解php curl带有csrf-token验证模拟提交方法

    为了防止跨站请求伪造(CSRF)攻击,网站开发者会在表单中加入一个一次性使用的随机令牌(token)。该令牌会在服务器端生成,并在用户提交表单时验证其有效性。 本篇内容将详细介绍如何使用PHP curl进行带有CSRF...

    api.rar_Token 使用redis_django_exclaimedthp_redis_roselgr

    `api.rar_Token 使用redis_django_exclaimedthp_redis_roselgr`这个标题暗示了我们在讨论一个使用Redis作为存储机制,来处理Django框架中的Token验证的场景。这里的`exclaimedthp`和`roselgr`可能是项目或特定组件的...

    django中CSRF的问题及解决

    - **解决方案**:更新`settings.py`中的`MIDDLEWARE_CLASSES`列表,用`'django.middleware.csrf.CsrfViewMiddleware'`替换旧的中间件名称,并在模板中的表单内加入`{% csrf_token %}`标签。 ```python ...

    xss+csrf+html练习源码.rar_XSS_csrf_csrf源码_xss源码_xss练习源码

    防御CSRF通常需要采用令牌(Token)机制,确保每个请求都有一个唯一的、服务器端验证的令牌,防止非预期的操作。 HTML注入是指攻击者通过注入恶意HTML代码,操纵网页呈现内容,以达到欺骗用户或执行其他恶意目的。...

    laravel 实现关闭CSRF(全部关闭、部分关闭)

    用了laravel就会知道其中...当我们写接口的时候,会遇到这样的问题:因为通过接口是无法传csrf_token的(csrf_token是在laravel中生成的),我们只想在api请求的时候关闭csrf验证,网站的后台不关闭。 这就需要去修改a

    解决django前后端分离csrf验证的问题

    在模板中,如果存在表单,可以直接使用`{% csrf_token %}`模板标签,Django会自动处理CSRF验证。 ```python from django.views.decorators.csrf import ensure_csrf_cookie @ensure_csrf_cookie def render_...

    Using_XSS_to_bypass_CSRF_protection

    虽然XSS和CSRF都是常见的Web安全问题,但两者之间的区别在于攻击的目标不同。XSS攻击的主要目标是客户端的用户,而CSRF攻击的目标则是服务器端的服务。通过结合这两种攻击方式,攻击者可以更加隐蔽地实施攻击,并...

    csrf_related:csrf_material

    在这个名为"csrf_related:csrf_material"的资源中,我们可以推测它可能包含了一些关于防范和理解CSRF攻击的材料。作为JavaScript开发者,了解并掌握CSRF防护机制是至关重要的,因为JavaScript在Web应用中扮演着处理...

    详解Django的CSRF认证实现

    这通常通过在视图函数或类中添加`@csrf_protect`装饰器来实现,或者在模板中使用`{% csrf_token %}`标签。另外,对于使用Ajax的POST请求,也需要确保在请求头中携带CSRF token,例如设置为`X-CSRFToken`。 总的来说...

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

    1. **缺失的CSRF令牌**:在Django的POST表单中,你需要包含`{% csrf_token %}`模板标签来生成和提交CSRF令牌。如果你的表单缺少这个标签,Django就无法找到令牌,从而导致错误。 2. **中间件未启用**:确保在`...

Global site tag (gtag.js) - Google Analytics