我可以让客户机为我的Django服务器构造DB查询并保持安全吗?

2024-10-01 09:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,首先,一个要点(如果下面的文本不清楚)-https://gist.github.com/chozabu/86b60caa0ce211f232da

基本上,让任何客户机向我的服务器传递一些dict(用于筛选、排除和排序)并用少量代码加载我的API似乎相当简单,这些代码还支持我没有想到的未来复杂查询!你知道吗

客户机可以要求posts that have tax X but not tag Y within a date range and a rating greater than Z或几乎任何其他内容(统计聚合除外)。
查询dict可以如下所示: { 'filters : [{ post__stats__score__gte : 0.3 }], 'sort_by' : 'post__author__created_at' ' }

我担心的是,客户可能会滥用这一点,只过滤有特定电子邮件、pw散列或我没有想到的东西的人。你知道吗

你认为通过小心地使用黑/白列表来实现这样的安全性是可行的吗?或者更改查询服务器端以排除客户端不应查看的任何数据?你知道吗

FWIW,我目前的计划是用django rest框架构建一个系统,只有在需要的时候才添加这样的东西作为额外的选项,我可以找到一种方法使它安全。你知道吗


Tags: 代码https文本github服务器comapi客户机
1条回答
网友
1楼 · 发布于 2024-10-01 09:24:57

在DRFs筛选页面的底部:http://www.django-rest-framework.org/api-guide/filtering/
有一些第三方扩展,如

这似乎是解决这个确切需求的扩展(我对核心DRF也不感到惊讶!)你知道吗

编辑:Alasdair在上面评论了类似的功能在1.2.4版本中从django admin中删除,并使用白名单来确保安全性

所以,我想我最初的问题的答案真的是“是的,只要你知道你在做什么,并且小心-可能使用白名单而不是黑名单”

相关问题 更多 >