@csrf\u豁免decorator是否使django视图不安全?

@csrf\u豁免decorator是否使django视图不安全?,django,security,Django,Security,我想知道在什么情况下使用@csrf_employment decorator不会为可能的XSS漏洞打开大门 举一个具体的例子,下面是我写的视图,它为博客文章添加了一个简单的类似ajax的计数: @csrf_exempt def like(request): args = {} if request.method == 'POST': user = request.POST.get('user') lu= request.user

我想知道在什么情况下使用@csrf_employment decorator不会为可能的XSS漏洞打开大门

举一个具体的例子,下面是我写的视图,它为博客文章添加了一个简单的类似ajax的计数:

@csrf_exempt
def like(request):
    args = {}
    if request.method == 'POST':
        user = request.POST.get('user')
        lu= request.user 
        post_id = int(request.POST.get('post_id'))
        try:
            liked_blog = Blog.objects.get(id = post_id)
        except:
            liked_blog = None  

        if BlogLike.objects.filter(liker=request.user.id, blog=post_id):

            liked_blog.likes -=1
            liked_blog.save()
            BlogLike.objects.filter(blog=post_id, liker=request.user.id).delete()


        else:            
            liked_blog.likes +=1
            liked_blog.save()
            newliker = BlogLike(blog=post_id, liker=request.user.id)
            newliker.save()          



    args['likes'] = str(liked_blog.likes)
    return render(request, 'ajax_like.html', args)
ajax部分:

$(function(){
$('#like').click(function(){
      $.ajax({
               type: "POST",
               url: "/blog/like/",
               data: {
               'post_id': $(this).attr('name'), 
               'csrfmiddlewaretoken': '{{csrf_token}}'
               },
               success: likeSuccess,
               dataType: 'html'
                }); 
    });

});
function likeSuccess(data, textStatus, jqXHR)
{
    $('#like_count').html(data);
}
我添加了@csrf_emption以消除关于csrf的恼人错误。
所以我想知道,在这种情况下,如何通过添加@csrf_-emption来提高网站的可用性

如果禁用csrf,则任何站点都可以增加计数器。因为你的观点没有什么特别之处,所以我认为它没有特别的安全重要性(但你永远不知道什么时候涉及到安全)。如果禁用csrf的唯一原因是为了避免csrf错误,那么实际上有一个非常简单的修复方法。只要包含要点中的代码,它就会像魔术一样工作

顺便说一下,我从官方django编译了代码

编辑:


此修复程序仅适用于jquery,但在其他js框架(如angular等)中也有类似的修复程序

您是否有特定的问题?StackOverflow可能不是讨论此问题的最佳站点。请随意编辑问题以包含更多详细信息。@miki725我将问题代码具体化了。谢谢你的来信。