Build Status Logo

Shadow Daemon is a collection of tools to detect, record and prevent attacks on web applications. Technically speaking, Shadow Daemon is a web application firewall that intercepts requests and filters out malicious parameters. It is a modular system that separates web application, analysis and interface to increase security, flexibility and expandability.

This component can be used to connect Perl applications with the background server.


For the full documentation please refer to


You can install the modules with CPAN:

cpan -i Shadowd::Connector

It is also possible to clone this repository and install the modules manually:

perl Makefile.PL
make install

You also have to create a configuration file. You can copy misc/examples/connectors.ini to /etc/shadowd/connectors.ini. The example configuration is annotated and should be self-explanatory.


To protect CGI applications you simply have to load the module:

use Shadowd::Connector::CGI;

This can be automated by executing Perl scripts with:

perl -mShadowd::Connector::CGI


Mojolicious applications require a small modification. It is necessary to create a hook to intercept requests:

use Shadowd::Connector::Mojolicious;

sub startup {
  my $app = shift;

  $app->hook(before_dispatch => sub {
    my $self = shift;
    return Shadowd::Connector::Mojolicious->new($self)->start();

  # ...


Mojolicious::Lite applications require a small change as well:

use Shadowd::Connector::Mojolicious;

under sub {
  my $self = shift;
  return Shadowd::Connector::Mojolicious->new($self)->start();

The connector is only executed if the request matches a route.