0

你好,堆栈溢出的精彩社区,

我最近是一名在 c sharp 工作的 .net 开发人员。现在,我正在尝试编写一组单元测试来测试 mysql 数据库的安全性。测试套件的一部分是确保 mysql 数据库不能接受来自某些 IP 地址的连接。我一直在努力寻找一种方法来测试这一点。到目前为止的想法是:

  1. 模拟我当前拥有的 IP 地址,以便我正在建立的连接认为它来自另一个 IP 地址
  2. SSH 到具有不可接受的 IP 地址之一的远程服务器并执行 shell 命令以连接到 mysql 服务器

我还没有找到手动更改发送到 mysql 服务器的 ip 地址的方法。我正在使用 MySql.Data.MySqlClient 程序集中的 MySqlConnection 类。据我的研究表明,这是不可能的。(这可能是一件好事)

我通过研究了解到,.Net 没有本地 SSH 库,并且对于这个项目来说,引入一个库是不可能的,这阻碍了我执行 #2 的能力。

由此,我不知道如何继续。有没有人有模拟数据库连接和控制源 IP 的经验?(或与此相关的任何其他信息)?

非常感谢任何帮助或资源。

谢谢

4

1 回答 1

0

对于那个特定的任务来说,这可能是矫枉过正,但我​​是怎么看的。

您需要一个代理服务器,并在您的 MySQL 实例上禁止 IP 地址。

然后你测试成功的连接,直接从你的机器连接到 MySQL(它应该可以正常连接)。

然后测试失败场景,通过代理重定向请求(我希望 MySQLClient 允许,无论如何你可以自己创建一个简单的代理)。在这种情况下,连接应该失败。

于 2013-08-23T08:18:51.847 回答