1,存储引擎,根据应用选择合适的引擎
2,索引
----这个就有很多文章了,具体需要你自己去了解
3,sql语句优化,查询条件的选择之类
4,mysql自身系统配置,需要针对应用去定制
5,表的选择,临时表,或者分区表,也需要针对应用的情况去选择使用
企业最有价值的资产通常是其数据库中的客户或产品信息 因此 在这些企业中 数据库管理的一个重要部分就是保护这些数据免受外部攻击 及修复软/硬件故障
在大多数情况下 软硬件故障通过数据备份机制来处理 多数数据库都自带有内置的工具自动完成整个过程 所以这方面的工作相对轻松 也不会出错 但麻烦却来自另一面 阻止外来黑客入侵窃取或破坏数据库中的信息 不幸的是 一般没有自动工具解决这一问题而且 这需要管理员手工设置障碍来阻止黑客 确保公司数据的安全
不对数据库进行保护的常见原因是由于这一工作 麻烦 而 复杂 这确实是事实 但如果你应用MySQL 就可以使用一些方便的功能来显著减少面临的风险 下面列出了以下几个功能
删除授权表中的通配符
MySQL访问控制系统通过一系列所谓的授权表运行 从而对数据库 表格或栏目级别的用户访问权利进行定义 但这些表格允许管理员为一名用户设定一揽子许可 或一组应用通配符的表格 这样做会有潜在的危险 因为黑客可能会利用一个受限的账户来访问系统的其他部分 由于这一原因 在设置用户特权时要谨慎 始终保证用户只能访问他们所需的内容 在给个别用户设定超级特权时要尤其小心 因为这种级别允许普通用户修改服务器的基本配置 并访问整个数据库
建议 对每个用户账户应用显示特权命令 以审查授权表 了解应用通配符许可是否恰当
要求使用安全密码
用户账号的安全与用来保护它们的密码密切相关 因此 在安装MySQL时第一件事就应该设置MySQL根账号的密码(默认为空) 修复这一漏洞后 接下来就应要求每个用户账号使用一个密码 且不要使用生日 用户名或字典中的单词这些容易识别的启发式密码
建议 应用MySQL 安全 授权选项避免使用旧的 不大安全的MySQL密码格式
检查配置文件许可
一般来说 要使服务器连接更为快速方便 单个用户和服务器管理员必须把他们的用户账号密码存储在单用户MySQL选项文件中 但是 这种密码是以纯文本形式存储在文件中的 很容易就可以查阅 因此 必须保证这样的单用户配置文件不被系统中的其他用户查阅 且将它存储在非公共的位置 理想情况下 你希望单用户配置文件保存在用户的根目录 许可为
加密客户与服务器之间数据传送
MySQL(及其它)客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题 如果客户与服务器间的交互以纯文本形式发生 黑客就可能 嗅出 被传送的数据包 从而获得机密信息 你可以通过激活MySQL配置中的SSL 或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密 通道 以关闭这一漏洞 以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据
禁止远程访问
如果用户不需要远程访问服务器 你可以迫使所有MySQL连接通过UNIX插槽文件来完成 从而大大减少网络受攻击的风险 这一过程可通过跳过网络选项启动服务器来完成 这样可以阻止TCP/IP网络连接到MySQL上 保证没有用户可以远程连接系统
建议 可以在MySQL服务器配置中添加捆绑地址 指令来增强这一功能 迫使MySQL捆绑当地机器的IP地址来保证只有同一系统中的用户可以连接到MySQL
积极监控MySQL访问记录
MySQL中带有很多不同的日志文件 它们记录客户连接 查询和服务器错误 其中 最重要的是一般查询日志 它用时间标签记录每名客户的连接和中断时间 并记录客户执行的每个查询 如果你怀疑发生了不寻常的行为 如网络入侵 那么监控这个日志以了解行为的来源是个好方法
lishixinzhi/Article/program/SQL/201311/16349云服务器的使用越来越广泛,愈加受到众多企业的青睐,那么,在使用过程时如何更好的做好防护措施呢?小蚁君来说说。
1.随时检查系统安全漏洞,安装系统补丁。不管是Windows还是Linux, *** 作系统都会有漏洞,及时装上补丁,避免被不法分子恶意利用攻击.
2.安装并升级杀毒软件。目前网络上的病毒越加猖獗,随时会影响到网站服务器的安全,因此,系统要安装上杀毒软件来提前预防病毒的传播,并定期检查升级杀毒软件,自动更新病毒库。
3.定期对服务器数据进行备份。为预防突发的系统故障而导致的数据丢失,平时就要定期对系统数据进行备份,同时,重要的系统文件建议存放在不同的服务器上,以便系统出故障时能将损失降到最低。
4.定期对账号密码进行修改保护。账号和密码保护可以说是服务器系统的第一道防线,目前大部分对服务器的网络攻击都是从密码开始的,一旦不法分子截获了密码,那么前面所做的所有安全防护措施都将失去了作用。
5.关闭不常用的服务和端口。服务器 *** 作系统在安装时,会启动一些不需要的服务,不仅占用了系统的资源,还会增加系统的安全隐患。因此,定期检查系统运行中的软件和服务,没有使用的就关闭掉。
做了那么多,那么要怎么样才能避免一些低级的黑客攻击呢?
小蚁君网络了一些方法以及应对的措施
常见攻击手段
1、针对网站
1.1、SQL注入
sql注入也是老生常谈了,基本上算是常识了,这种手段无非是利用后台漏洞通过URL将关键SQL语句带入程序并在数据库中执行从而造成破坏性结果。常见情况包括后台使用了的致命的字符串拼接,比如在java的jdbc中使用如下写法
String sql = "select * from t_user where username = "+username
1
如果入参username在url中被换成不怀好意的sql语句或者其他,数据库也就危险了。
localhost:8080/testproj/queryUser?username=drop%20t_user
此外,类似的mybatis的${}写法也是同样道理,最好换成#。
1.2、后台框架、协议漏洞
1.3、程序逻辑漏洞
这个就需要黑帽子们比较有耐心,去一点点找出来,举个例子,网站有效性校验。针对数值有效性,前端有进行过滤,但是网站后台没有做参数有效性校验,这时候恶意者使用F12或postman等拼装ajax请求,将dfa或者-1ad这种非法数字发送给后台,健壮性差的程序就很容易报错,异常暴露到页面上,瞬间就能让 *** 作者知道后台使用何种语言何种框架。更严重的可能是利用程序逻辑漏洞做重复提交、越权 *** 作等行为,因此需要开发人员注意。
1.4、CSRF攻击
http://www.huiyuan.com/account/addUser?username=god&password=123456&role=1
这个时候浏览器还携带着管理员登录的cookie因此该行为得到执行,我就获得了一个管理员用户,当然这么蠢的网站一般是不存在的,这里只是打个比方。
防范手段比较常见的是url携带token进行校验,这种手段还可以防御cookie被篡改,盗用等情况,相当的万金油。
1.5、暴力破解
直接采用密码表暴力破解方式强行登录管理员账户,这个没啥技术含量,开发人员做好验证码校验以及恶意攻击校验,频繁请求IP封禁即可。
2、针对服务器
2.1、服务器登录用户、数据库登录用户爆破
黑帽子有多种手段确定后台数据库,比如1.3中直接让后台报错,很容易就发现了后台使用的什么框架,连得啥库。又或是使用nmap 等工具直接开扫,目标服务器暴露3306端口大概率就确定是mysql了。确认了数据库类型以及端口接下来就是采用密码表暴力破解了,很多安全意识差的密码居然还是root,123456之类的,分分钟被暴,而扫到后台服务器22开放端口也可以确认后台服务器使用linux开放ssl登录。所以应对方式有三种:
mysql限制访问IP,这个利用alter user语句就可以做到,root账户尽量只给localhost权限,慎用user@%;
不要使用弱密码,尽量采用字母+数字+特殊字符的密码;
服务器使用放暴力破解服务,可以针对非法访问恶意 *** 作进行锁IP防御。
2.2、服务器端口漏洞
通过nmap很容易扫描到服务器暴露的端口,比如139端口外露,就有大量的手段可以渗透:
net use ipipcContent
nbsp”” /user:administrator
所以应对手段也很简单,开启防火墙,且只开放有需要的端口,敏感端口如139,445不要外露。
2.3、 *** 作系统漏洞
虽然大部分公司都采用linux作为服务器,相对安全得多,但是还是有不少公司(至少博主见过挺多的)还在使用windows server,大量的漏洞让服务岌岌可危,应对方式也很简单粗暴,该打的补丁就打,不要偷懒。
2.4、木马植入
这个就是黑客直接通过向服务器种植木马,开启后门,取得服务器控制权,应对方式主要以下三点:
1、不要用服务器访问乱七八糟的网站(尤其是公司服务器在国外的,不要想着借来翻墙了,别作死),下载乱七八糟的东西;
2、实体机的移动外设接入前注意杀毒;
3、服务器安装相应安全产品,定期查杀木马,定期更新漏洞补丁;
4、防火墙注意开启,相应端口注意配置。
做到以上几点,基本上中级以下的黑客是进不来了,就算是中高级的黑客也得费一番功夫。当然,如果公司服务器数据涉及资产非常高,建议直接联系小蚁君
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)