我们的mysql数据库托管在amazon aws
上,有人通过我们的php connection
文件窃取了我们的数据库详细信息,现在他有dbname, password, dbhost
等详细信息,可以使用我们的mysql数据库备份,还是可以删除我们的mysql
表格?
如果他可以那么我怎么能阻止这一点。你能再告诉我一件事,他怎么能只使用我们的数据库细节来访问我的数据库。
我已经阻止了未经身份验证的ip
登录。因此,PLZ帮助我们阻止我们在亚马逊上的数据库。
感谢。
答案 0 :(得分:1)
我已经阻止了未经身份验证的ip登录。
我不确定你的意思,但任何未知和信任的IP地址都不应该访问你的数据库。您不应该允许从Internet访问您的数据库。第一层防御是链接到数据库的安全组。
您的数据库甚至没有理由拥有公共IP地址。
此外,您的应用程序应使用与principle of least privilege一致的MySQL帐户。
此帐户的权限应该是应用程序只能执行它需要执行的操作,并且只能执行它需要执行的操作,而不能执行。
您的应用程序绝不应使用主用户凭据或任何具有任何提升权限的帐户。
如果凭据遭到破坏,那么潜在攻击者就可以获得更少的权限。
一个明显的例子是DROP
特权,因为应用程序可能不应该丢弃表。不太明显的可能是DELETE
,因为在许多关系数据库中很少删除行 - 对于许多表,您的应用程序正常工作,从不需要删除行。
MySQL允许在服务器,数据库,表,列和对象级别设置每个帐户的各种权限,具体取决于权限。
https://dev.mysql.com/doc/refman/5.6/en/privileges-provided.html
MySQL权限系统还可以将帐户绑定到源IP地址,因此即使通过不恰当打开的防火墙配置获取对服务器的访问权限,凭证也将无效。
正确防止未经授权的IP地址访问至关重要,但您的数据库仍然只能与应用程序服务器以及运行在那里的代码一样安全,因为受损的应用程序服务器仍可用作攻击媒介来执行您的应用程序可以做。当然,一个常见的漏洞是SQL injection,这是一类漏洞,其中令人尴尬的大量程序员似乎无法掌握其严重性。或者,他们知道但是懒惰或否认它可能发生在他们身上。
拥有您的凭据而无法直接访问应用程序服务器或数据库本身,攻击者也可能找到一种方法来使用confused deputy的服务,例如您环境中与其他机器无关的服务(或间接相关的漏洞,允许对app服务器或数据库进行某种“跳过式”访问。
答案 1 :(得分:0)
您确实应该更改MySQL用户的密码。当任何人获得对您的敏感凭据的不必要访问权时,这是正确的协议。是的,如果他有这些信息,他就可以做任何用户可以做的事情,比如删除表等。