加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

在 PHP 中遇到 Null 对象该怎么办

发布时间:2023-11-01 11:28:19 所属栏目:语言 来源:
导读:很多朋友都对“PHP中如何处理Null字符,有什么问题?”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!由于 PHP

很多朋友都对“PHP中如何处理Null字符,有什么问题?”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!

由于 PHP 的文件系统操作是基于 C 语言的函数的,所以它可能会以您意想不到的方式处理 Null 字符。 Null字符在 C 语言中用于标识字符串结束,一个完整的字符串是从其开头到遇见 Null 字符为止。 以下代码演示了类似的攻击:

Example #1 会被 Null 字符问题攻击的代码

<?php

$file = $_GET['file']; // "../../etc/passwd\0"

if (file_exists('/home/wwwrun/'.$file.'.php')) {

// 文件/home/wwwrun/../../etc/passwd存在的话那么file_exists方法会返回true

include '/home/wwwrun/'.$file.'.php';

// the file /etc/passwd will be included

}

?>

因此,任何用于操作文件系统的字符串(特别是程序外部输入的字符串)都必须经过适当的检查。以下是上述例子的改进版本:

Example #2 验证输入的正确做法

<?php

$file = $_GET['file'];

// 对字符串进行白名单检查

switch ($file) {

case 'main':

case 'foo':

case 'bar':

include '/home/wwwrun/include/'.$file.'.php';

break;

default:

include '/home/wwwrun/include/main.php';

}

?>

关于“PHP中如何处理Null字符,有什么问题?”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,小编每天都会为大家更新不同的知识。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章