1. 运营一个电子商务网站
    1. 电子商务网站要实现什么目标
    2. 考虑电子商务网站的类型
      1. 发普通资讯文章
        1. 无法提供重要的信息
        2. 乏味的介绍
        3. 不能响应网站产生的反馈
        4. 网站信息过时
        5. 无法获知网站的成功之处
      2. 接收产品或服务的订单
        1. 没有回答的问题
        2. 信任
        3. 易用性
        4. 兼容
      3. 提供服务和数字产品
      4. 为货物或服务的增值
      5. 减少成本
    3. 理解风险和威胁
      1. 网络黑客
      2. 不能招揽足够的生意
      3. 计算机硬件故障
      4. 电力通信网络或运输故障
      5. 对派送服务的依赖
      6. 广泛的竞争
      7. 软件错误
      8. 不断变化的政府政策和税收
    4. 选择一个策略
  2. 电子商务的安全问题
    1. 信息的重要程度
    2. 安全威胁
      1. 机密数据的泄露
      2. 数据丢失和数据损坏
      3. 数据修改
      4. 拒绝服务
      5. 软件错误
      6. 否认
    3. 建立一套安全策略
    4. 易用性.性能.成本和安全性
    5. 身份验证原则
      1. 密码
      2. 数字签名
      3. 生物鉴定
      4. 涉及硬件操作
    6. 在站点应用身份验证
    7. 加密技术基础
      1. 私有密钥加密
      2. 公有密钥加密
      3. 数字签名
      4. 数字证书
    8. 安全的Web服务器
      1. apache上使用ssl
      2. 好像也有什么加密过程.具体百度
    9. 审计与日志记录
      1. UNIX
    10. 防火墙
    11. 备份数据
    12. 自然环境的安全性
  3. Web应用的安全
    1. 处理安全性问题的策略
      1. 刚开始做网站就定位好安全问题
      2. 安全性和可用性之间的平衡
      3. 安全监视
      4. 基本方法
    2. 识别所面临的威胁
      1. 访问或修改敏感数据
      2. 数据丢失或破坏
      3. 拒绝服务Dos攻击
      4. 恶意代码注入
      5. 服务器被攻破
    3. 了解与我们"打交道"的用户
      1. 黑客破解人员
      2. 受影响机器的未知情用户
      3. 对公司不满的员工
      4. 硬件被盗
      5. 我们自身麻痹大意
    4. 代码的安全性
      1. 过滤用户输入
        1. 先过滤trim空格
        2. 再addslashes过滤转义
        3. 再考虑表格单选多选防止有人恶意更改
        4. 所提交数据库的所有值都必须一一用if判断检查
        5. mabt;delete from user;
      2. 两种方法防止这种安全突破
        1. 过滤并转义所有通过sql语句发送给数据库的字符串
        2. 确认所有输入都符合期望值
        3. mysqli扩展新增加允许单个查询的安全性优点
          1. 如果单个查询的话
          2. 如果多个查询的话
      3. 转义输出
        1. htmlspecialchars()
        2. htmlentities()
        3. 都有第二个参数
          1. ENT_COMPAT
          2. ENT_QUOTES
          3. ENT_NOQUOTES
      4. 代码组织
        1. 确保web服务器只允许请求php和html文件
        2. php.ini中allow_url_fopen选择打开
      5. 代码自身的问题
      6. 文件系统因素
        1. 写到硬盘上的任何文件是否可以被其他人看到?
        2. 如果给用户开放一个功能.他们能否看到其他我们不希望他们看到的内容文件?
      7. 代码稳定性和缺陷
      8. 执行引号和exec
        1. 执行引号.反引号中``
        2. exec与上面类似
    5. Web服务器和PHP的安全性
      1. 保持软件的更新
      2. 查看php.ini文件
      3. web服务器配置
        1. apache http服务器
        2. micrasoft iis
      4. 网上买的虚拟主机空间之类
        1. 选择服务前查看他们的支持列表
        2. 寻找一个能够完整目录结构而不是文档根目录的主机服务
        3. 尝试联系客户获取php.ini的设置值
        4. 查看所有软件版本phpinfo()
        5. 售后等等方面的考虑
    6. 数据库服务器的安全性
      1. 用户和权限系统
      2. 发送数据至服务器
      3. 连接服务器
        1. 使用ssl加密连接数据库
        2. 确保mysql在任何时候能够处理的连接数大于apache服务器和php的连接数
        3. 不要用root来运行数据库.最少权限原则
    7. 保护网络
      1. 安装防火墙
      2. 使用隔离区域DMZ
      3. 应对Dos和DDos分布式拒绝服务攻击
    8. 计算机和操作系统的安全性
      1. 保持操作系统的更新
      2. 只运行必须的软件
      3. 服务器的物理安全性
    9. 灾难计划
      1. 危险
        1. 中美战争炮弹来了
        2. 开发团队旅游出车祸死啦
        3. 主机房子失火啦
        4. 黑客或员工想要摧毁在服务器上的所有数据
      2. 亡羊补牢的方法
        1. 确保数据每天备份且保存在其他设备上
        2. 写文档记录如何重建服务器并恢复数据
        3. 拥有web应用所必须源代码的副本
        4. 大型团队禁止做一辆车或一架飞机
        5. 运行自动化工具确认服务器正常运行.有"应急措施"
        6. 与硬件供货商确定能够在数据中心摧毁时立即提供新的硬件
  4. 使用php+mysql实现身份验证
    1. 识别访问者
    2. 实现访问控制
      1. 保存密码
      2. 密码的加密
      3. 保护多个网页
    3. 使用基本身份验证
      1. 基本身份验证
      2. 摘要身份验证
      3. ssl和数字证书结合起来实现基本身份验证
    4. 在php中使用基本身份验证
      1. ie类似路由登录页面
      2. firefox类似路由登录
    5. 在Apache的.htaccess文件中使用基本身份验证
      1. .htaccess文件
      2. .htpass文件
      3. httpd.conf文件
    6. 使用mod_auth_mysql身份验证
      1. 安装mod_auth_mysql模块
      2. 使用mod_auth_mysql
    7. 创建自定义身份验证
  5. 使用PHP和MySQL实现安全事务
    1. 提供安全事务处理
      1. 用户机器
        1. cURL软件库
        2. 用js做数据验证不安全
        3. 需要保留的数据或文件
      2. internet
        1. 无论如何传输信息.无法保密并在传输过程中可能会被修改
        2. 在传输前数字签名该信息.确保不会被修改
        3. 在传输前加密信息.确保其保密并不会被修改
        4. 信息非常重要可以使用其他方式分发信息
      3. 我们的服务器
    2. 使用SSL加密套接字层
    3. 屏蔽用户的输入
      1. 使用addslashes()函数转义字符
      2. 在php.ini中开启magic_quotes_gpc魔法转义
      3. 当传递用户数据给system()或者exec()时
      4. 使用strip_tags()过滤html和php标记
      5. 使用htmlspecialchars()
    4. 提供安全储存
      1. html或php文件
      2. 与脚本相关的数据
      3. MySQL数据
    5. 确定是否需要储存信用卡号码
    6. 在PHP中使用加密技术