Go to file
Raphaël Vinot 53131f3338 Improve send mail support
- Automatically send a mail after a certain threshold
- Do not send more than one email per day for the same URL
2015-03-05 17:15:55 +01:00
web Improve send mail support 2015-03-05 17:15:55 +01:00
.gitignore Initial commit 2015-03-02 14:55:34 +01:00
LICENSE Initial commit 2015-03-02 14:55:34 +01:00
README.md uwhoisd added + gnu parallel command line 2015-03-04 14:38:54 +01:00
config.ini.sample Initial commit 2015-03-02 14:55:34 +01:00
install.sh Initial commit 2015-03-02 14:55:34 +01:00
requirements.txt Add mail notification. 2015-03-04 17:31:41 +01:00
run_redis.sh Initial commit 2015-03-02 14:55:34 +01:00
runapp.py Initial commit 2015-03-02 14:55:34 +01:00
update_deps.sh Initial commit 2015-03-02 14:55:34 +01:00
url_abuse_async.py Improve send mail support 2015-03-05 17:15:55 +01:00
worker.py Initial commit 2015-03-02 14:55:34 +01:00

README.md

#URL Abuse

URL Abuse is a versatile free software for URL review, analysis and black-list reporting. URL Abuse is composed of a web interface where requests are submitted asynchronously and a back-end system to process the URLs into features modules.

Features

Please note that some of the API services will require an API key. The API keys should be located in the root of the URL Abuse directory.

Demo

CIRCL URL Abuse is online.

Install

Install the requirements

pip install -r requirements.txt

Copy and review the configuration:

cp config.ini.sample config.ini

Install Redis and update the configuration.

Start the Redis back-end

./run_redis.sh

Start the workers (at least 10)

seq 10 | parallel -u -j 10 ./worker.py

Start the web interface

python runapp.py

Contributing

We welcome pull requests for new extensions, bug fixes.

Add a new module

Look at the existings functions/modules. The changes will have to be made in the following files:

  • Add the function you want to execure in url_abuse_async.py
  • Add a route in web/__init__.py. This route will do an async call to the function defined in url_abuse_async.py. The parameter of the function is sent in an POST object
  • Add a statement in web/templates/url-report.html. The data option is the parameter to pass to the javascript directive
  • Add a directive in web/static/main.js, it will take care of passing the parameter to the backend and regularly pull for the response of the async call