怎样写研究框架 研究思路路与框架设计

写在前面之前内部分享的一个paper,当时的思维有点乱,整理一下发出来。认识一些主流的开发框架与现在程序设计理念,包含了一些WEB设计上的趋势与概念。另外以我自己的角度去说明一下怎么去看一个PHP程序,方法适合于以上开源框架和一些公司内部开发的框架(只要能看到源码)。框架的选择ThinkPHP V3.2CodeIgniter V2.2.2Laravel V5.1选择以上三个框架也是以为这三个框架算是比较有代表性的!ThinkPHP(TP)在国内很受欢迎,特别是小公司。CodeIgniter(CI)是传统且很流行的框架,并且也是很成熟的框架,据我说知sina的大多数地方站都是这个框架写的。Laravel是一个充满设计感的框架,应用了目前PHP上的所有新技术,并且借鉴了大量java与python的框架设计结构,也是目前调查的最流行的的Laravel框架(国内外)!认识框架依次排开Laravel-& CodeIgniter(CI)-&ThinkPHP(TP)&&中间的CI并未包含composer.json这个文件,这是PHP的包管理配置文件,在CI的3.0+版本中同样加入了PHP的包管理,真的是方便了大多数程序员。这样的目录结构很明显,一眼就能看出来。框架的基本设计模式基本的设计模式就是MVC设计模式。&&注意:多层级的分层模式为HMVC模式。HMVC就是把客户端应用程序分解为有层次的父子关系的MVC。&&MVC对应的文件位置看一个cms程序首先就是找控制器代码在哪个位置,之后就是模型文件的位置,视图文件最后,不过我真的在使用框架开发的程序中发现了模型控制代码而找到漏洞,这个程序员简直是B了dog!控制器Laravel-& CodeIgniter(CI)-&ThinkPHP(TP)&&模型Laravel-& CodeIgniter(CI)-&ThinkPHP(TP)&&数据库连接文件TP:(通用2.0|3.0)(Application)\(Home)\Conf\config.php//(Application) 默认为Application,保不齐修改,可以直接查看index.php&&//(home) 项目目录,因项目而异!&DB_TYPE& =& &mysql&, // 数据库类型&DB_HOST& =& &localhost&, // 服务器地址&DB_NAME& =& &chopperproxyl&, // 数据库名&DB_USER& =& &root&, // 用户名&DB_PWD& =& &root&, // 密码&DB_PORT& =& 3306, // 端口&DB_PREFIX& =& &xl_&, // 数据库表前缀CI:(通用2.0|3.0)(application)\config\database.php//一般是固定形式application,保不齐修改一样可以到index.php里面查看项目命名。&&Laravel:(5.0|4.0的目录少一个app)这玩意特殊一些!在代码目录下有一个.env文件,里面存在项目的一些配置,可以在这里设置数据库连接信息。(当然可以不)&&另外可以直接写在文件中:config\database.php文件&&//定义默认的数据库类型&&备注:具体的配置可能是这样两种类型,使用env中定义,或者写入文件。如果配置文件中同时存在上图中的两套配置,说明系统可能使用了多数据库。结束了!?这是几个框架最基本的东西了,下面把其中的关于安全的部分以及自己的一部分见解写出来,会挺有意思的。SQL操作模型在PHP开发过程中,一般都会使用两种技术。一:ActiveRecord(ORM)ORM技术:Object-RelationalMapping,把关系数据库的表结构映射到对象上。例如ThinkPHP中:&&CI中的:&&二:查询构造器方式定义一个抽象数据库类,包含常用的各种方式。例如:laravel中的:&&注意:这两种方式的区别简单说就是需不需要自己去顶一个model文件。可能存在的SQL注入问题:1、 由于业务的复杂性导致SQL语句有时候很变态,几乎每种框架都支持使用原生SQL语句。CI:&&TP:&&Laravel:&&注意:凡是这些方式中带入的参数未经过过滤,底层的解析都是不会进行注入处理的,都有可能造成注入。2、 错误的安全函数用法(预编译)TP:官方方法:如果使用3.1以上版本的话,使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如:$Model-&where(&id=%d andusername=&%s& and xx=&%f'&,array($id,$username,$xx))-&select();或者使用:$Model-&where(&id=%d andusername=&%s& and xx=&%f'&,$id,$username,$xx)-&select();底层实现原理:获取函数输入参数,所有参数经过一次addslashes,然后使用vsprintf格式化字符串。问题:如果在数字字段带入%s,且没有引号,一样能注入。3、 where子查询中key字段可控CI:控制器代码&&模型代码:&&针对查询数组中的value字段是会做处理的,但是针对key字段并不会。访问查看:&&Laravel:同样的Laravel这个框架也存在这个问题。&&其中$type可控一样可以造成注入。&&备注:Thinkphp这种框架就没有,它自己写了解析where字句的方式,虽然在这点上很安全,可是历史上出事最多的就是它了。URL路由一般看一个CMS就是要去找URL对应的代码是哪些,这样才有办法进行审计!WEB开发过程中有一个概念是URL语义化。传统的URLhttps://g.wen.lu/search?newwindow=1&site=&source=hp&q=URL+%E8%AF%AD%E4%B9%89%E5%8C%96&btnG=Google+%E6%90%9C%E7%B4%A2&gws_rd=cr&ei=Jli4VeX_Bciy0gSNjZvgDA&&就是参数=值的形式。做了语义化的URL/2008/10/uri-pretty-and-url-mapping-with-apache-and-php-how-to.html&&简单解释就是从URL上就能知道该页面具体展示的数据或者是什么功能,这是以后WEB开发的一个趋势。(这里不光指这三个框架,其他框架或者自己开发的框架都将会有这样的功能)作为一个先进的PHP框架,都是存在路由绑定这个功能的!路由绑定就是将用户访问URL对应到项目的具体控制器中去。(代码审计过程中就是怎么通过URL去访问对应的代码)Laravel:项目目录中app\Http\routes.php&&CI:&&TP:像TP这种框架,到3.2默认的URL方式还是http://serverName/index.php/模块/控制器/操作这种傻逼方式。但是也有路由绑定的功能。查找配置项&URL_ROUTER_ON& =& true,然后寻找配置项URL_ROUTE_RULES&&备注:通过这些配置项目可以快速的找到URL对应的控制器代码是什么!大备注:!!!!!!!!!说这个还有一个原因就是以后可能会接触到REST模式的URL,这个也是趋势!同一条URL可能对应不同的几个控制器代码。HTTP协议存在GET POST PUT DELETE方法。web程序就是增删改查,对应的操作就是CURD,直接对应到的方法就是:C对应POST,R对应GET,U对应PUT,D对应DELETE具体代码就是通过判断请求方法来调用对应的控制器。&&框架的过滤机制(审计过程需要注意的点)一:针对URL的过滤由于URL路由的关系,现在的框架在GET方式上都或多或少的存在过滤或者说验证。TP:1、&&例如\d就限制了该参数只能是数字。2、&&或者是使用正则的方式来匹配,达到过滤的效果。CI:CI的过滤也一样,就是使用正则去匹配。&&Laravel:同样可以在定义URL路由的时候定义过滤,直接在路由上用where函数限制参数的类型。&&或者在文件app\Providers\RouteServiceProvider.php中存在boot的函数,可以定义全局过滤,可以在这里面找找。&&二:针对接收参数的过滤现在的框架一般都会重写$_GET/$_POST/$_REQUEST,自建系统的输入,然后这些输入存在一些参数可以选择是否过滤。TP:重写的函数 I()用法I(&get.id&); | I(&post.id&);利用设置默认值,设置过滤函数来达到过滤的效果。I(&get.name&,&test&,&htmlspecialchars&);CI:CI中所有的系统方法都是$this开头的。重写的输入函数 $this-&input用法$this-&input-&post(&something&);针对输入的第二个参数仅针对XSS,设置成true会进过一次CI内奸的xss_clean函数。Laravel:这个吊了!这玩意自己定义了一个中间件Middleware类型(借鉴java)。中间件的作用就是在HTTP请求实际接触应用程序之前,进行层层的检查跟过滤,甚至完全拒绝。一般被用来做权限验证,参数过滤,数据加解密等等。所有中间件都在app\Http\Middleware目录下面,根据具体情况查看是否将过滤写在这里面了。重写的输入函数Request $request$request-&input(&ip&);第二个参数仅有设置默认值的作用,并没有实际的过滤。三:默认设置的全局安全机制CI:&&默认还有一个参数$config[&global_xss_filtering&] = TRUE;开启后所有的参数都会经过xss_clean函数一遍。TP:全局的过滤参数&DEFAULT_FILTER& =&&strip_tags,stripslashes&,对接收数据进行依次的过滤。Laravel:默认开启的全局CSRF过滤(借鉴django等框架)。其他貌似就没了0-0由各个框架编写过程联想到的一些东西1、 测试的时候如果一个正常的请求就是获取不到数据,可以在HTTP头里面加上X-Requested-With:XMLHttpRequest就是ajax请求。现在一般程序员的编写纯api接口的时候习惯是会区分直接访问还是ajax的,这样可以减少乱七八的数据请求。例如:Laravel:&&CI:&&TP:常量IS_AJAX 判断是否是AJAX提交,不写了!2、 如果上传成功一个文件,但是就是访问不到,有几个原因。.htaccess 文件限制了根目录下index.php以外的所有文件的访问权限,配合URL路由这个功能所有不在路由中的路径http://testtest.net/test/test.php都是无法访问的。这个也是django类似的框架难以攻击的一个原因。(PHP正在往规范严谨的方向去)这种时候要么能覆盖route文件,要么能覆盖对应的方法(这个太难,需要不破坏文件,只是修改对应的方法。)Laravel这样的框架本身www设置的时候就是一个public目录(默认)。&&这个目录除了index.php文件啥也没有了,上传文件一般都在www目录的外层目录,无法直接访问。这种时候只能靠跳转目录来跳到public下面才能访问,或者文件包含。就爱阅读网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
欢迎转载:
推荐:    
4【原】初步认识电脑作者根据自己的实践经验,总结出一套进行工艺优化与控制的基本思路与方法。
The author summarizes a package of thinking and approaches of technology optimization and control.
阐述了选题的缘由,研究的意义,研究的基本思路与方法。
Expounded on the topic of origins, the significance of the study, the basic ideas and methods of research.
本文以山东莘县为例,论述了县域生态经济区划分的基本思路与方法。
The paper takes Shencounty in Shandong as a case, and discussed basic train of thought and methods in dividing ecological economic region of county.
第一部分阐述了问题提出、研究意义、相关概念、研究综述、研究目标、研究内容、研究的基本思路与方法。
The first part is about the problem, the significance of research, the relevant concepts, research targets, and the content of study, the basic ways and research methods.
该系统硬件设计原理及控制软件开发的基本思路与方法,可为同类试验设备技术改造工作提供参考。
The hardware de- sign and the control software of development method of structure test are concluded, which can provide reference for the improvement of others testing device.
本文在分析我国医药市场现状的基础上,提出了医药产品营销渠道创新的基本思路与方法。
The article studies the status quo of Chinese medicine market. On the basis of the analysis, the author put forward the basic methods to innovate Marketing Channels of the Medicine Products (MCMP).
第一部分为前言,对研究这一问题的意义及学术界的研究状况进行了简明扼要的说明,同时也对研究的基本思路与方法进行了阐释。
The first part is preface. Brief explanation is given as to the significance and the present research status of this issue in the academic circle.
第一章 绪论。本章包括选题的缘起和学术史回顾,同时还阐述了本文研究的基本思路、资料与方法。
Chapter1. the content is about the review of the current studies in the field and path of thoughts, resources, approaches.
学校招生指标改革首先必须明确改革的基本原则,在此基础上提出改革的基本思路及其方法与步骤。
We should first clarify the basic principles of reforming the quota distribution, and then work out the specific methods and procedures of the reform.
主要介绍了论文的选题背景及意义、研究对象与方法、基本思路与框架结构、创新之处。
Introduces the background and significance of the topic, and then tells the research object, methods, the basic ideas and framework of the structure, innovations.
全文共分为五个部分:首先,简要介绍了论文的选题背景,研究思路与方法及基本框架;
The main contents of this paper as follows:In the first part, the paper has a simple introduction about its research background, method and frame.
主要内容包括本研究的选题意旨,相关研究现状的综述,本研究的基本思路、研究方法及与相关概念的界定。
It gives the raise of the issue, the research significance, a literature review, thoughts & methodologies and definitions of related concepts.
“引言”部分概述了本文的研究背景和意义、主要思路与基本结构以及研究方法。
"Introduction" summarizes the research situation, significance, thoughts, structure and methods of the thesis.
文章导言部分介绍了研究的理论和现实意义、研究现状、研究方法、基本框架与思路。
The introduction part mainly gives an introduction about the purpose, status quo, the method and frame of the research.
阐述本文的背景和意义、文献综述,基本概念的界定,研究思路与方法。
It elaborates the literatures, the assumption about the problem and also the values in theory and significance.
第一章是全文的导论,主要就本研究的缘起、基本思路、理论与现实意义、研究方法、个案村的相关情况作了介绍。
In this chapter, the author gives the information about the origin, train of thought, theoretical and practical significance, research methods, and the target villages of this study.
论述了林业现代化评价指标数据的来源与取得方法、指标设计的基本思路,并且建立了林业现代化的评价模型。
The paper expounds methods of data source and acquisition, indicator design thought of forestry modernization assessment, and establishes assessment model.
第一章“绪论”,强调新闻语体研究的重要性、综述了新闻语体研究的现状,指出其中的进展与不足,提出本文的基本思路和主要研究方法。
The first chapter is an introduction of the dissertation to emphasize the significance of the study and point out the basic methodology of it.
本文论述了运用系统原理与方法诊断医用电子仪器故障的基本思路,并用典型形式和具体事例作了说明。
The fundamental idea of diagnosing medical electronic instruments by means of systematic theory and method was reported, and examples were given in this paper.
通常的方法来画一个石油开始与地方的基本思路和设计工作在恶劣出打底。
The usual way to painting an oil begins with the underpainting where the essential ideas and designs are worked out in rough.
本文提出了软件测试性的基本概念、分析与计算方法、以及软件测试性设计的基本思路。
In ibis paper, gives the basic concept of testing property of software, analyzing and calculating method and basic idea of the design of testing property of software.
文章从一个案入手阐述了系统思考在企业管理中的作用,分析了系统基本模型的理论与方法,指出了企业管理的新思路。
This article analyses the basic model of system, discusses the function of system-thinking to enterprise administration, and points out the new method of enterprise administration.
第四,分析新区公交线网规划的基本原则与思路,提出了结合现状的初始公交网络布设方法和初始方案优化方法;
Fourth, analysis of the basic principles of public transportation network planning and ideas, put forward a combination of the status quo methods of transit network layout;
概述了本课题的研究背景、研究目的与意义、研究现状与动态及其研究对象与方法等内容,形成了本论文的基本结构和整体思路。
It summarily narrates the realistic background, the realistic intention and meaning, the present situation and trend of the study of this thesis, the object and methods of the study, and so on.
论文主要由绪论和正文四章组成:绪论:主要说明了选题的背景与意义、研究现状、研究的基本思路和内容、视角和方法。
This thesis falls into five parts:Part 1: This part mainly introduces the background and significance, research status quo, research perspective and methods of the topic.
以摩托车悬架为例,就悬架螺旋弹簧测绘与反求设计的几个问题进行了讨论,介绍了反求设计的基本思路、方法和原则。 并对螺旋弹簧工作图标注的一些问题作了具体说明。
This paper deals with the design of the spiral spring based on the mapping of the sample, describing the essentials, methods and principles, and the diagram method for spiral spring working.
本文借鉴集对论基本原理与方法,对城市化进程中地质环境的合理开发利用提出总体思路及其具体途径。
In this paper, by using fundamentals and method of set pair theory for reference, an overall thinking and specific way of reasonable exploitation of geological environment in the process of urbaniz…
本文借鉴集对论基本原理与方法,对城市化进程中地质环境的合理开发利用提出总体思路及其具体途径。
In this paper, by using fundamentals and method of set pair theory for reference, an overall thinking and specific way of reasonable exploitation of geological environment in the process of urbaniz…
$firstVoiceSent
- 来自原声例句
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!

我要回帖

更多关于 总体框架与研究思路 的文章

 

随机推荐