首发于安全客:ThinkPHP安全开发规范 - 安全客,安全资讯平台 常见安全问题 目前ThinkPHP在国内中小型开发场景非常流行,但由于漏洞频发,主要集中在SQL注入、信息泄露(debug模式打开...另外由于ThinkPHP版本比较多,实际业务多用3.2.3或5.1,因此下面主要从这两个版本来介绍ThinkPHP开发过程中常见的安全问题。...安全规范 针对以上常见的安全漏洞以及ThinkPHP一年爆几次漏洞的现状,建议按照以下规范合理使用。 部署 务必把你的WEB根目录指向public目录而不是应用根目录,并且不要随意更改入口文件的位置。...但不代表绝对安全,如果你缺乏良好的代码规范,仍然有可能被利用。...参考 ThinkPHP从漏洞挖掘到安全防御 ThinkPHP3.2.3安全手册 ThinkPHP5.1安全手册 ThinkPHP5安全规范指引 开发PHP商城要注意的一些常见安全问题 CI框架安全过滤
类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php ; 类的命名空间地址和所在的路径地址一致...类所在的路径应该是 Application/Home/Controller/UserController.class.php ; 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP...UserController 类的文件命名是UserController.class.php , InfoModel类的文件名是 InfoModel.class.php , 并且不同的类库的类命名有一定的规范...,可以根据团队规范来进行; ThinkPHP的模板文件默认是以 .html 为后缀(可以通过配置修改); 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user...开发建议 遵循框架的命名规范和目录规范; 开发过程中尽量开启调试模式,及早发现问题; 多看看日志文件,查找隐患问题; 养成使用I函数获取输入变量的好习惯; 更新或者环境改变后遇到问题首要问题是清空Runtime
建议统一异常处理,不仅要在日志中打印异常堆栈信息,还得给前端统一格式的响应信息,而不是前端页面直接提示给用户500
首发博客地址[1] 系列文章地址[2] ---- 引自《阿里规约》的开头片段: 现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?...2)很多前端开发人员写选择器链的时候不使用 直接子选择器(注:直接子选择器和后代选择器的区别)。有时,这可能会导致疼痛的设计问题并且有时候可能会很耗性能。然而,在任何情况下,这是一个非常不好的做法。...(一) Vue 编码基础 vue 项目规范以 Vue 官方规范(https://cn.vuejs.org/v2/style-guide/)[3] 中的 A 规范为基础,在其上面进行项目开发,故所有代码均遵守该规范...命名规范采用KebabCase命名规范且与 component 组件名保持一致!...首发博客地址: https://blog.zysicyj.top/ [2] 系列文章地址: https://blog.zysicyj.top/categories/技术文章/后端技术/系列文章/开发规范
七、注释规约 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/*内容/ 格式,不得使用 // xxx 方式。
, 比如ad_left01.gif || btn_submit.gif; 在保证视觉效果的情况下选择最小的图片格式与图片质量, 以减少加载时间; 尽量避免使用半透明的png图片(若使用, 请参考css规范相关说明...760X100,750X120,468X60,468X95,728X90,585X140 次级页的pip尺寸360X300,336X280 游标:100X100或120X120 LOGO的国际标准规范
该规范主要参考《谷歌的代码评审指南》 ?...一、开发者 不应该在 CI 内同时包含主要风格的改动与其他代码的修改,这样会导致难以看出 CI 到底做出什么改动 格式化 commit message 优势: 提供更多的历史信息,方便快速浏览; 可以过滤某些...commit 的详细描述,可以分成多行 footer 部分只用于两种情况:1、不兼容变动;2、关闭issue 扩展:如果你使用 IDEA 进行编码,可以是使用 git commit template 插件来规范每次提交的...未来其他开发者接手时,代码是否易于理解与易用? 测试:代码是否经过正确且设计良好的自动化测试 命名:开发人员是否为变量、类、方法等选择了明确的名称? 注释:注释是否清晰有效?...风格:代码是否遵循了代码开发规范 文档:开发人员是否也同步更新了相关文档 在评论前加上“nit:”这样的前缀,表明这是一个优化性的建议,可以不影响本次上线 应在一个工作日内完成评审,并给出意见 评价只针对代码和具体业务流程
编写目的 本文描述了 JAVA 开发中的有关包、类、接口、方法、实例变量、变量和常量的命名规范,用于规范 JAVA 编程过程中的命名和代码书写规范。 1. ...程序代码作为重要的核心内容,有必要遵循统一的书写和编码规范; 2. 在程序设计总体方向上,有必要遵循统一的规范要求进行设计; 3. 遵循规范的要求,能够有效的减少编码过程中的错误; 4. ...为了有效的提高程序的可维护性,编码方式需要遵循统一的规范。 适用范围 适用于开发组基于 JAVA 开发的项目。...【推荐】在设计评审阶段,开发人员需要和测试人员一起确定单元测试范围,单元测试最好覆盖所有测试用例(UC)。 14. ...本文是开发手册,凡是本文内容都是与开发同学强相关的。 l 单元测试代码是多余的。汽车的整体功能与各单元部件的测试正常与否是强相关的。 l 单元测试代码不需要维护。
会响应对应路由转发过来的 get 请求 func (c *Controller) Get() { ... } 大写字母开头的方法以为着是可供调用的公共方法,如果你的方法想只在本包内掉用,请以小写字母开发
那阅读起来就是苦不堪言,所以,一些基本的开发规范是必须的,是为了自己方便阅读代码,也方便他人阅读修改代码。...文档规范 HTML5的文档类型声明:<!...修改其它的内建对象比如 Function.prototype,虽危害没那么大,但始终还是会导致在开发过程中难以 debug 的问题,应当也要避免。...'valid' : 'invalid' ---- JSHint 在js规范中,有很多规范都是样式上的规范而不是逻辑上的规范,比如尽量使用=== 而不是==,我们可以使用JSHint或者JSLint,Javascript...---- 使用子选择器 很多前端开发人员写选择器链的时候不使用 直接子选择器(注:直接子选择器和后代选择器的区别)。 有时,这可能会导致疼痛的设计问题并且有时候可能会很耗性能。
以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id
使用不带BOM的UTF-8编码 在HTML中指定编码<meta charset="utf-8">; 无需使用@charset指定样式表编码,它默认为UTF-...
这是近期在公司做的一次分享,这几年的互联网开发,算比较幸运,团队一直践行完善这套规范,没有太多的阻碍,得益于公司整体氛围,以及团队对规范和写文档的不排斥,形成了良好的开发习惯 在这次分享后,发现好些大...V也在谈规范,写文档,估计是前段时间阿里又发布了开发手册(华山版),借鉴于一下,对一些细节做些补充,整理出来 整体流程 ?...当然瀑布模型也有天生的缺点:每个阶段的严格性,缺乏灵活性,而现实需求却是经常变化的 所以单纯地选择哪个模型是不可取的,只能根据实际情况出发,为业务提供最大化服务 ---- 细则规范 很多人都在要规范,但好像从没思考过为什么需要规范...无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶?...对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。
private TextView mSelectCountryNameTv; private TextView mSelectCountryCodeTv; 暂时先写这些,后面补上,我写的不是标准规范...,大家都可以自己制定一套 适合自己团队用的规范。
如何规范你的Git commit? 约定式提交 1.0.0
所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小写敏感,名称要见名知意,最好不超过32字符)禁止在数据中存储图片,文件二进制数据(使用文件服务器)禁止在线上做数据库压力测试禁止从开发环境
Git 开发规范分支管理策略git flowVincent Driessen 于2010年提出的分支模型,可以说是最早、最全面的分支管理策略了,后续出现的分支管理策略基本都是基于 git flow 进行修改的...这里先要明确几个基本概念master/main:主分支,最终所有需要发布的有效代码都会合并到该分支develop:开发分支,所有开发内容都是基于 develop 分支创建 feature 分支feature...hotfix:热修复分支,线上出了紧急 bug,需要专门分支处理从上图可以看出,使用 git flow 开发步骤还是比较多的:从 develop 创建一个 feature 分支开发并自测完 feature...其实,总结下来,一个健全的开发团队的分支管理应该满足以下条件:有一个永远有效、能反应生产部署代码的分支,可以随时发布有一个能持续集成、体现开发进度的分支,能够帮助提早发现集成问题Commit Message...commit message 没有绝对的好坏,但是有相对的优劣,一个团队要遵守一致的填写规范。一个好的 commit message 应该要尽可能简洁、保留关键信息。
一、基础规范 1) 使用InnoDB存储引擎 2) 数据库字符集使用UTF8,校对字符集使用utf8_general_ci 3) 所有表、字段都尽量添加注释 4) 库名、表名、字段名使用小写字母...,禁止超过32个字符,须见名知意 5) 非唯一索引以 “idx_字段1_字段2” 命名,唯一索引必须以 “uniq_字段1_字段2” 命名 二、查询规范 1) SQL语句尽可能简单,大的SQL...IN 10) Where字句中同一个表的不同字段组合建议小于5组(否则考虑分表) 11) 禁止单条语句同时更新多个表 12) 事务要尽量简单,整个事务的时间长度不要太长 三、表设计规范...字段很难查询优化,NULL字段的索引需要额外空间,NULL字段的复合索引无效) 6) 表必须有主键,不使用更新频繁的列做主键、尽量不使用字符串列做主键,尽量使用非空的唯一自增键做主键 四、索引设计规范
一、命名规范 库名、表名、字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过...32; 库名、表名、字段名禁止使用MySQL保留关键字; 临时库、临时表名必须以tmp为前缀并以日期为后缀; 备份库、备份表名必须以bak为前缀并以日期为后缀; 二、基本规范 使用...utf8mb4( 5.5.3版本以上支持) 所有表都需要添加注释,单表数据量建议控制在1000万以内; 不在数据库中存储图片、文件等大数据; 禁止在线上做数据库压力测试; 禁止从测试、开发环境直连数据库...; 三、库表设计规范 禁止使用分区表 MySQL的分区表实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低的字段,分离冷热数据 用HASH进行散表,表名后缀使用十进制数,下标从...%前导的查询,如like“%xxx”,无法使用索引 不使用反向查询,如not in / not like 无法使用索引,导致全表扫描,全表扫描导致bufferpool利用降低 五、字段设计规范
本应用基于ThinkPHP的MVC(模型-试图-控制器)的方式来组织。在新建页面时必须遵循该设计模式。...: application->wap->controller->Index.php->index() index.html结构: JavaScript模块: 页面JavaScript模块化遵循AMD规范
领取专属 10元无门槛券
手把手带您无忧上云