SQL 通过休息注射 API Body

SQL Injection via Rest API Body

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

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

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

{
   "name": "test" OR 1 = 1 -- "
}

邮递员只会告诉我 JSON 语法不正确,即使我发送了它,我也会收到 "Invalid JSON" 响应,甚至没有到达我的休息 API .

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

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

中的特殊符号

您的查询应如下所示:

{
   "name": "test\" OR 1 = 1 -- "
}

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