可以安全PHP变量保持有害的:代码? [关闭](Can php variable hold ha

2019-08-01 21:26发布

比方说,我有一个文本文件。 它包含“有害的:”这样的代码:

<?php phpinfo(); ?>

或者它可能是别的,SQL注入代码,HTML链接等..

现在,这里是我的示例脚本:

$content = file_get_contents('harmfullcode.txt');

现在很明显$内容变量将储存那些有害的:代码。

我的问题是,是安全的存储在一个变量这些信息呢?

我知道,例如,如果我

echo $content;

那么这将是有害的:。

但是,如果我不与变量做任何事情,它是安全的变量来存储任何类型的有害的:代码?

编辑以使其更清晰:

也正是这一区别呢?

$content = file_get_contents('harmfullcode.txt');
$safevar = removebadstuff($content);
echo $safevar;

VS

$content = removebadstuff(file_get_contents('harmfullcode.txt'));
echo $content;

第二个例子删除坏的东西将其分配给$内容之前...? 我有点新的PHP的安全,努力把握的概念。 谢谢。

Answer 1:

哎几乎是一样的。 你可能想unset $content在第一个例子作为第二个例子只创建局部变量的第一个参数removebadstuff

请记住, 在PHP中的字符串是二进制安全的 。

必读: 终极清洁/安全功能



Answer 2:

如果将不被打印或eval'd然后它确定将其存储在变量作为任何字符串变量。



Answer 3:

除非有害的:代码的目标是在一个脆弱file_get_contents()或者PHP本身的类似功能,那么只需将它存储在一个变量应该是安全的。 Outputing它可能是不安全的,并且运行eval它肯定是一个坏主意。



Answer 4:

这取决于你如何看待这个变量。

在你的榜样, echo $content; 不会是有害的:,它只会显示出有害的:代码,而不执行它。

该有害的:例子:

eval($content);

exec($content); // any System program execution function

//preg_relace with e modifier, this is deperecated

// and so on .....


文章来源: Can php variable hold harmfull code safely? [closed]