1.2.原则

你可以列出一大堆开发安全应用的原则,但在本处我选取了我认为对PHP开发者最重要的几个原则。

这些原则有意的写得抽象和理论化。这样做的目的是帮助你从大处着眼,不拘泥于细节。你需要把它们看成是你行动的指南。

1.2.1. 深度防范

深度防范原则是安全专业人员人人皆知的原则,它说明了冗余安全措施的价值,这是被历史所证明的。

深度防范原则可以延伸到其它领域,不仅仅是局限于编程领域。使用过备份伞的跳伞队员可以证明有冗余安全措施是多么的有价值,尽管大家永远不希望主伞失效。一个冗余的安全措施可以在主安全措施失效的潜在的起到重大作用。

回到编程领域,坚持深度防范原则要求您时刻有一个备份方案。如果一个安全措施失效了,必须有另外一个提供一些保护。例如,在用户进行重要操作前进行重新用户认证就是一个很好的习惯,尽管你的用户认证逻辑里面没有已知缺陷。如果一个未认证用户通过某种方法伪装成另一个用户,提示录入密码可以潜在地避免未认证(未验证)用户进行一些关键操作。

尽管深度防范是一个合理的原则,但是过度地增加安全措施只能增加成本和降低价值。

1.2.2. 最小权限

我过去有一辆汽车有一个佣人钥匙。这个钥匙只能用来点火,所以它不能打开车门、控制台、后备箱,它只能用来启动汽车。我可以把它给泊车员(或把它留在点火器上),我确认这个钥匙不能用于其它目的。

把一个不能打开控制台或后备箱的钥匙给泊车员是有道理的,毕竟,你可能想在这些地方保存贵重物品。但我觉得没有道理的是为什么它不能开车门。当然,这是因为我的观点是在于权限的收回。我是在想为什么泊车员被取消了开车门的权限。在编程中,这是一个很不好的观点。相反地,你应该考虑什么权限是必须的,只能给予每个人完成他本职工作所必须的尽量少的权限。

一个为什么佣人钥匙不能打开车门的理由是这个钥匙可以被复制,而这个复制的钥匙在将来可能被用于偷车。这个情况听起来不太可能发生,但这个例子说明了不必要的授权会加大你的风险,即使是增加了很小权限也会如此。风险最小化是安全程序开发的主要组成部分。

你无需去考虑一项权限被滥用的所有方法。事实上,你要预测每一个潜在攻击者的动作是几乎不可能的。

1.2.3. 简单就是美

复杂滋生错误,错误能导致安全漏洞。这个简单的事实说明了为什么简单对于一个安全的应用来说是多么重要。没有必要的复杂与没有必要的风险一样糟糕。

例如,下面的代码摘自一个最近的安全漏洞通告:

CODE:

<?php

$search = (isset($_GET['search']) ? $_GET['search'] : '');

?>

这个流程会混淆$search变量受污染*的事实,特别是对于缺乏经验的开发者而言。上面语句等价于下面的程序:

CODE:

<?php

$search = '';

if (isset($_GET['search']))

{

$search = $_GET['search'];

}

?>

上面的两个处理流程是完全相同的。现在请注意一下下面的语句:

$search = $_GET['search'];

使用这一语句,在不影响流程的情况下,保证了$search变量的状态维持原样,同时还可以看出它是否受污染。

* 译注:受污染变量,即在程序执行过程中,该变量的值不是由赋值语句直接指定值,而是来自其它来源,如控制台录入、数据库等。

1.2.4. 暴露最小化

PHP应用程序需要在PHP与外部数据源间进行频繁通信。主要的外部数据源是客户端浏览器和数据库。如果你正确的跟踪数据,你可以确定哪些数据被暴露了。Internet是最主要的暴露源,这是因为它是一个非常公共的网络,您必须时刻小心防止数据被暴露在Internet上。

数据暴露不一定就意味着安全风险。可是数据暴露必须尽量最小化。例如,一个用户进入支付系统,在向你的服务器传输他的信用卡数据时,你应该用SSL去保护它。如果你想要在一个确认页面上显示他的信用卡号时,由于该卡号信息是由服务器发向他的客户端的,你同样要用SSL去保护它。

再谈谈上一小节的例子,显示信用卡号显然增加了暴露的机率。SSL确实可以降低风险,但是最佳的解决方案是通过只显示最后四位数,从而达到彻底杜绝风险的目的。

为了降低对敏感数据的暴露率,你必须确认什么数据是敏感的,同时跟踪它,并消除所有不必要的数据暴露。在本书中,我会展示一些技巧,用以帮助你实现对很多常见敏感数据的保护。

php 安全基础 第一章简介 原则相关推荐

  1. C++ API 设计 06 第一章 简介

    第一章 简介 1.1 应用程序编程接口是什么? 应用程序编程接口(API)提供对问题的一个抽象,并说明客户端如何与实现这个问题的解决方案的软件组件来进行交互. 这些组件本身通常作为一个软件库发布,允许 ...

  2. 我国第一台晶体管计算机缺点,计算机基础第一章ppt课件.ppt

    计算机基础第一章ppt课件 入门篇 前言 如何学会学习.喜欢学习? 重点: 计算机系统的组成及工作原理 计算机中数据的表示及运算 难点: 1.计算机中硬件的组成及各组成部分的功能 2.计算机软件系统的 ...

  3. 计算机网络应用基础第一章试题,计算机网络应用基础第一章测试题

    计算机网络应用基础第一章测试题 计算机网络应用基础(第一章)测试题 一.填空题(每题3分,共15分) 1.计算机网络是和相结合的产物. 2.计算机网络分为和两个部分. 3.OSI基本构造技术是:. 4 ...

  4. 电子计算机的基本结构基于存储程序思想是由,计算机应用基础第一章复习题

    计算机应用基础 第一章复习题 一.单项选择题 1 第一台电子计算机是 1946 年在美国研制成功的,该机的英文缩写是() A.ENIAC B.EDVAC C.EDSAC D.MARK- Ⅱ 2.通常人 ...

  5. 计算机应用基础自学手写笔记,计算机应用基础第一章笔记.docx

    计算机应用基础第一章笔记 1.计算机工具的变迁 2.计算机的发展过程 3.冯.诺依曼计算机的工作原理 4.计算机系统的硬件和软件组成 5.计算机的性能指标 6.影响计算机的性能因素 7.数据在计算机中 ...

  6. 计算机文化基础第一章知识点题,计算机文化基础第一章习题与答案

    <计算机文化基础第一章习题与答案>由会员分享,可在线阅读,更多相关<计算机文化基础第一章习题与答案(8页珍藏版)>请在人人文库网上搜索. 1.计算机文化基础第一章习题与答案1 ...

  7. 人工智能第一章——简介(附上有用资料和链接)

    文章目录 摘要 前言 一.人工智能及智能认识 第二阶段 第三阶段 第四阶段 第五阶段 三.小结 四.相关资料 备注 参考文献 摘要 本文会讲明白 1)什么是人工智能(AI):2)什么是智能(intel ...

  8. 任何一台计算机硬件系统都是油,大学生计算机基础第一章.ppt

    <大学生计算机基础第一章.ppt>由会员分享,可在线阅读,更多相关<大学生计算机基础第一章.ppt(28页珍藏版)>请在人人文库网上搜索. 1.主讲教师:吴婷婷 邮箱:,大学计 ...

  9. 计算机网络基础 第一章

    计算机网络基础 第一章 计算机网络概述 1.1 计算机网络的产生与发展 1.1.1 面向终端的计算机通信网 20世纪50年代到20世纪60年代末,计算机技术与通信技术初步结合 1.1.2 以共享为目标 ...

最新文章

  1. 如何让vue项目打包出来之后更加小巧?
  2. 现在可以插入MSN表情了
  3. 绝对自回归模型(或将解决标注问题)
  4. Siverlight5新功能/改进总结
  5. jQuery 库 - 特性
  6. SQL查询的安全方案
  7. No.3小白的HTML+CSS心得篇
  8. Android 小组件完整案例
  9. 磁盘blk_update_request: I/O error
  10. 常见的74系列集成电路
  11. c语言读grd文件,基于GDAL库,读取.grd文件(以海洋地形数据为例)C++版
  12. 黑马主播单场带货千万,抖音直播市场还有哪些新机遇?
  13. php数组函数array flip,PHP array_flip() 函数
  14. 【caffe2从头学】:3.3.Brewing Models(快速构建模型)
  15. .net framework 4.0 在 VS2010 安装目录下位置 dotNetFx40_Full_x86_x64.exe在磁盘哪个目录?...
  16. SSM框架配置文件整理
  17. Xilinx ZYNQ开发板资料共享
  18. java 跳格子_HDU 1208 跳格子题(很经典,可以有很多变形)
  19. K8S (kubernetes)
  20. [Win10] HM 软件安装

热门文章

  1. python中->是什么意思
  2. 生命如何在复杂环境中生存?信息、调控和几何结构的交织
  3. 人工智能学派之间的「联姻」——Yoshua 新作居然用DL「复活」了符号主义
  4. 特斯拉Autopilot事故频发,真正意义上自动驾驶还要多久问世?
  5. 低调!中国北斗核心卫星部署完成,开启“全球时代”!超越GPS指日可待
  6. 10年内,19个关键技术将改变世界
  7. 有没有哪些数学猜想是验证到很大的数以后才发现是错的?
  8. 谷歌公布72位量子比特处理器,吹响量子霸权冲锋号
  9. “误用姓名”,前哈佛教授炮轰中国学者“碰瓷”:“整件事都让人讨厌!
  10. 12W人编程能力暴增!网友:服气!选择比天赋更重要!