首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果MySQL操纵参数类型,这是一个安全问题吗?

如果MySQL操纵参数类型,这是一个安全问题吗?
EN

Security用户
提问于 2015-05-05 22:05:15
回答 1查看 98关注 0票数 2

这是我在堆栈溢出上发布的一个问题的后续,但您不需要阅读这个问题--我在这里重述相关的细节。

我正在测试一个使用MySQL数据库作为数据存储的PHP应用程序。我只通过ORM库使用参数化查询。

我发现有这样一个有效负载的特定POST请求:

代码语言:javascript
复制
id=3-2&value=whatever

将修改id = 3所在的数据库行。经过一些调查后,确定值"3-2“传递到数据库(通过参数化查询),并选择id = 3所在的行,然后对行进行更新。

现在,在我看来,这是一个安全缺陷:我能够通过POSTing ( id参数的任意值)操作数据库中的数据。诚然,这种攻击可能存在的值范围是有限的: ID参数必须是以数字为前缀的字符串,并且该数字必须与我的数据库中的ID相对应。

所以我有两个问题:

  1. 这真的是我该担心的安全漏洞吗?
  2. 在我的应用程序中应该在哪个级别解决这个问题?
    1. MySQL服务器,也许是通过更改一些配置值来实现的?
    2. ORM库,也许是在尝试查询数据库之前检查使用的ID的值吗?
    3. 在我的代码中,在我尝试实例化模型之前?

谢谢你的帮助!我刚开始学习安全性&任何输入都会有帮助!

EN

回答 1

Security用户

回答已采纳

发布于 2015-05-06 01:47:43

  1. 这允许(可能是恶意的)操作与应用程序的预期使用相反,所以是的,这是一个您应该担心的安全漏洞。仅仅因为您发现了有限的用例/攻击向量,并不意味着其他的不存在。
  2. 理想情况下,您应该采取一种"纵深防御“方法,在尽可能多的级别上减轻这种担忧。正如上面提到的,您只发现了一个攻击向量,而所有级别的缓解要求任何相关的向量都必须绕过所有的缓解,而不是单层的。尽管如此,修改ORM库可能并不合适,因为它不一定是一个可概括的问题。
票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/88583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档