假设我有一个文本文件。它包含“有害”代码,如:
<?php phpinfo(); ?>
或者它可能是其他任何东西,SQL注入代码,HTML链接等...
现在这是我的示例脚本:
$content = file_get_contents('harmfullcode.txt');
现在很明显,$ content变量将存储有害代码。
我的问题是,将这些信息存储在变量中是否安全?
我知道如果我
echo $content;
然后它会有害。
但如果我不对变量做任何事情,变量是否可以安全地保存任何类型的有害代码?
编辑以使其更清晰:
这有什么区别?
$content = file_get_contents('harmfullcode.txt');
$safevar = removebadstuff($content);
echo $safevar;
VS
$content = removebadstuff(file_get_contents('harmfullcode.txt'));
echo $content;
第二个例子在将它分配给$ content之前删除了不好的东西...... ??我对php安全性有点新意,试图掌握这个概念。谢谢。
答案 0 :(得分:0)
如果不打印或评估,则可以将其作为任何字符串变量存储在变量中。
答案 1 :(得分:0)
除非有害代码针对file_get_contents()
中的漏洞或PHP本身的类似功能,否则将其存储在变量中应该是安全的。输出它可能是不安全的,在它上运行eval
肯定是一个坏主意。
答案 2 :(得分:0)
这取决于你如何对待这个变量。
在您的示例中,echo $content;
不会有害,它只会显示有害代码,而不执行它。
有害的例子:
eval($content);
exec($content); // any System program execution function
//preg_relace with e modifier, this is deperecated
// and so on .....
答案 3 :(得分:0)
unset
$content
,因为第二个示例仅将局部变量创建为removebadstuff
的第一个参数。