国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

PHP安全之文件系統安全——Null字符問題

瀏覽:60日期:2022-09-15 11:26:45

由于 PHP 的文件系統操作是基于 C 語言的函數的,所以它可能會以您意想不到的方式處理 Null 字符。 Null字符在 C 語言中用于標識字符串結束,一個完整的字符串是從其開頭到遇見 Null 字符為止。 以下代碼演示了類似的攻擊:

Example #1 會被 Null 字符問題攻擊的代碼

<?php $file = $_GET[’file’]; // '../../etc/passwd0' if (file_exists(’/home/wwwrun/’.$file.’.php’)) {// 文件/home/wwwrun/../../etc/passwd存在的話那么file_exists方法會返回trueinclude ’/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
相關文章:
主站蜘蛛池模板: 子洲县| 巫山县| 常州市| 宜都市| 苍梧县| 东平县| 长海县| 章丘市| 从化市| 稷山县| 太仆寺旗| 拉孜县| 高陵县| 灵宝市| 准格尔旗| 河津市| 滦南县| 文昌市| 益阳市| 康平县| 凤庆县| 驻马店市| 福贡县| 张北县| 常州市| 石首市| 黄陵县| 镇宁| 汉寿县| 上蔡县| 吉安市| 阜阳市| 伊春市| 界首市| 左权县| 苍溪县| 亚东县| 库尔勒市| 且末县| 容城县| 泗阳县|