PHP函数,用于转义字符串以写入可执行PHP文件
我需要处理不受信任的输入,这些输入将写入服务器执行的文件,PHP函数,用于转义字符串以写入可执行PHP文件,php,security,Php,Security,我需要处理不受信任的输入,这些输入将写入服务器执行的文件,config.php,如下所示: $config['key'] = "Value"; 我想这样做,用户可以提交一个表单,该表单将写入config.php。显然,将该值存储在数据库中更有意义,但我不能这样做,因为这是一个遗留系统 我找到了函数addslashes和serialize,但我不确定它们对于这个用例是否安全。我想我也可以使用hex2bin/bin2hex 我想到的另一个黑客是使用HEREDOCs: $x = <<&l
config.php
,如下所示:
$config['key'] = "Value";
我想这样做,用户可以提交一个表单,该表单将写入config.php
。显然,将该值存储在数据库中更有意义,但我不能这样做,因为这是一个遗留系统
我找到了函数addslashes
和serialize
,但我不确定它们对于这个用例是否安全。我想我也可以使用hex2bin/bin2hex
我想到的另一个黑客是使用HEREDOCs:
$x = <<<PASSWORD
untrusted input here" echo "BOOM!";
PASSWORD;
$x=Base64内容。任何base64'ed都不可能是有效的PHP代码&var\u export
就可以了。将运行时可写配置存储在PHP文件中是个坏主意。即使您的PHP语法输出完全正确,您仍然必须为web用户提供对可执行文件的运行时写访问权限,这意味着任何文件上载漏洞都将升级为执行任意代码漏洞。如果不能存储到数据库,至少要存储到一个可以从PHP读取的平面非可执行文件(如文本或JSON)。