tp

学完php没多久 再看看他的框架! 补习补习!☺☺☺

image-20210717112501223

看个浅析MVC模式与三层架构 老走神 不过终于看完了 !记一下关键点:

MVC

MVC即 Model-View-Controller,它是一种GUI界面设计的主流模式,主流思想,共分为三层:模型层、视图层、控制层。MVC强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

M:模型层,用来实现数据表结构与应用程序实体对象对应、实现业务逻辑处理以及数据库的访问等等。 可以理解成后端把! 就是写与数据库响应操作的

V:视图层,实现与用户交互的界面,实现数据的输入输出功能。 前端

C:控制层,联系、控制模型层和视图层去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

MVC的工作方式,以实现用户登录为例,首先View层接受用户输入的账号和密码等数据,然后传递给Congtroller层,Controller层调用Model层的业务逻辑处理方法并返回一个结果给Controller层,最后Controller层判断是否登录成功弹出信息或调出登录的界面。

看完这个应该对MVC项目有个大致的想法了!

三层架构

通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)业务逻辑层(BLL)数据访问层(DAL)。区分层次的目的即为了实现“高内聚,低耦合”的思想。

1.表现层(UI):实现应用程序的界面,从而实现用户进行交互的功能。

2.业务逻辑层(BLL):针对具体的业务需求而进行业务逻辑处理,直接对数据访问层进行操作。

3.数据访问层(DAL):该层直接对数据库进行操作,对数据进型增删改等。

二者“生搬硬套”的对应关系

所谓”生搬硬套“就是二者本没有关系,一个为架构一个为设计模式怎么谈关系。是因为在使用三层架构或N层架构的基础上常会伴有MVC,所以大家总是会认为MVC就是三层架构或三层架构就是MVC,殊不知,它们二者是一起出现的。因此便会产生这种:View层对应三层架构的表现层,Model层对应三层架构的业务逻辑层和数据访问层。

严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的业务逻辑层BLL进行对话。

基本了解

一般把 学了怎么长时间计算机了!学这种东西一定有他的手册的看看手册!

http://www.thinkphp.cn/

以前以学过一次tp但是 忘了! 下回忘了直接看手册就好了!

记录下他的重点:

模块—》 下有MVC

先是模块下的MVC

image-20210717122345957

再看看手册里url模式

晕了!太多了! 手册里的东西挺多的! 看了看 MVC 东西挺多的! 没看完 !😶真没耐心了!看视频把!

tp控制器

哭了 看着框架没啥好写的!看的是一个思路!

看手册就行了!哈哈哈哈哈!就看个思路!

where注入

通过map传入是安全的!

image-20210717155314596

table注入

image-20210717155258770

field注入 字段

// 使用M方法实例化
$User = M('User');
// 和用法 $User = new \Think\Model('User'); 等效
// 执行其他的数据操作
$User->select();

image-20210717160956285

alias|join|union

image-20210717162625332

order|group|having

comment|

comment 就是 /*adad*/

query|exe

query用于查询!

exe用于增删改

还有什么聚合函数!

总结#

只要sql语言里的参数可控  那就可能存在注入!

exp表达式

image-20210717194404974

Action参数注入

image-20210717200517411

那个id参数是可控的!

image-20210717200703764

组合注入

image-20210717202349788

逻辑漏洞

水平和垂直越权

image-20210717204256901

image-20210717204329756

这时候没有对level过滤 那可能就会存在越权操作!

模板漏洞

image-20210717204935788

image-20210717205453210

就是相当于 代码写的时候有问题!我们可以输入php代码达到代码执行!

php标签

image-20210717205613901

缓存漏洞

image-20210717210817290

image-20210717210728976

就是缓存文件是php,想办法通过缓存文件那shell!

widget

image-20210717210951899

不是很懂!但是看了感觉也就那样!🙄

模板

这个 模块把!看了也看了!

个人感觉吧!

怎么说呢!

就好比! 数据库里表是 thinkphp_user

那模板可以有个 User模板 这也就是MVC里说的 M对应的数据库的原因吧!

image-20210717194720206

M这里就好比直接调用User表! 通过实力化User对象!好比直接调用User表!在进行一系列sql操作!

总结一下把

我感觉挺无聊的!
感觉就是把php 换了种形式!来写代码!可能框架就是这样方便把! 以前也学过tp!但是我呀!学啥都要好几遍!

但是感觉漏洞原理都相识! 只不过框架代码|语法不熟悉!把框架熟悉熟悉还是原来的漏洞!哈哈哈

其实我学框架也就是想学学他的pop链!学学他的程序流程什么的! 好像没咋学到!还是要直接看底层,自己调试才行!
F7进入  F8跳过
感觉必须要直接拿个框架,拿个cms漏洞自己跑一跑 测一测才行! 观看也其实挺爽的!一操作,就人没了!