【问题标题】:Django: Preventative measures for SQL InjectionDjango:SQL注入的预防措施
【发布时间】:2019-01-04 02:47:15
【问题描述】:

我的 django 项目中有一些文本字段,我一直在学习 SQL 注入。去除潜在坏字符的文本字段是否很重要,这可能会使 SQL 注入更容易?我想剥离可能的坏字符,例如{;,但我不确定。这些字段是关于一个人或一个联系页面的简短简历,所以我认为它们不需要这些字符。

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

【问题讨论】:

标签: django sql-injection textinput


【解决方案1】:

简短的回答是:根据 django 文档,您应该不用担心 -

SQL 注入保护

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

Django 的查询集受到 SQL 注入保护,因为它们的查询是使用查询参数化构造的。查询的 SQL 代码与查询的参数分开定义。由于参数可能是用户提供的,因此不安全,因此它们会被底层数据库驱动程序转义。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多