如何保证服务器的安全?
我的感觉主要是保证服务器端脚本程序的安全性,比如PHP。比如我现在的开发框架是HTML+JavaScript+CSS+PHP+MySQL。
前端:
[*]HTML和CSS肯定没法提供什么安全性了。
[*]JavaScript负责把页面弄的好看写,还有就是使用jQuery做一些异步的数据提取工作,也没法提供什么安全性。
后端:
[*]MySQL最多只能通过主键、外键以及其他约束来减少数据出错的可能性,应该没法提供什么安全性。
[*]PHP是所有数据进入数据库的入口,而且MySQL完全听PHP的,安全问题主要应该体现在这里。
所以,我感觉控制好PHP脚本的运行权限设定是服务器安全的关键,还有就是要控制好用户运行PHP脚本的频率,比如用户不停的调用某些可以调用的脚本,就可能会影响到数据库里面的某张表。
之前,CU曾经出现过大规模的《找+小+姐》的帖子,应该就是自动发帖机反复调用某个脚本所导致的吧?
--------------------------------------------------
不知道理解的对不对。 :wink: Web服务器安全
系统级别
1.最小化开放服务器的端口,例如纯web的话对外的一般只开放80,443端口;
2.帐户安全,要使用强密码,定时更改,对用户进行合适限制分配;例如apache运行的用户应该限制为nologin,忌直接使用root运行;
3.良好的日志记录与管理;
4.养成良好的使用习惯,例如避免以下操作mysql -uroot -p123345,不要把密码直接明文明显示;
5.避免使用老去的技术,使用ftp,telnet这些服务,现在系统完全有其替代的产品。
数据库
1.合理设计数据库,例如保存时间戳字段,应该优先使用整型,而不是varchar;
2.用户权限,root用户不要用于程序连接,程序连接数据的用户限制合理的限制;一般Web程序权限select,insert,delete,update;
3.数据库保存目录,权限读写合理控制;
web服务器
1.运行用户,避免使用root运行;
2.编译时最小化安装;
3.监听指定域名的端口;例如只是提供单域名的服务器,在listen时指定xx.com 80;
4.减少web服务器信息暴露;例如隐藏apache版本,禁止目录浏览等。
PHP脚本
1.php编译安装时合理选择模块,php.ini里隐藏php版本,避免使用cgi模式运行;
2.限制php对文件系统的访问;
3.防止代码注入,GET/POST/COOKIE/SERVER等传入参数值合理过滤;
4.用户密码的数据,千万不要使用明文储存到数据库;
5.善用验证码与ip模块限制,减少暴力注入垃圾信息的机率。
前端js
1.防止xxs攻击。 回复 4# satrun7
我看到很多论坛都这样,已经离开了很多社区,我也不知道为什么,但依然喜欢狂CU多少年养成的习惯也不想改变,ChinaUnix我心中理想的技术学习园地、理想的技术交流社区! 怎么如此冷清啊。 :wink: 该过滤都部分要过滤,该转义都部分要转义 回复 4# satrun7
看见验证码,我感觉眼睛一亮,这个东西很好,那种图片格式的验证码很好,程序没法识别,至少是没法很容易地识别。 :mrgreen:
本帖最后由 liuxingyuyuni 于 2013-04-09 09:11 编辑
回复 5# fender0107401
我好像没有看到“数据备份”一说?
有了备份,吃的好,睡的也香了................
安不安全的事情也不用考虑了...................... 回复 6# liuxingyuyuni
数据备份也很重要,备份必须形成制度,按时备份。
一提到安全,脑袋就直接蹦出备份两个字,在学习系统这方面的一些知识之后了解到没有什么比养成良好的备份习惯更重要了。 安全是门大学问,想做到绝对安全比较难,
硬件安全,网络安全就不说了。
就php而言,要屏蔽非安全操作函数,防止注入,防止代码本身有权限泄露或业务漏洞,屏蔽恶意用户,垃圾请求等 ,记录日志。另外代码水平、质量也能体现安全程度,比如一个循环里面重复调用sql的代码让mysql如何承受?
页:
[1]
2