首页 > 解决方案 > 发送这样的ajax帖子安全吗?如果没有,如何清洗?

问题描述

所有关于如何在 django 中使用 ajax 的教程都说我应该做这样的事情。但是这样做安全吗?有人不能将浏览器中的值更改为一些恶意 SQL 吗?如果有,如何预防?

javascript

text = this.previousElementSibling.value;
parent = this.parentNode.id;

ajax.open('POST', '/post/comment/', true);
ajax.onreadystatechange = function(){
    if(this.readyState == 4) {
        reply = document.createElement("DIV");
        reply.classList.add('post');
        reply.innerHTML = this.responseText;
        document.getElementById('comments').appendChild(reply);
    }
}
ajax.setRequestHeader("X-CSRFToken", csrf_token);
ajax.setRequestHeader('Content-Type', 'application/json');
ajax.send(JSON.stringify({'text': text,'parent': parent}));

视图.py

def post_comment(request):
    if request.method == 'POST':
        body = json.loads(request.body.decode('utf-8'))
        parent = Post.objects.get(pk=body['parent'])

        comment = Comment.objects.create(
            author=request.user,
            parent=parent,
            group=parent.group,
            text=body['text']
        )

标签: pythonajaxdjango

解决方案


推荐阅读