当前位置: 首页 > news >正文

青海微信网站建设三合一模板网站

青海微信网站建设,三合一模板网站,动物自己做的网站,WordPress生成图片时间轴 演示案例 TP 框架-开发-配置架构路由MVC 模型 TP 框架-安全-不安全写法版本过滤绕过 TP 框架-开发-配置架构路由MVC 模型 参考#xff1a; https://www.kancloud.cn/manual/thinkphp5_1 1、配置架构-导入使用 去thinkphp官网可以看到路由MVC 模型 TP 框架-安全-不安全写法版本过滤绕过 TP 框架-开发-配置架构路由MVC 模型 参考 https://www.kancloud.cn/manual/thinkphp5_1 1、配置架构-导入使用 去thinkphp官网可以看到目前最新的版本是更新到了thinkphp8.0但是本次演示案例用到的都是thinkphp5.1版本。 在使用一套框架之前首先需要从官网导入源码例如下图将它导入到demo01文件夹下。 可以在ThinkPHP—thinkphp—base.php中查看当前框架的版本。 在使用框架进行开发以前需要先解析目录不能直接访问在phpstudy中将它指向ThinkPHP下的public目录 接下来尝试用ip访问可以看到 在刚才public路径下可以看到一个index.php文件其中又定义了一个应用目录application在官网手册中也可以看到index.php是入口文件。 找到application—index—controller下的index.php尝试修改其中的代码看看回显出来的页面是否也会改变。 把代码改成下图中的内容 可以看到网页回显123 2、路由访问-URL 访问 通过下图可以看到模块指的就是application下的index目录控制器指的是index目录下的index.php操作指index.php中的function index()。因此也就可以用ip/index.php/index/index来访问。 当增加一个操作xiaodi就可以用ip/index.php/index/index/xiaodi来访问 可以认定为ip/index.php(在index文件下的)/index目录/index文件/index函数 非官方写法访问方式 当使用非官方的写法访问时可以看到只能用?x1来访问而当使用/x/1时访问报错。 官方写法访问方式 当使用官方写法访问时?name12可以访问/name/12也可以访问 ?php namespace app\index\controller; use think\Controller; use think\Request;class Index extends Controller {public function index(){return 123;}public function xiaodi(){return $this-request-param(name);}} ? MVC模型 对应model模板 view视图 controller控制器 其中核心代码文件在controller中 3、数据库操作-应用对象 连接数据库 首先在application下找到database.php文件 修改database数据库名为demo01username为root密码123456端口号3306其余根据自己需求修改。 查询数据库 在navicat中找到之前创建的news表格 在ThinkPHP—application下新建一个test文件夹并在这个文件夹下创建controller文件夹其中包含Test.php 非官方写法 以之前的news.php为例 ?php include config.php; //读取news.html中的内容 $templatefile_get_contents(news.html);$id$_GET[id] ?? 1; $sqlselect * from news where id$id; echo $sql; $datamysqli_query($con,$sql); while($rowmysqli_fetch_row($data)){$page_title$row[1];$heading$row[2];$subheading$row[3];$content$row[4];$item$row[5]; }$templatestr_replace({page_title},$page_title,$template); $templatestr_replace({heading},$heading,$template); $templatestr_replace({subheading},$subheading,$template); $templatestr_replace({content},$content,$template); $templatestr_replace({$item},$item,$template);eval(?.$template); //eval函数会将传递给它的字符串作为PHP代码执行即将?连接到$template的开头再执行该字符串 ? 当执行?id1 and 11时可以看到这个值会被接收 当输入?id2时会出现报错 官方写法 ?php namespace app\Test\controller; use think\Db; use think\Controller;class Test extends Controller {public function testsql(){//使用tp框架操作mysql数据库//SELECT * FROM think_user WHERE id 1 LIMIT 1//规矩写法$id request()-param(x);$data Db::table(news)-where(id, $id)-find();return json($data);} } ? 当输入ip/index.php/test/test/testsql/x/1去查询这个数据库的时候页面可以正常回显 并且可以发现在/x/1后面输入任何东西都不会显示在页面上 结论 1.使用TP框架操作数据库时默认是受到框架内置过滤保护的而且方便开发。 2.原生态的数据库操作如果没有过滤就会受到SQL注入攻击。 4、文件上传操作-应用对象 首先在ThinkPHP—public文件夹下新建一个upload.html其中代码为 form action/index.php/test/test/upload enctypemultipart/form-data methodpostinput typefile nameimage / brinput typesubmit value上传 / /form Test.php中代码改为 ?php namespace app\Test\controller; use think\Db; use think\Controller;class Test extends Controller { public function testsql(){//使用tp框架操作mysql数据库//SELECT * FROM think_user WHERE id 1 LIMIT 1//规矩写法 // $idrequest()-param(x); // $dataDb::table(news)-where(id,$id)-find();//原生写法 有安全隐患//$idrequest()-param(x);//$dataDb::query(select * from news where id$id);$username request()-get(username/a);db(admin)-insert([username $username]);return Update success;//return json($data); }public function upload(){// 获取表单上传文件 例如上传了001.jpg$file request()-file(image);//获取表单上传文件// 移动到框架应用根目录/uploads/ 目录下$info $file-validate([size1567800,extjpg,png,gif])-move( ../uploads);if($info){// 成功上传后 获取上传信息// 输出 jpgecho $info-getExtension();// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpgecho $info-getSaveName();// 输出 42a79759f284b767dfcb2a0197904287.jpgecho $info-getFilename();}else{// 上传失败获取错误信息echo $file-getError();}} } 在ThinkPHP下创建uploads文件夹用来存储接收的文件 由于phpstudy中的根目录就是public文件夹因此可以直接用ip/upload.php来访问 当尝试上传图片时就会跳转到以下页面 而当上传txt、docx等文件时就会提醒文件后缀不允许 5、前端页面渲染-MVC 模型 在ThinkPHP—application—index下创建view文件夹再在view下创建index文件夹其中包含index.html和edit.html。 edit.html代码如下 !DOCTYPE html html langen headmeta charsetUTF-8titlesabiqudi/title /head body kcnnqi /body /html index.html代码如下 !DOCTYPE html html langen headmeta charsetUTF-8title{$name}/title /head body {$email} /body /html index.php代码如下 ?php namespace app\index\controller; use think\Request; use think\Controller;class Index extends Controller { public function index(){//return 123;$this-assign(name,ThinkPHP);$this-assign(email,thinkphpqq.com);// 或者批量赋值$this-assign([name ThinkPHP,email thinkphpqq.com]);// 模板输出return $this-fetch();//更改要渲染的页面 } } 当index.php中为return $this-fetch();时默认渲染index.html访问后页面如下 当index.php中为return $this-fetch(edit);时渲染edit.html访问后页面如下 TP 框架-安全-不安全写法版本过滤绕过 1、内置代码写法 例子不合规的代码写法-TP5-自写 当使用原生写法时可以看到x后的内容被改变后仍然可以执行 而用规矩写法时无论在x后输入什么页面都不会改变 也就是分为官方规矩写法、用了一半安全写法、纯原生写法三种类型。 2、框架版本安全 例子 1写法内置安全绕过-TP5-SQL 注入 参考文章https://www.cnblogs.com/Yhck/p/15808056.html 可以看到由于这个漏洞出现的版本是5.0.13-5.0.155.1.0-5.1.5所以后续会用到5.0.14版本进行演示。下面先用5.0.22版本做一个对比。 由于5.0.22版本不在漏洞适用范围之内可以看到页面返回为null 之后用5.0.14版本演示先在phpstudy中更改路径为5.0.14中的public文件夹 为了看是否指向正确可以让代码输出123来检验 ?php namespace app\index\controller;class Index {public function index(){echo 123;} } 之后也是配置数据库 将index.php中的代码改为 ?php namespace app\index\controller;class Index {public function index(){$username request()-get(username/a);db(users)-where(id)-update([username $username]);} } 按照下面的命令访问 发现虽然报错但是直接爆出了数据库名demo01 例子 2内置版本安全漏洞-TP5-代码执行 以当前版本5.0.22为例 在ip后面输入/?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]whoami可以得到 因此可以得到结论用纯原生写法或者用一半的安全写法都不是安全的用官方写法看似安全但如果使用的版本本身存在漏洞也可以利用这个漏洞进行攻击。 逻辑越权类似于linux中的用户等级 如下图假设管理员的uid1普通会员的uid100。当使用select * from users where username‘admin’来取出uid结果时如果uid1则展示管理员页面。 而在逻辑越权时经常需要修改用户id编号这个id编号也就类似于uid。当把uid100修改成了uid1也就使普通用户变成了管理员即实现了权限地跨越。 当使用discuz注册一个用户时可以看到有adminid和groupid系统就是以这两个来区分管理员和普通用户。当修改adminid1、groupid1后就可以实现逻辑越权从普通用户变成管理员。 本文章由李豆豆喵和番薯小羊卷~共同完成。
http://www.hkea.cn/news/14315595/

相关文章:

  • 网站建设论文模板园林景观设计公司的培训手册模板
  • 企业网站设计目的和意义支付宝开放平台
  • 网站建设公司上海做网站公司哪家好做骗子曝光网站是否违法
  • 哪种语言做网站最快windows优化大师在哪里
  • 建筑工程证书查询免费seo关键词优化方案
  • 阿里云网站备案幕布网站建设软件开发
  • 做网站服装appwordpress 360字体大小
  • 用html是做班级简介网站成都建设网站那个好
  • 做自媒体资源的网站网站目录遍历
  • 曲靖网站建设公司怎么创建个人视频号
  • 西安有哪些家做网站的公司免费有效的推广网站
  • 功能介绍的网站中山网站搜索排名
  • 电子商务网站建设设计wordpress修改数据库配置文件
  • 公司招聘一个网站建设来做推广行业型网站开发
  • 服装集团网站建设如何提供网站建设公司
  • 网站开发中 敬请期待wordpress采集
  • 网站监测怎么做大型服装网站建设
  • 网站开通辽宁省建设厅网站升级何时结束
  • 网站用什么主机wordpress大转盘插件
  • tuzicms做企业手机网站如何跨境电商平台一览表
  • 高端集团响应式企业网站模板国内网站绕过备案方法
  • 县市区科普网站建设网站开发流程简述
  • 百度宿迁市建设局网站腾讯云如何做网站
  • 大型用户网站建设上海地区网站开发公司
  • 现在流行的网站开发工具乔拓云智能建站
  • 建设了网站怎么管理系统哈尔滨视频制作公司
  • 厦门市建设工程安全管理协会网站建设银行网银网站
  • 接做网站单子沈阳网站建设tlmh
  • 广东人才网官方网站招聘信息站长检测同ip网站很多怎么办
  • php 网站开发案例教程网站seo主管招聘