扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:专家blog 来源:专家blog 2007年9月11日
关键字: 安全 SQL Server SQL Server 各版本 数据库
4.删除默认的数据库和用户
接下来,我们必须删除示例数据库和除了root账户以外的所有的账户,可以使用如下命令来实现:
|
这就可以有效阻止对数据库的匿名连接和清除在/chroot/mysql/etc/my.cnf下的与skip-networking无关的参数,从而阻止远程连接。
5.改变管理员的登陆名称
我们同样也推荐将默认管理员的账户名称修改,这样,就可以使得外部用户很难猜测账户名称。这样一个改变,就可以有效的阻止对管理员密码的暴力攻击和字典攻击。因为,攻击者首先要猜出用户名称,然后才能猜测密码。可以通过如下方式改变:
|
6.删除历史纪录文件
最后,我们应该将MySQL中历史文件的内容删除,因为所有执行过的SQL命令都被以明文的形式存储在这里,很容易泄密。这可以通过如下方式实现:
|
如何在PHP和MySQL之间进行交互
因为本地的PHP与MySQL之间的交互通过/tmp/mysql.sock套接字进行,而将PHP放在chrooted环境中意味着它们之间不能交互。为了解决这个问题,在我们每次使用MySQL的时候,都必须先创建一个到PHP的chrooted环境的稳固连接。这可以通过如下命令实现:
|
(脚本小子:/chroot/mysql/tmp/mysql.sock套接字和/chroot/httpd/tmp目录必须处在相同的文件系统下,否则他们之间的稳固连接将不能正常工作。)
现在,我们要创建能够被指定的PHP应用使用的所有的数据库和账户,需要注意的是,这些帐户仅仅拥有通过PHP应用对数据库进行访问的权利。特别需要指出的就是,这些帐户不应该具有对mysql数据库访问的任何权力,当然更不用说对系统的访问和管理特权(FILE, GRANT, ALTER, SHOW DATABASE, RELOAD, SHUTDOWN, PROCESS, SUPER 等)了。
最后,我们也应该创建一个shell脚本,用来在启动系统的时候来运行MySQL,可以到[url]http://www.securityfocus.com/unix/images/mysql.sh[/url]上下载,而在我们的FreeBSD系统里,上面的脚本应该放在/usr/local/etc/rc.d目录下,取名为mysql.sh。
好了,大功告成,通过上面的设置,如果有人想通过mysql入侵你的服务器,估计不死都得掉层皮,嘿嘿!
采用上面陈述的方法,我们可以显著提高MySQL的安全性。通过在一个chrooted环境下运行数据库,禁止掉对TCP3306端口的监听,采用强壮的用户密码,我们就可以使数据库免受大多数的攻击。虽然没有方法能够使我们得到100%的安全性,但是使用描述的方法,至少可以降低来自访问我们的Web服务的用户的不明目的攻击的可能性。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者