From fa565b3ad940ebab380c81a8556623c0d4540f85 Mon Sep 17 00:00:00 2001 From: danieleperera Date: Thu, 30 Jul 2020 17:22:17 +0000 Subject: [PATCH] added validation using regex on onion class --- onioningestor/onion.py | 12 ++++++++++++ onioningestor/operators/__init__.py | 2 +- onioningestor/sources/simplefile.py | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/onioningestor/onion.py b/onioningestor/onion.py index 8e814ee..aa56a3e 100644 --- a/onioningestor/onion.py +++ b/onioningestor/onion.py @@ -1,3 +1,5 @@ +import re +import operator from datetime import datetime as dt class Onion(object): @@ -12,6 +14,16 @@ class Onion(object): self.datetime = dt.now() self.operators = {} + url = property(operator.attrgetter('_url')) + + @url.setter + def url(self, domain): + onion_pattern = re.compile(r'([a-z2-7]{16,56}\.onion)') + if onion_pattern.match(domain): + self._url = domain + else: + raise Exception("Onion domain pattern does not match") + def set_operator(self, response): self.operators.update(response) diff --git a/onioningestor/operators/__init__.py b/onioningestor/operators/__init__.py index 574ac55..6aa6201 100644 --- a/onioningestor/operators/__init__.py +++ b/onioningestor/operators/__init__.py @@ -113,7 +113,7 @@ class Operator: type='domain', status='offline', monitor=False, - denylist=False))) + denylist=""))) def process(self, onion): """Process all applicable onions.""" diff --git a/onioningestor/sources/simplefile.py b/onioningestor/sources/simplefile.py index 6c420b4..8442066 100644 --- a/onioningestor/sources/simplefile.py +++ b/onioningestor/sources/simplefile.py @@ -38,7 +38,7 @@ class Plugin(Source): type='domain', status='offline', monitor=False, - denylist=False) + denylist="") ) )