当今较为常见的3种 web应用程序开发平台类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当今较为常见的3种 web应用程序开发平台类型相关的知识,希望对你有一定的参考价值。
适当描述一下。
Openbiz Cubi php开发框架这显然是一个高耦合性的框架的代表,有点让开发人员“拎包入住”快捷酒店一样的的感觉。Openbiz Cubi 是一个应用平台式的开发框架。虽然与众多更加耳熟能详的框架相比 Openbiz Cubi 仍然是一匹黑马,但是还是一个十分值得推荐的框架。它自身基于Zend Framework构建,但是拥有自己独特的基于元数据的 MVC 和 ORM 逻辑,并采用Smarty和PHP模板 作为主要UI的模板引擎,所以如果你是Zend框架的玩家,别担心,Openbiz Cubi的代码也会同样让你很容易上手。
它不同于其他传统意义上的PHP框架,它具有一个类似JAVA的元数据引擎, 可以通过XML的方式来“描述”大多数对象,甚至通过XML的描述就可以实现数据的CRUD(增删读改)这些操作。如果你的业务需求仅仅是要实现一些简单 的数据CRUD操作,你甚至不需要去写什么PHP代码,XML就可以全部搞定。而你的PHP功夫可以通过他的Plugin-Service方式用于集中在 实现某些特殊的业务逻辑上。
Openbiz Cubi目 前还有一个叫做 Openbiz Appbuilder 的超级好用的代码生成工具,对于还不熟Openbiz的XML元数据的开发人员来说,Appbuilder 绝对是一个可以帮助你快速上手的利器,他通过图形界面的生成向导来帮你自动创建数据对象、表单对象、嵌入式服务,甚至整个应用程序的雏形。 按Openbiz的官方介绍来说,你只需要思考清楚你的应用程序的业务逻辑,剩下的代码工作就交给Openbiz Appbuilder来帮你搞定吧。
CakePHP 开发框架
如果你仍然需要编写面向PHP4兼容的代码,CakePHP 将是一个非常不错的选择, 在PHP 4 & 5的MVC式框架列表里面,CakePHP都曾经是最流行的。它还提供了很多种途径的技术支持(讨论组、留言板、IRC等)还有优秀的教程。 CackePHP是个很容易上手的框架,但是你并不容易在短短几周的时间就完全掌握它。
Zend Framework框架
Zend Framework 是面对一些较有经验的开发者和从底层构建一些企业级应用程序而设计的。(例如:宣称面向企业应用而设计的 Openbiz Cubi 就是基于Zend Framework框架之上而构建的。)该框架是高度模块化的。这意味着你可以按你的实际需要来引用Zend的代码。有些函数库甚至可以很容的被提取出来 单独使用(例如Zend_Gdata,这也是个低耦合性的特点)使用Zend框架,你不必非要遵从它的MVC架构,(虽然你最好能这么做),并且它还提供 了许多内建的高级功能用于完成与现有的web服务整合,多语言化和实现单元测试这些任务。
CodeIgniter
CodeIgniter 是一个PHP5.2+ 的MVC框架,它体积小巧切具有丰富的文档资源。通常被称为“初学者框架”,因为它相对容易试用和较短的学习曲线,此外CodeIgniter也是十分灵 活和强大的。该框架拥有一个非常庞大的社区支持。并且在社区里面很容易找到大量的CI函数库,你可以大胆的梦想, 也许你正需要做的事情在社区的某个交流,某个人已经把它实现了。
Symfony
Symfony 是最古老的PHP框架之一(相信你从他的网站风格上也发现这一点了),他同样也是转为企业级Web应用程序而设计的。然而,对于他所能提供的所有动力和性 能而言,它只拥有很小的体积并且非常容易配置在大多数php的主机环境中。由于他的年头最长久,你会很容易找到许多关于Symfony的教程、书记等资 料,对于新手来说,这绝对是件好事儿。
Symfony使用命令行代码生成工具来为项目快速生成所需的代码,这种方式也许对于某些开发人员来说是前所未闻的(在那个年头,也许 吧。。。)然后,他可以帮助你在很短的时间里完成代码并是他们可以运行。Symfony的网站上手机了大量的教程和范例代码,来帮助你熟悉掌握他们。
Yii Framework
Yii 是一个高度模块化,高性能的PHP5框架,专门为了Web应用程序而开发。Yii采用了大量的命令行生成工具,让你可以快速的生成一些代码,因此,他最适 合于喜欢在命令行的黑窗口上敲敲打打的人。所有这些代码生成工具意味着你需要记住更多的命令和参数,但是一点你做到了,你会发现,它们将大大减少你所要花 费的时间来设置和配置你的应用程序。
这种开发方式 非常类似于Openbiz Appbuilder所提供的向导式的代码生成方式,最大的不同点是Yii是基于命令行去生成代码,Openbiz Appbuilder是在图形界面上生成代码。
ThinkPHP
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP 开发框架,遵循 Apache2 开源协议发布,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和 MVC 模式,融合了 Struts 的 Action 思想和 JSP 的 TagLib(标签库)、 RoR 的ORM映射和 ActiveRecord 模式, 封装了 CURD 和一些常用操作, 单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。
Yii Framework
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发
phalcon
Phalcon是一套实现MVC架构的高性能PHP应用程序框架。初始版本发布于2012年11月,开放源代码并基于BSD授权条款。与其他大部分的PHP框架不同,Phalcon是以扩充的方式以C语言所编写,因此Phalcon的执行速度高过其他PHP框架,并且消耗更少的资源,根据官方的测试,Phalcon是目前世界上速度最快的PHP框架之一。[1] 参考技术A web应用程序开发平台有很多种,不止3种吧。现在比较流行的WEB应用开发平台是无代码快速开发平台,象天纵智能开发平台,可以实现无代码快速开发,是软件开发人工智能化的代表作,以后人工智能也将在软件开发领域持续发力,发个语音指令电脑便可自动开发出一套软件的日子最终也是有可能到来的。 参考技术B 如java,.net,PHP比较常见的WEB开发平台,可了解一下
像开发平台如(myapps 、炎黄、普元、天纵等)
WEB在线开发myapps java开发平台,快速配置应用软件如OA,HR,采购管理系统,项目管理系统,生产管理系统,设备管理系统,销售管理系统等、
微服务架构,前后端分离,多租户模式,表单,视图,流程,报表,移动端等 参考技术C 软件开发平台按开发方式来分,包括代码型开发平台和配置型开发平台,代码型开发平台类似一个代码生成器,可以根据需要生成一套代码,然后在此代码上进行修改,减少开发人员工作量,如普元开发平台;配置型开发平台则是通配置业务参数进行软件开发,不生成源码,开发人员不需要懂编程语言,降低了开发难度,提高了开发速度,如天纵智能开发平台。按底层语言来分,又可以分JAVA和.NET,.NET的如天纵智能开发平台等,JAVA的如普元开发平台等。大家可以根据自己的项目特点和自己的编程功底做选择。
Web项目开发中常见安全问题及防范
计算机程序主要就是输入数据 经过处理之后 输出结果,安全问题由此产生,凡是有输入的地方都可能带来安全风险。根据输入的数据类型,Web应用主要有数值型、字符型、文件型。
要消除风险就要对输入的数据进行检查,对于Web应用来说,检查的位置主要是前端和后端。前端检查只能防止正常状况,没法防止通过工具、程序绕开前端检查直接把数据发送给后端。
输入检查
防止输入注入型攻击。所有的输入数据都要检查,除了前端检查外,为防止使用工具、程序绕开前端检查直接把数据发送给服务器,后端也要检查所有输入数据。
依据产品文档的要求进行合法性检查,数值型,手机号,时间,邮箱等。
检查文本型是否含控制字符,过滤掉控制字符
检查文本型的长度
Querystring中参数值字符串转义,使用urlencode函数处理
文件上传
防止文件注入型攻击。
1、文件上传目录设置成不可执行
2、判断文件类型。结合MIME type与文件扩展名,设置文件类型白名单。对于图片文件,可以利用图片库函数深层次检查是否真是图片。
3、重命名文件名。
4、文件服务器使用独立的域名。
输出转义
防止XSS(跨站脚本攻击)。向页面输出的文本型数据进行html encode(转义),即是将一些html中的特殊字符转义成普通字符,比如 & 转义成 & ,< 转义成 <,\'与"都要转义。对应的函数:javascriptencode,php的htmlentities。
同理xml数据包里的字符串值使用xmlencode,json数据包的字符串值使用jsonencode转义。
XSS处理
XSS的本质是HTML注入,用户输入的数据被当成Html代码执行了。
1、cookie使用HttpOnly限制
使得在客户端的js代码不能读取cookie值,但是不能防止从HTTP header里得到cookie值。
2、输出文本HTML转义
对网页上显示的文本内容使用HtmlEncode转义。js函数:OWASP ESAPI中的encodeCharacter。其它的如xmlencode、jsonencode等转义函数。
3、检查输入的URL
输入的url添加上 http: 或者 https:,然后转义输出到网页端
4、对传入js函数的文本型参数值进行javascript转义
先进行javascript转义再进行HTML转义。
总结如下:
SQL注入
预防办法:数据与代码分离,即不用字符串拼凑SQL语句,使用SQL预处理方法(参数使用占位符 ?)。
XST处理
XST(跨站追踪)攻击,关闭Web 服务器的TRACE方法。
CSRF攻击的防御
通常需要防御CSRF(Cross-Site Request Forgeries)攻击的页面是用户登录、修改/删除确认、订单确认等添加新数据、修改数据的页面,此外此类页面必须使用POST方式提交。
HTTP头注入
替换HTTP头字符值中的换行符。
Cookie安全
Cookie仅保存SessionId值,设置HttpOnly属性为On,
用户密码安全
1、使用安全的bcrypt替代MD5(MD5本来用于生成指纹,用来做加密算法是误用),bcrypt会产生随机盐 salt
权限控制
1、SSO单点登录。OpenID系统
2、Spring Security的实现-基于角色的访问控制(Role-Based Access Control)RBAC
3、基于数据的访问控制。比如将用户id、对象id修改成另一个存在的id,如果没有检查当前登录用户是否是参数对应的id用户,就会产生窜改另一个用户数据的问题,也即是越权访问。
4、OAuth授权。OAuth第三方开源库
5、Sessionid。sessionid加密处理
以上是关于当今较为常见的3种 web应用程序开发平台类型的主要内容,如果未能解决你的问题,请参考以下文章