Django:SQL注入的预防措施

时间:2018-07-27 02:57:11

标签: django sql-injection textinput

我的django项目中有几个文本字段,并且我一直在学习SQL注入。剥离潜在的坏字符的文本字段是否很重要,这可能会使SQL注入更加容易?我想象会剥离诸如{ ;之类的错误字符,但是我不确定。这些字段是有关某人或联系人页面的简短简历,因此我不认为它们需要这样的字符。

需要明确的是,我还采取了其他措施来保护我的网站,例如正在使用这些字段,例如生成动态sql查询。

1 个答案:

答案 0 :(得分:1)

简单的答案是:您应该不用担心基于Django文档-

  

SQL注入保护

     

SQL注入是一种攻击类型,恶意用户可以在数据库上执行任意SQL代码。这可能导致记录被删除或数据泄漏。

     

由于Django的查询集是使用查询参数化构造的,因此可以防止SQL查询注入。查询的SQL代码是与查询的参数分开定义的。由于参数可能是用户提供的,因此是不安全的,因此底层数据库驱动程序会将其转义。

     

Django还使开发人员可以编写原始查询或执行自定义sql。这些功能应谨慎使用,并且您应始终小心谨慎地转义用户可以控制的任何参数。另外,在使用extra()和RawSQL时,应格外小心。

https://docs.djangoproject.com/en/2.0/topics/security/#sql-injection-protection