- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MySQL是最受DBA欢迎的数据库之一,易用性和高性能是MySQL数据库的标志。然而,高人气使得MySQL成为很多恶意个人和组织攻击的目标。默认安装的MySQL在安全措施方面存在较大隐患,特别是根密码空缺和缓冲区溢出的潜在漏洞,使其成为最容易受攻击的目标。在本文中,我们将介绍一些简单而有效的方法来加强数据库的安全性,以抵御本地以及远程的攻击。
常见安全行为
作为DBA,与安全相关的工作应当围绕以下三方面展开:
#8226;打补丁
#8226;限制访问
#8226;避免有用信息收集
本文剩余部分将会在细节上讨论以上三个行为,并将重点放在对网络、操作系统以及数据库服务器的限制访问上。
安全补丁
尽管每个人都会尽最大努力去保护数据,但永远会有人发现可以利用的漏洞。数据库供应商会检查引起问题的漏洞,并提供相应的漏洞补丁程序。
为MySQL寻找相关安全补丁最好的去处之一便是Oracle的官方网站。你需要经常访问MySQL论坛,并关注相关动向。它们通常是安全警报最先发出的地方。
防止对系统的访问
有四项主要的来源是需要注意的:
#8226;对网络的访问
#8226;对数据库的直接访问
#8226;对备份的访问
#8226;对操作系统的访问,包括数据和日志文件
以上每一项都有其自身所面临的挑战和解决途径:
对网络的访问
如果你所在的局域网或广域网并不安全,你需要考虑对服务器和客户端之间的网络连接进行加密。非授权用户能够以某种方式获得对特权用户账户(例如root)的访问权限么,他们可以利用类似tcpdump的工具嗅探发往MySQL的网络流并过滤数据包。这些数据包是会包含查询和数据的。
默认情况下,MySQL是以最佳性能配置的,因此除非对连接进行人工设置,否则所有连接都是非加密的。而通常是采用SSL协议对所有在MySQL客户端和服务器之间发送的数据进行加密。
MySQL可以基于每个连接进行加密,因此你可以根据各个应用程序的需求来选择使用非加密连接或是安全的加密SSL连接。
对数据库的访问
对于黑客来说,首要的潜在入口点之一就是root账户。因此,对密码进行重置和对ID重命名是至关重要的。
...当你拿到一个默认安装的MySQL时,首先要做的就是为root用户设置密码。
$mysqladmin-urootpasswordNEWPASSWORD
一旦设置了密码,将”root”改成其他名字,安全性将会更好。一个黑客比较青睐于在MySQL服务器上将root用户作为目标,既是由于其超级用户身份,也是因为它是已知用户。通过改变root用户名,会让黑客进行成功攻击变得更困难。使用以下一系列命令可以重命名“root”用户:
mysqlgt;RENAMEUSERrootTOnew_user;
除此之外,让超级用户的数量保持在绝对意义上的最小对掌控数据库是非常关键的。而太多的超级账号是存在隐患的,实际上,就关键数据而言,如果你不小心就有可能失去很多东西。
有一个账户类型是DBA们所钟爱的,即只读用户。这是最好用的一类账户类型,因为持有它的用户实际上是无法对数据库或其数据造成破坏的。通常,用户会编造一些理由来解释他们为何需要写权限。而确定一个特定权限是否有其真正价值的试金石就是在某种程度上将其简单的移除,然后观察是否有人对此抱怨。如果什么都不发生就最好了。以我的经验,只有很少的用户渴望权限。而余下的用户并不需要额外的权限。其实,我并非提倡通过关闭用户权限来欺瞒你的客户,我所要阐释的是要对用户的工作模式加以正确的分析。有些事情可以通过简单的质量审计就可以非常轻易的完成。
对备份的访问
理想情况,只要对备份进行离线存储,这样当主站有故障发生时就不会对备份造成影响。此外,所有保护你数据库服务器网络的步骤同样适用于备份系统。有一些优秀的软件模型可以对你的数据进行加密,因此,即便是备份文件在不大可能的情况下落入他人之手,其内容对于偷盗者而言也是无用的。
这里是一个用PHP语言写的加密函数,它利用的是“rijndael-256”模型:
publicfunctionencrypt($msg,$k,$base64=false){
if(!$td=mcrypt_module_open(rijndael-256,,ctr,))returnfalse;
$msg=serialize($msg);
$iv=mcrypt_create_iv(32,MCRYPT_RAND);
if(mcrypt_generic_init($td,$k,$iv)!==0
原创力文档


文档评论(0)