关于GraphQL及其易受SQL注入攻击的问题。假设我执行了一些动态搜索,用户在字段中输入文本,我将其用作graphQL搜索的参数。
所以,我最终得到了这样的结果:
{
data {
location: user_input
}
}其中user_input是用户指定的变量。
现在,假设一个用户试图在这里输入一些恶意代码,以擦除数据库或类似的东西(即1=1攻击)。这在这里行得通吗?GraphQL是否只是简单地将查询转换成SQL,因此这会有危险吗?或者,GraphQL会阻止这样的事情发生吗?
谢谢
发布于 2020-11-01 19:11:42
GraphQL是一种查询语言。从spec
GraphQL是一种查询语言,旨在通过提供直观而灵活的语法和系统来描述客户端应用程序的数据需求和交互,从而构建客户端应用程序。GraphQL不是一种能够进行任意计算的编程语言,而是一种用于查询具有本规范中定义的功能的应用服务器的语言。GraphQL不强制要求实现它的应用程序服务器使用特定的编程语言或存储系统。
GraphQL对底层数据层是不可知的。它可以与SQL数据库一起使用,也可以与NoSQL数据库、内存中的键值存储、文件系统等一起使用。
特定的GraphQL服务是否容易受到SQL注入的攻击最终取决于该服务是如何实现的。事实上,它是一个GraphQL服务,这并不是它真正的考虑因素。
https://stackoverflow.com/questions/64628911
复制相似问题