PHP中如何处理Null字符,有什么问题?
Admin 2022-10-12 群英技术资讯 472 次浏览
由于 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'; } ?>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章小编给大家分享一下Python中的enum代码使用方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
传统PHP开发都是基于Web的,基本上都是HTTP协议,HTTP协议的解析处理都由WebServer独自承担了,所以开发者不会关心协议方面的事情。然而当我们需要基于非HTTP协议开发时,开发者就需要考虑协议的事情了。
所谓的代码分离其实只是一种思路,既然是一种思路那就意味着他是有需求的没有需求就没有解决方案没有方案就不存在思路。在这之前,我们制作PHP程序页面的时候。都是HTML和PHP混合写在一起的。这产生了什么样的问题,主要有两个:1、代码太长不便阅读,一个流程往往跨了N行代码,可能之后还需要几个括号结束都不记得了。。2、不便于编辑网页,我们制作网页的时候。往往是先用DW等工
下面由phpstorm教程栏目给大家介绍解决phpStorm使用vue提示"Attribute v-xxx is not allowed here"的方法,希望对需要的朋友有所帮助!
在phpstorm选择【Window】—>【Editor Tabs】—>【Split Vertically】or【Split Horizontally】。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008