网页上的PHP Debug-class漏洞工件

时间:2017-05-01 17:53:16

标签: php

我有这个Debug类

class Debug {       
    static function log($string){
        file_put_contents('log.txt', $string."\n", FILE_APPEND);
    }
}

我正在使用它将一些东西转储到我的调试文件中。

例如,我有这段代码:

    public function getActiveLocks($ship){

        Debug::log("EW for ship #".$ship->id); //$ship->id = 1 

        for ($i = 0; $i < sizeof($this->ships); $i++){    
            $target = $this->ships[$i]->getCurrentPosition();
            $dist = Math::getDist2($pos, $target);

            if ($dist <= $ew->dist){
                Debug::log("potential lock vs: #".$this->ships[$i]->id);
            }
            else {
                Debug::log("no lock vs: #".$this->ships[$i]->id);
            }
        }
    }
}

正如您所注意到的那样,有3次调用Debug::log。 现在,日志记录确实正确发生。 但是,有时候该类显然会将HTML泄漏到文档正文中。在上面的具体示例中,非常Debug::log调用导致我的网页在正文中显示“))”(除了正确写入日志文件)。

如果我删除第一个条目,我的HTML将会正常显示。 删除第二个或第三个条目不会删除泄漏“))”。 因此,出于某种原因,第一个Debug::log调用(称为一次!)。结果回声))。我不知道为什么或如何,但它是一个我无法弄清楚的主要烦恼。此外,它有时打破我的脚本。

请注意我留下了一些变量来显示我面临的基本问题。我确定我没有留下任何重要的东西。

请建议。

0 个答案:

没有答案