在做购物网店和外贸企业站的维护时,考虑到一下几点的网站安全:
1. PHP功能
a: 全局变量注册 ,带来的安全隐患: 1, 它会增加安全漏洞的数量 2,隐藏了数据的来源,与开发者需要随时跟踪数据的责任相违背 。 建议register_globals 关闭,用$_GET,$_POST取而代之,虽然不怎么方便,但是消除了安全隐患。
b:错误报告 。 建议这样设置,
ini_set(‘error_reporting’, E_ALL | E_STRICT); //错误报告级别
ini_set(‘display_errors’, ‘Off’); //关闭错误报告提示
ini_set(‘log_errors’, ‘On’); //错误报告日志
ini_set(‘error_log’, ‘/usr/local/apache/logs/error_log’);//出错日志保存路径
2. 原则
a. 深度防范 b.最小权限 c. 尽量做到程序简单化 d.暴露最小化
3.方法
a.平衡风险与可用性 b.跟踪数据 c.过滤输入(1.识别输入2过滤输入3区分已过滤及被污染数据) d。输出转义(识别输出,输出转义,区分已转义和未转义数据)
4.表单及URL
a .语义URL攻击 b.文件上传攻击 c.跨站脚本攻击 d.跨站请求伪造(用验证码可以降低) e.欺骗表单提交(正确过滤输入)
f.HTTP请求欺骗(输入过滤)
5.数据库安全
a 权限暴露(不用文本文件存储敏感数据)及SQL注入(对输入数据进行过滤,对存储到数据库的数据进行转义,两者发生SQL注入攻击的必要条件 )
6. 会话与 Cookies
cookie盗窃、会话数据暴露、会话固定、及会话劫持
总结: 写一个安全的PHP站点,做好,过滤输入(1.识别输入2过滤输入3区分已过滤及被污染数据) 输出转义(识别输出,输出转义,区分已转义和未转义数据) 这两点,可以防范90%的攻击。
参考资料:PHP安全基础