PHP开发规范标准

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1、编写目的 (4)

2、整体要求 (5)

3、安全规范 (6)

3.1、包含文件 (6)

3.1.1、命名规则 (6)

3.1.2、存放规则 (6)

3.2、安全规则 (7)

3.3、一些针对PHP的规则 (8)

3.4、其它处理规则 (8)

3.4.1、输入参数处理 (8)

3.4.2、操作大HTML文本 (8)

4、编码规范 (9)

4.1、命名规范 (9)

4.1.1、变量命名 (9)

4.1.2、类命名 (10)

4.1.3、方法或函数 (10)

4.1.4、缩写词 (11)

4.1.5、数据库表名 (11)

4.1.6、数据库字段 (11)

4.2、书写规则 (11)

4.2.1、代码缩进 (12)

4.2.2、大括号{}书写规则 (12)

4.2.3、小括号()和函数、关键词等 (13)

4.2.4、=符号书写 (13)

4.2.5、if else swith for while等书写 (13)

4.2.6、类的构造函数 (13)

4.2.7、语句断行 (14)

4.2.8、数字 (14)

4.2.9、判断 (15)

4.2.10、避免嵌入赋值 (15)

4.2.11、错误返回检测规则 (16)

4.3、程序注释 (16)

4.3.1、程序头注释块 (16)

4.3.2、类的注释 (17)

4.3.3、函数和方法的注释 (18)

4.3.4、变量或者语句注释 (18)

4.4、其它规范 (19)

4.4.1、PHP代码标记 (19)

4.4.2、程序文件名、目录名 (19)

4.4.3、PHP项目通常的文件目录结构 (19)

4.4.4、PHP和HTML代码的分离问题 (20)

4.4.5、PHP项目开发中的程序逻辑结构 (20)

5、特定环境下PHP编码特殊规范 (21)

5.1、变量定义 (21)

5.2、引用的使用 (21)

5.3、变量的输入输出 (22)

1、编写目的

为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。开发团队根据自己的实际情况,可以对本规范进行补充或裁减。

1、程序员可以了解任何代码,弄清程序的状况;

2、新人可以很快的适应环境;

3、防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯;

4、防止新接触PHP的人一次次的犯同样的错误;

5、在一致的环境下,人们可以减少犯错的机会;

6、程序员们有了一致的敌人;

2、整体要求

技术部php开发规范将参照PEAR的规范,基本采用PEAR指定的规范,

在其基础上增加、修改或删除部分适合具体开发环境的规范。本规范只针对PHP开

发过程中编码的规范,对于PHP开发项目中文件、目录、数据库等方面的规范,将

不重点涉及。

本规范包含了PHP开发时程序编码中命名规范、代码缩进规则、控制结构、函数调用、函数定义、注释、包含代码、PHP标记、文件头的注释块、CVS标记、URL样例、常量命名等方面的规则。

3、安全规范

当我们尝试编码时,很多时候不知道如何去让自己的代码变得安全一点,因为我们缺乏安全常识,安全常识的规范可以帮你杜绝一些日常的菜鸟黑客的攻击,却不能阻止骨灰级专家们的凌厉攻势,所以更高深的安全我们还得从其他途径学习。

3.1、包含文件

PHP文件的包含在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

3.1.1、命名规则

提取出来具有通用函数的包含文件,文件后缀以 .inc 来命名,表明这是一个包含文件。

如果有多个 .inc 文件需要包含多页面,请把所有 .inc 文件封装在一个文件里面,具体到页面只需要包换一个 .inc 文件就可以了。

如: xxx_session.inc 、 xxx_comm.inc 、 xxx_setting.inf 、myssql_db.inc 。

把以上文件以以下方式,封装在 xxx.basic.inc 文件里面:

注意:

是否需要封装到一个文件,视情况而定,如果每个 inc 的功能是分散到不同的

页面使用的话,就不建议封装。

3.1.2、存放规则

一般包含文件不需要直接暴露给用户,所以应该放在 Web Server 访问不到的目录,避免因为配置问题而泄露设置信息。

3.2、安全规则

请参考产品安全检查表。

输入和输出:

检查是否做了HTML代码的过滤

可能出现的问题:如果有人输入恶意的HTML代码,会导致窃取cookie, 产生恶意登录表单,和破坏网站。

检查变量做数据库操作之前是否做了 escape

可能出现的问题:如果一个要写入查询语句的字符串变量包含了某些特殊的字符,比如引号(',")或者分号(;) 可能造成执行了预期之外的操作。

建议采用的方法:使用 mysql_escape_string() 或实现类似功能的函数。

检查输入数值的合法性

可能出现的问题:异常的数值会造成问题。如果对输入的数值不做检查会造成不合法的或者错误的数据存入UDB、存入其它的数据库或者导致意料之外的程序操作发生。

举例:如果程序以用户输入的参数值做为文件名,进行文件操作,恶意输入系统文件名会造成系统损毁。

核实对cookie的使用以及对用户数据的处理

可能出现的问题:不正确的cookie使用可能造成用户数据泄漏。

访问控制

对内部使用的产品或者供合作方使用的产品,要考虑增加访问控制。

logs

确保用户的保密信息没有记在log中(例如:用户的密码);

确保对关键的用户操作保存了完整的用户访问记录。

https

对敏感数据的传输要采用https。

相关文档
最新文档