0%

26安全开发-新闻 框架

思维导图

22安全开发

知识点:

  • 13、PHP新闻显示-数据库操作读取显示
  • 14、PHP模版引用-自写模版&Smarty渲染
  • 15、PHP模版安全-RCE代码执行&三方漏洞

章节点

PHP:
功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等
技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;
技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。
JS:内容筹备中……
Java:内容筹备中……

新闻列表

  • 1、数据库创建新闻存储
  • 2、代码连接数据库读取
  • 3、页面进行自定义显示

自写模版引用

  • 1、页面显示样式编排
  • 2、显示数据插入页面
  • 3、引用模版调用触发

Smarty模版引用

下载:https://github.com/smarty-php/smarty/releases
使用:

  • 1、创建一个文件夹,命名为smarty-demo。
  • 2、下载Smarty对应版本并解压缩到该文件夹中。
  • 3、创建一个PHP文件,命名为index.php,并在文件中添加以下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    // 引入 Smarty 类文件
    require('smarty-demo/libs/Smarty.class.php');
    // 创建 Smarty 实例
    $smarty = new Smarty;
    // 设置 Smarty 相关属性
    $smarty->template_dir = 'smarty-demo/templates/';
    $smarty->compile_dir = 'smarty-demo/templates_c/';
    $smarty->cache_dir = 'smarty-demo/cache/';
    $smarty->config_dir = 'smarty-demo/configs/';
    // 赋值变量到模板中
    $smarty->assign('title', '欢迎使用 Smarty');
    // 显示模板
    $smarty->display('index.tpl');
    ?>
  • 4、创建一个名为index.tpl的模板文件,并将以下代码复制到上述点定义文件夹中
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!DOCTYPE html>
    <html>
    <head>
    <title>{$title}</title>
    </head>
    <body>
    <h1>{$title}</h1>
    <p>这是一个使用 Smarty 的例子。</p>
    </body>
    </html>

代码RCE安全测试

  • 1、自写模版的安全隐患
    php文件渲染模板时使用了代码执行函数——>模板中加上可控变量造成代码执行
  • 2、第三方Smarty的安全隐患
    第三方插件 ueditor
    第三方组件 shiro
    也有安全隐患
    代码审计——>不仅仅是代码,还有引用的第三方软件
    黑盒插件识别模板、特征
    白盒文件,代码、特征

欢迎关注我的其它发布渠道

-------------本文结束感谢您的阅读-------------