contao/issues — Issue #710: Integration von PHPIDS
Author: importer
Created: 2011-11-24 15:54:06+00:00
State: open
Labels: Feature, frontend

Ich würde es klasse finden wenn ihr [PHPIDS](http://php-ids.org/) direkt in TL integrieren könntet.
Ich wollte dafür ein Modul programmieren, sehe aber leider keine Möglichkeit das System zu integrieren ohne Typolight Dateien von Hand zu ändern.

Zum Testen hab ich folgenden Code am Anfang der initialize.php eingefügt.
Im Backend nur die index.php weil es sonst Probleme mit dem Erstellen von Artikeln geben könnte (false positive Meldungen).

```
define('PHPIDS_FE_PATH', 'phpids');
define('PHPIDS_BE_PATH', '../phpids');

if (TL_MODE == 'FE')
{
if (file_exists(PHPIDS_FE_PATH.'/ids.php') && file_exists(PHPIDS_FE_PATH.'/lib/IDS/Config/Config.ini'))
{
define('PHPIDS_LIB_PATH', PHPIDS_FE_PATH.'/lib');
require(PHPIDS_FE_PATH.'/ids.php');
}
} else if (TL_MODE == 'BE' && htmlentities(basename($_SERVER[PHP_SELF])) == 'index.php')
{
if (file_exists(PHPIDS_BE_PATH.'/ids.php') && file_exists(PHPIDS_BE_PATH.'/lib/IDS/Config/Config.ini'))
{
define('PHPIDS_LIB_PATH', PHPIDS_BE_PATH.'/lib');
require(PHPIDS_BE_PATH.'/ids.php');
}
}
```

Meine ids.php sieht im Moment so aus (basiert auf der mitgelieferten example.php; Kommentare habe ich gelöscht um den Code zu kürzen):

```
$_REQUEST,
'GET' => $_GET,
'POST' => $_POST,
'COOKIE' => $_COOKIE
);

$init = IDS_Init::init(dirname(+FILE+) . '/lib/IDS/Config/Config.ini');

$init->config['General']['base_path'] = dirname(+FILE+) . '/lib/IDS/';
$init->config['General']['use_base_path'] = true;
$init->config['Caching']['caching'] = 'none';

$ids = new IDS_Monitor($request, $init);
$result = $ids->run();

if (!$result->isEmpty()) {
echo "

Go Away Dude!

";
echo "

You're not welcome here and your attempt has been logged!

";
echo "

".$result."

";

require_once 'IDS/Log/File.php';
require_once 'IDS/Log/Email.php';
require_once 'IDS/Log/Database.php';
require_once 'IDS/Log/Composite.php';

$compositeLog = new IDS_Log_Composite();
$compositeLog->addLogger(
IDS_Log_File::getInstance($init),
IDS_Log_Email::getInstance($init),
IDS_Log_Database::getInstance($init)
);

$compositeLog->execute($result);
die();
}
} catch (Exception $e) {
printf(
'An error occured: %s',
$e->getMessage()
);
}
```

--- _Originally created by anonymous on May 7th, 2009, at 08:30pm (ID 710)_