python - 发送这样的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']
)
解决方案
推荐阅读
- database - 连接数据库的连接字符串中的 minpool 和 maxpool 是什么意思?
- kdb - 如何将此嵌套查询转换为单个查询(模拟MySql窗口函数)?
- sql - 是否可以使用封闭的 SQL 子查询中的值作为其包含查询的表名
- .net - 托管的 Blazor wasm 应用程序基本路径在本地工作,但不能作为 IIS 子应用程序
- java-platform-module-system - 如何在 Jigsaw 静态站点生成器中实现标签云
- reactjs - 打字稿类型 T 不能分配给匿名函数中的类型 T&U
- c# - 我怎样才能使这个 linq 查询更干净、更可重用?
- powershell - 使用 Invoke-WebRequest 发布多部分表单会生成内容类型异常
- python - Python中没有反向序列的排列
- flow-project - 为什么加速度总是抖动