通过 Rest API 主体进行 SQL 注入

Eig*_*ght 1 mysql sql security sql-injection

我目前正在检查我的 Rest API 是否容易受到 SQL 注入的影响,但我对这个过程感到困惑。

我的 API 接受 JSON,然后将请求发送到 Mysql 数据库。我试过发送应该导致 SQL 注入的字符串,例如' OR 'x'='x,但不是被执行,而是作为字符串发送到服务器,我想这意味着它们不是问题。

我现在正在使用 Postman 进行一些更深入的测试,但是如果我尝试将字符串添加到我的参数中,例如:

{
   "name": "test" OR 1 = 1 -- "
}
Run Code Online (Sandbox Code Playgroud)

邮递员只会告诉我 JSON 语法不正确,即使我确实发送了它,我也会收到“无效的 JSON”响应,而它甚至不会到达我的 Rest API。

这是好事还是坏事?我实际上如何测试我的 API?

mik*_*ike 7

邮递员对,您的 JSON 已损坏。您应该在字段名称或值中转义双引号,它是 JSON 中的特殊符号。

您的查询应如下所示:

{
   "name": "test\" OR 1 = 1 -- "
}
Run Code Online (Sandbox Code Playgroud)

阅读有关 JSON 中特殊字符的更多信息:https : //www.json.org/json-en.html