一 代码层
1.黑名单 : 不允许 mysql 关键字:select insert update delete等.....
/** * * * @param 参数数据类型 参数变量 参数说明 * * @return 返回数据类型 返回说明 * Date: 2021/8/10 Time: 17:38 * @author owen <邮箱> */ public function check_blacklist($value) { #黑名单 $blacklist=array( 'select', 'update', 'delete', 'insert', '<script>', '</script>', "!", "--", "<", ">", '"', "'", ";", "=", "alert", "truncate", "drop", "is", "null", "or", "not", ); foreach ($blacklist as $k=>$v){ $value= strtolower($value); if(strpos($value,$v) !== false){ $data = array( 'code' => 10110, 'msg' => "非法关键字:".$v ); exit(json_encode($data)); } } }
2.白名单 : 允许通过的字符
3.敏感字符过滤 单引号 双引号等...
3.1 HTML Purifier 作用:防止XSS攻击。 http://htmlpurifier.org/
4.使用框架安全操作: CI的AR(Active Record)的数据库CURD方式 escape_str() escape_like_str()转义操作
5.规范输出: 屏蔽SQL 报错信息 代码报错输出 服务器信息屏蔽
二 配置层
使用utf-8 GBK会产生注入
# magic_quotes_gpc 就算了,已经废弃,不建议使用
三 物理层
WAF web应用防火墙(常规过滤特殊字符, 但也可以绕过, 只是基本的一种防御手段,不是万能)
数据库审计 :数据库审计(简称DBAudit)以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据库行为的记录、分析和汇报,来帮助用户事后生成合规报告、事故追根溯源,同时通过大数据搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
云防护 云WAF
IPS(入侵防御系统) 防御网络攻击
安全防护需要结合以上几个层面防御。 而不是单单某一层面进行防御。