PHP Expose的配置(PHPIDS)

时间:2018-04-10 05:38:06

标签: php security configuration installation

我一直在寻找一个PHP入侵检测系统 Exposed是一个很好的候选人。最新的 documentation就在这里。

我在理解Exposed的安装方面遇到了一些问题,所以这是我的问题。

假设我想在一个名为users.php的文件中添加这层安全性,我已阅读文档,我的文件将如下所示:

<?php

// <EXSPOSED_SNIPPET_LOGIC>

// Enable loader, mocklogger
require 'vendor/autoload.php';
// Initiate Monolog
use Monolog\Logger;
use Monolog\Handler\FirePHPHandler;

ini_set('display_errors', 0);

// The data to filter
$data = array(
  'GET' => $_GET,
  'POST' => $_POST,
  'COOKIE' => $_COOKIE
);
// Load filters
$filters = new \Expose\FilterCollection();
$filters->load();

// Initiate logger
$logger = new Logger('my_logger');
$logger->pushHandler(new StreamHandler(__DIR__.'/__exposed.log', Logger::DEBUG));
$logger->pushHandler(new FirePHPHandler());

// Run tests
$manager = new \Expose\Manager($filters, $logger);
$manager->run($data);

// Define a threatlevel to act upon
$threatlevel = 12;
if( $manager->getImpact() >= $threatlevel ){
    // **001**
    // We are most likely under attack or atleast we should pay attention
    // What do we log here, how do we log it and do we send email to alert?

    $reports = $manager->getReports();
    print_r($reports);
} else {
    // **002**
    // Assuming there is normal activity
    // Should we log anything here, and if so what?
}

// </EXSPOSED_SNIPPET_LOGIC>

// Here comes the original code belonging to users.php
/* ... */
?>

现在,代码将从行中将所有请求写入日志文件:

$logger->pushHandler(new StreamHandler(__DIR__.'/__exposed.log', Logger::DEBUG));

这是否需要,这将在短时间内获得大量数据,我甚至可以在以后将日志用于任何目的?

我也很想知道Monolog Handler,这一行:

use Monolog\Handler\FirePHPHandler;
...
$logger->pushHandler(new FirePHPHandler());

这段代码甚至做了什么?我看不出有或没有它的输出与屏幕有任何区别,日志文件也似乎相同或不相同。

我的主要问题是评论中的** 001 **和** 002 **,也就是说,如果我正确理解了这个概念,希望我的问题不会错过目标。

在我看来,检查输入以及何时触发某个级别,应启用certrain日志记录部分和跟踪。 Maby这不是Exposed的一部分吗?如果您对最终确定此集成代码有一些意见,我会非常感激。

提前谢谢

0 个答案:

没有答案