Jef*_*eff 2 php security include
在PHP手册中include
,有一个用户贡献声明如下:
include()当用于加载配置信息时有一个可怕的安全漏洞,如果有人破坏了包含文件中的PHP标头,它会很乐意将配置文件打印到包含它作为纯文本的每个页面.
幸运的是,这种行为可以快速轻松地进行(本文中提到):
<?php
ob_start();//Hook output buffer
include("config.php");
ob_end_clean();//Clear output buffer
?>
Run Code Online (Sandbox Code Playgroud)
我知道以下将阻止任何输出,直到输出缓冲区被清除/解除/无论什么.但是,我不确定的是if someone corrupts the PHP header in the included file
- 是什么可以在客户端/远程完成,或者如果我不小心给php文件一个不同的文件扩展名?
总而言之:外部用户如何破坏php标头?
好吧,假设您有一个seekritpasswords.php
包含的文件,它包含您的数据库凭据.你有一个看起来像这样的文件:
<?php
$db_user = 'fred';
$db_passwd = 'barney';
$db_name = 'wilma';
$db_host = 'betty';
Run Code Online (Sandbox Code Playgroud)
php"标题"是该<?php
部分.如果它被破坏,比如通过向它添加一个空格,或者完全删除它等等......那么该文件不再是一个php脚本,因为它不包含触发"php模式"的标题.它只是纯文本,并像任何其他纯文本文件一样被视为常规输出.请记住,没有PHP脚本这样的东西.只有包含一个或多个PHP块的文件,这些块由<?php ?>
标记集分隔.
归档时间: |
|
查看次数: |
1800 次 |
最近记录: |