搜尋
首頁php教程php手册[转]老王:如何安全的include文件

大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样: ?php?? $config['a']=1;?? $config['b']=2;?? 这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种 ?php?? return?array(?? 'a'=1,'b'=2?

大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样:

    <?php ??
    $config['a']=1;??
    $config['b']=2;??

这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种

    <?php ??
    return?array(??
    'a'=>1,'b'=>2??
    );??

这时候只要写$config = include('config.php'),就相当于和上面一样了。然后老王讲的就是指第二种情况。

原文在:http://huoding.com/2014/02/25/329

他举的例子是:

    <?php ??
    ??
    $debug?=?false;??
    //?...??
    $config?=?include?'config.php';??
    //?...??
    if?($debug)?{??
    ????phpinfo();??
    }??

如果config.php里万一写了$debug=true;那么就会造成phpinfo()被输出了,与实际预料就有了偏差了。那么怎么安全的include呢?

老王说:

    $config?=?call_user_func(function()?{??
    ????return?include?'config.php';??
    });??

这样就利用局部变量把里面的一些可能污染外部的变量控制在匿名函数的作用域里。

然后我自己也测试了一下,确实。即使用$GLOBALS,也没有影响,而单独的php文件,如果你不是function ,也不能直接global $debug;这样是语法错误的。

所以。。。。如果为了安全,你还是和老王学一下吧。。。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具