This is an experimental Bundle whitch supports PHPIDS in your Symfony2-Project.
-
Register bundle in AppKernel.php
# app/AppKernel.php $bundles = array( // ... new FS\Log4PhpBundle\FSPhpIdsBundle(), // ... ); -
Add Bundle to autoload
# app/autoload.php $loader->registerNamespaces(array( // ... 'FS' => __DIR__.'/../vendor/bundles', // ... )); -
Download the ZIP and unzip it to vendor
-
Add PHPIDS to autoload
# app/autoload.php $loader->registerPrefixes(array( // ... 'IDS_' => __DIR__.'/../vendor/phpids/lib', // ... )); You have to setup the include_path set_include_path(get_include_path().':'.__DIR__.'/../vendor/phpids/lib');
Mainly it is a port of the IDS/Configuration/Configuration.ini.php to YAML.
# app/config/config.yml
fs_php_ids:
general:
inputs: [ post ]
filter_type: xml
use_base_path: true
use_default_filter: false
tmp_path: tmp
scan_keys: true
html: [ ]
json: [ ]
exceptions: [ ]
min_php_version: 5.1.6
caching:
method: file
If use_default_filter is false you must specify a filter-file. If it is true PHPIDS uses the default_filter.xml.
To specify input request-types you can add post,get,cookie,all to the inputs array. In this case all means the $_REQUEST super-global.
The base_path option has the default-value %kernel.root_dir%/../vendor/phpids/lib/IDS/.
$report = $this->get('phpids')->run();
if ($report->getImpact() > 20) {
// do something
}
Adding GET-Request data to the monitor:
$ids = $this->get('phpids');
$ids->addRequest(FS\PhpIdsBundle\PhpIds::REQUEST_GET);