PHP安全基础

1、你的程序安全吗?
  1)有没有安全意识,平常编码习惯
  2)是否有被攻击或者注入

结论:安全是永恒的话题,没有绝对的安全,需要我们在平常的工作中养成良好的编码习惯和安全意识,需要不断的吸收最新的安全知识,并作相应的防范措施。

   就PHP来看,主要碰到的有几大类:
     1)服务器安全配置和PHP自身问题
     2)SQL注入
     3)XSS跨站脚本攻击
     4)编码安全意识

2、安全问题都是可以防范的,但是很难覆盖所有的方面,只要在平常编码中注意安全问题,才能较少甚至基本杜绝安全问题
2.1 服务器安全配置和PHP自身问题
    1)服务器自身漏洞和运行权限、共享权限(/tem/sess..)等
    2)目录浏览
    3)文件浏览、执行权限(gif89a)
    4)Cookie/Session暴露与会话劫持
    5)PHP的Register Globals
    6)系统函数/eval等和用户提交的数据
    7)数据过滤与输出(引号问题…)
    8)错误报告(生产环境一定要记得关闭)
    9)其它(文件包含-路径、来源判断、…)
2.2 SQL注入
    程序中最经常遇到的问题:
    1)“靠山靠”不住,摆脱依赖引号处理或魔术引号(magic_quotes_gpc)
    2)Mysql系统函数问题(其它的DBMS类似)
    3)避免在查询语句中使用“不可靠”数据
    4)数据类型预先处理
    5)使用mysql_real_escape_string或mysql_escape_string
2.3 XSS跨站脚本攻击
   跨站脚本攻击主要有2类:
    1)HTML/JS
    2)CSS(expression) – CSS中的Javascript
    攻击分类:
    1)来自内部的攻击,利用自身
    2)来自外部的攻击,外部JS、iframe等

   跨站攻击的危害其实也不小,简单的列一下它能做什么:
       得到web shell权限、帐号等隐私数据、挂马、弹广告等
3、如何防范?
    1)保护账号,避免弱口令(基本)
    2)服务器和PHP安全配置,并且要保持更新
    3)养成良好的安全编码意识,培养安全意识
    4)不要为了方便或者省时间留下安全隐患
    5)任何输入数据都是不可靠的,都需要经过处理
    6)输出页面时需要考虑是否有影响
    7)重要数据不要保存在客户端
    8)避免理所当然的精神,习惯误区
    9)经常检查、测试你的系统或者程序

   安全是永恒的话题,也是程序员必须面对的重要问题之一。
   此篇介绍的不是安全的全部,唯入门而已,主要是为大家开启安全之门。