【问题标题】:php include a file with a variable name?php包含一个带有变量名的文件?
【发布时间】:2013-06-25 14:44:10
【问题描述】:

我正在尝试包含来自 cookie 的文件

说我的 cookie 有值

$file = $_COOKIE['PageValue'];

我想像这样包含这个文件

include '$file';

有没有办法做到这一点?

干杯

【问题讨论】:

    标签: php file cookies include


    【解决方案1】:
    if( file_exists($_SERVER['DOCUMENT_ROOT'].$file){
        include $_SERVER['DOCUMENT_ROOT'].$file; 
    }
    

    !!一个非常大的警告! 这个例子太简单了。始终验证用户输入,尤其是在包含文件时。

    好的做法是检查 $file 是否在包含允许 $files 的数组中,或者检查数据库。

    这是一个脆弱的部分,XSS 指日可待。

    您可能想阅读以下内容:http://en.wikipedia.org/wiki/File_inclusion_vulnerability

    【讨论】:

      【解决方案2】:

      参见手册中的this link:

       include $_COOKIE['PageValue'];
      

      如果您不确定该值是否总是返回有效值,您可能需要添加空检查和约束

      【讨论】:

        【解决方案3】:

        是的,你写了答案:

        include $file; // No quotes!
        

        但是,您应该清理您的输入,最好将可能包含的文件列入白名单。如需更多帮助,请发布您的代码示例,或向我们提供更多信息,了解您想要完成的工作。

        【讨论】:

          猜你喜欢
          • 2012-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多