【发布时间】:2021-09-27 01:51:43
【问题描述】:
我是第一次将 Sequelize 与 PostgreSQL 一起使用。这也是我很久以来第一次使用 SQL 数据库。
我一直在研究如何提高一些 SQL 查询的性能和安全性。我遇到了sequelize.query() 方法并开始为此目的使用它。
这种方式会使 Sequelize 中的raw queries 容易受到 SQL 注入攻击吗?
【问题讨论】:
-
安全性和性能是两个独立的问题,最好单独提出。
-
你为什么还要使用
sequelize.query?为什么不使用模型文件? -
如果 sequelize.query 完成工作并且没有任何安全或性能漏洞,那么我将使用它。否则将转向使用 ORM 进行查询。
-
“或性能漏洞”通常是 ORM 将查询发送到数据库引擎。没有“性能”可言,因为它将运行查询的是数据库引擎。因此,如果您提供了一个错误的查询,那么您将它交给哪个库以将其移交给同一个数据库引擎并不重要。其次,即使有一个好的查询通常更大的减速来自与数据库的连接 - 如果到数据库本身的往返需要 100 毫秒,那么从 4 毫秒到 3 毫秒优化查询将不会节省你有很多时间。正如我所说,性能是一个完全独立的话题。
标签: node.js postgresql sequelize.js sql-injection