mysql - 如何在原始 django 中清理 SQL 输入

标签 mysql sql django django-models sql-injection

当有人执行搜索时,我会运行以下查询:

search = request.GET.get('search', '')
titles = Title.objects.raw("SELECT * FROM title WHERE MATCH(new_composite_title)
         AGAINST ('" + search + "') LIMIT 10")

如何清理上述输入以防止 SQL 注入(inject)?

最佳答案

不要相信用户输入。它充满了sql注入(inject)。使用extra()带有 params 参数的 QuerySet 修饰符。看here MySQL的全文搜索示例。

关于mysql - 如何在原始 django 中清理 SQL 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587649/

相关文章:

php - 在 Laravel/PHP/MySQL 中保存和显示带有子页面的页面所需的数据库逻辑建议

SQL Server 如何检索两个数字之间的所有数字

php - 优化我的数据结构。处理大量单位和转换

MySQL,如何将多条记录连接到一条记录

sql - 从查询 sql 中使用的 MAX() 生成的结果中删除空值

python - 为什么很多ORM在查询中不使用纯Python比较?

python - Django 自动完成灯列表对象没有属性查询集

django - 在 Django admin 上保存模型后上传文件

python - 使用sqlalchemy创建一个mysql数据库

mysql - 无法连接到(ip 或域名)上的 MySQL 服务器