Commit a5549907 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

Save db from SQL injections

parent ecf4a02a
...@@ -74,7 +74,7 @@ class NewJobCreateView(CreateView): ...@@ -74,7 +74,7 @@ class NewJobCreateView(CreateView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
name = request.POST.get('name') name = request.POST.get('name')
spider = Spider.objects.get(pk=request.POST.get('spider')) spider = Spider.objects.get(pk=request.POST.get('spider'))
query = request.POST.get('query') query = self._validate_query(request.POST.get('query'))
job = Job.objects.create(name=name, spider=spider, query=query) job = Job.objects.create(name=name, spider=spider, query=query)
interval = request.POST.get('interval') interval = request.POST.get('interval')
if interval: if interval:
...@@ -85,6 +85,15 @@ class NewJobCreateView(CreateView): ...@@ -85,6 +85,15 @@ class NewJobCreateView(CreateView):
return HttpResponseRedirect(reverse('job_list')) return HttpResponseRedirect(reverse('job_list'))
def _validate_query(self, query):
block = [';', 'in', 'select']
if any(ext in query for ext in block):
print('Query is blocked')
return None
else:
return query
@method_decorator(login_required, name='dispatch') @method_decorator(login_required, name='dispatch')
class EditJobView(UpdateView): class EditJobView(UpdateView):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment