我无法通过 Django 运行 SQL 注入

问题描述 投票:0回答:1

我收到此错误:

ProgrammingError at /databases
You can only execute one statement at a time.
Request Method: POST
Request URL:    http://127.0.0.1:7099/databases
Django Version: 5.0
Exception Type: ProgrammingError
Exception Value:    
You can only execute one statement at a time.
Exception Location: C:\Users\falcon\Desktop\Meity\hawk_v\okii\Lib\site-packages\django\db\backends\sqlite3\base.py, line 324, in execute
Raised during:  app.views.databases

当我将字段指定为

'); DELETE FROM app_databases; --.
时,它应该删除整个数据库,但它显示“执行了多个命令”。

sql django sqlite security sql-injection
1个回答
1
投票

.extra(…)
 [Django-doc]
.raw(…)
 [Django-doc]
don't 检查 SQL,这本质上就是这些调用的全部要点:您可以创建一个免费查询,该查询已记录在案。这是原始 SQL 查询出现问题的(很多)原因之一。请不要使用这些,除非所有其他尝试都失败了,因为它是安全漏洞的潜在来源。

您在这里进行过滤:

Databases.objects.filter(first_name__iexact=search_term)
© www.soinside.com 2019 - 2024. All rights reserved.