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

26-小迪安全-模块引用,mvc框架,渲染,数据联动0-rce安全

先创建一个新闻需要的库

这样id值可以逐级递增

然后随便写个值,让他输出一下看看

模板引入

但是这样不够美观,这就涉及到了引入html模板

模板引入是html有一个的地方值可以通过php代码去传入过去,其他的html界面直接调用,这样页面美观,输出查询的结果也可以显示在上面

大括号括起来的就是

这样就把php的值传递到了前端代码中显示的更美观

模板调用会造成安全问题,例如标题改成

在访问新闻网站的时候就会执行php代码

成功输出了123,这是因为在模板调用中用到哦leval函数,标题传入到这个函数中并且执行

在调用的html模板写一个php代码

也会被执行代码

为了安全的考虑就有人开发出了第三方模板

mvc模型

这样就不安全了,怎么样才能安全

下载好模板第三方插件,smarty

放在网站同一个目录,以上代码调用即可

同样在调用文件写入一个phpinfo代码

这就不会允许

最新版本没有,但是之前版本有过安全问题

复现

<?php
include '../liuyanban/config.php';
$template=file_get_contents('new.html');//读取文件内容$id=$_GET['id'] ?? '1';
$sql="select * from new where id='$id'";
$result=mysqli_query($con,$sql);
while($row=mysqli_fetch_row($result)){$news_title=$row[1];$news_content=$row[3];$news_image=$row[4];
}$template=str_replace('{news_title}',$news_title,$template);
$template=str_replace('{news_content}',$news_content,$template);
$template=str_replace('{news_image}',$news_image,$template);//替换括号tetle,替换内容为第二个值,替换的对象是第三个值,就上面取得文件内容
eval('?>'.$template);
<!-- news_template.html -->
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>新闻节目</title><style>body {font-family: Arial, sans-serif;background-color: #f4f4f4;margin: 0;padding: 20px;}.news-container {background-color: #fff;padding: 20px;border-radius: 8px;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);max-width: 800px;margin: 0 auto;}.news-title {font-size: 24px;font-weight: bold;color: #333;margin-bottom: 10px;}.news-image {max-width: 100%;height: auto;border-radius: 8px;margin-bottom: 20px;}.news-content {font-size: 16px;color: #555;line-height: 1.6;}</style>
</head>
<body>
<div class="news-container"><h1 class="news-title">{news_title}</h1><img class="news-image" src="{news_image}" alt="新闻图片"><p class="news-content">{news_content}</p>
</div>
</body>
</html>

jian

kang

http://www.lryc.cn/news/546590.html

相关文章:

  • 【第14节】C++设计模式(行为模式)-Strategy (策略)模式
  • 播放器系列4——PCM重采样
  • 网络安全需要学多久才能入门?
  • 通俗版解释:分布式和微服务就像开餐厅
  • JAVA安全—手搓内存马
  • 【神经网络】python实现神经网络(一)——数据集获取
  • 历年湖南大学计算机复试上机真题
  • [LeetCode]day33 150.逆波兰式求表达值 + 239.滑动窗口最大值
  • 【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程
  • C#中泛型的协变和逆变
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-附录B-严格模式
  • 跨平台 C++ 程序崩溃调试与 Dump 文件分析
  • 缺陷VS质量:为何软件缺陷是质量属性的致命对立面?
  • 伍[5],伺服电机,电流环,速度环,位置环
  • RuntimeError: CUDA error: device-side assert triggered
  • 清华大学Deepseek第六版AIGC发展研究3.0(共186页,附PDF下载)
  • SpringBoot生成唯一ID的方式
  • 通俗易懂的分类算法之K近邻详解
  • CSDN markdown 操作指令等
  • 【linux】文件与目录命令 - uniq
  • 零信任沙箱:为网络安全筑牢“隔离墙”
  • 【金融量化】Ptrade中交易环境支持的业务类型
  • 【Java---数据结构】链表 LinkedList
  • 紧跟 Web3 热潮,RuleOS 如何成为行业新宠?
  • CC++的内存管理
  • Spark核心之02:RDD、算子分类、常用算子
  • 【Resis实战分析】Redis问题导致页面timeout知识点分析
  • 单一职责原则(设计模式)
  • 生理信号概念
  • 安卓内存泄露之DMA-BUF异常增长:Android Studio镜像引起DMA内存泄露