PHP代码审计--------思路以及流程

找到,并修复开发程序的漏洞   ,,  找到一些逻辑结构的错误的程序漏洞,

脚本安全问题,是  函数  和 变量 的问题

        变量--------可以直接或间接的接收用户不安全的输入

 

要先了解一下,MVC架构

      
        MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。MVC模式同时提供了对 HTML、CSS和JavaScript 的完全控制

常见的PHP框架

        ThinkPHP        易于上手学习成本低、框架的兼容性较强

        Yaf :  世界上最快的PHP框架????

        Kohana    文件系统和结构非常清晰

        Yii      由国人开发的重量级的框架,这个框架把代码的可重用性发挥到极致。

多看开发文档!!!!!

我们在拿到一个程序的时候,先看他是一个什么样的架构,再看他的功能模块

获取请求(POST、GET)---> 全局过滤 ---->  模块文件 ---->   C 函数内容   ---->   M函数内容 ---> V显示        

这就是CMV

通读原文

        不是从index一个一个看,是看一些代码的大体的结构

网站目录结构        

主目录        模块目录        插件目录        上传目录        配置目录        模板目录        数据目录

        函数集文件

                注意:文件命名的方式 、文件大小、创建时间、

                        其它文件统一调用的文件,在文件头部包含这个文件

        配置文件

                        config、 conf 等配置文件

       安全过滤文件

                safe  check 命名的           安全函数

       index 文件

                        通读原文,大概知道这个这个程序是干嘛的

优点:  了解程序框架,业务逻辑,挖掘楼哦对那个,对自身产品的审计

缺点:        耗费时间多,程序比较大,累

查找敏感关键字 回溯

优点    快速高效的挖出想要的漏洞 , 判断触发点的位置,以及上下文

缺点,覆盖不到逻辑漏洞的挖掘, 不能了解程序的基本框架

查找可控变量

上面 $_GET['search']  接收后  直接代入sql语句查询中去了 ,没有进行任何过滤

功能点审计

        程序安装     

        文件上传        

        文件管理

        登录验证

        备份恢复

        找回密码

                   

 

一切输入都是有害的

          可以控制的变量

一切进入函数的变量都是有害的

        变量到底又利用价值的函数(危险函数)

推荐用 源码之家等小的程序,去通读源码

接触框架      了解MVC

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 PHP 使用海康威视 PHP SDK 的示例代码,供参考: ```php <?php // 引入海康威视 PHP SDK require_once 'path/to/HKSDK.php'; // 设置 SDK 相关参数 $ip = '192.168.1.64'; // 设备 IP 地址 $port = 8000; // 设备端口号 $username = 'admin'; // 登录用户名 $password = 'admin123'; // 登录密码 // 初始化 SDK $HKSDK = new HKSDK(); $HKSDK->NET_DVR_Init(); $HKSDK->NET_DVR_SetConnectTime(2000, 1); $HKSDK->NET_DVR_SetReconnect(10000, true); // 登录设备 $loginResult = $HKSDK->NET_DVR_Login_V30($ip, $port, $username, $password); if ($loginResult === false) { echo '登录失败:' . $HKSDK->NET_DVR_GetLastError() . '<br>'; } else { $userID = $loginResult['userID']; echo '登录成功,用户 ID 为:' . $userID . '<br>'; } // 获取设备信息 $deviceInfo = $HKSDK->getDeviceInfo($userID); echo '设备名称:' . $deviceInfo['sDeviceName'] . '<br>'; echo '设备序列号:' . $deviceInfo['sSerialNumber'] . '<br>'; // 获取通道列表 $channels = $HKSDK->getChannelList($userID); foreach ($channels as $channel) { echo '通道名称:' . $channel['channelName'] . '<br>'; echo '通道号:' . $channel['channel'] . '<br>'; } // 实时预览 $channelNo = 1; // 通道号 $playHandle = $HKSDK->startRealPlay($userID, $channelNo); if ($playHandle === false) { echo '预览失败:' . $HKSDK->NET_DVR_GetLastError() . '<br>'; } else { echo '<img src="data:image/jpeg;base64,' . base64_encode($HKSDK->getPreviewData($playHandle)) . '"><br>'; } // 停止预览并注销设备 $HKSDK->stopRealPlay($playHandle); $HKSDK->NET_DVR_Logout($userID); $HKSDK->NET_DVR_Cleanup(); ?> ``` 以上代码仅为示例,具体的使用方法需要根据您的实际需求进行调整。同时,请确保您已经正确安装并配置了海康威视 PHP SDK。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值