File tree Expand file tree Collapse file tree 6 files changed +26
-14
lines changed
src/semmle/python/web/django
query-tests/Security/lib/django/views Expand file tree Collapse file tree 6 files changed +26
-14
lines changed Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ private class DjangoView extends ClassValue {
6767}
6868
6969private FunctionValue djangoViewHttpMethod ( ) {
70- exists ( DjangoView view | view .attr ( httpVerbLower ( ) ) = result )
70+ exists ( DjangoView view | view .lookup ( httpVerbLower ( ) ) = result )
7171}
7272
7373class DjangoClassBasedViewRequestArgument extends DjangoRequestSource {
Original file line number Diff line number Diff line change 1010| views.py:7 | Attribute() | externally controlled string |
1111| views.py:11 | Attribute() | externally controlled string |
1212| views.py:15 | Attribute() | externally controlled string |
13- | views.py:22 | Attribute() | externally controlled string |
14- | views.py:27 | Attribute() | externally controlled string |
15- | views.py:31 | Attribute() | externally controlled string |
13+ | views.py:23 | Attribute() | externally controlled string |
14+ | views.py:29 | Attribute() | externally controlled string |
15+ | views.py:34 | Attribute() | externally controlled string |
16+ | views.py:38 | Attribute() | externally controlled string |
Original file line number Diff line number Diff line change 77| views.py:6 | request | django.request.HttpRequest |
88| views.py:10 | request | django.request.HttpRequest |
99| views.py:14 | request | django.request.HttpRequest |
10- | views.py:25 | page_number | externally controlled string |
11- | views.py:25 | request | django.request.HttpRequest |
12- | views.py:30 | arg0 | externally controlled string |
13- | views.py:30 | arg1 | externally controlled string |
14- | views.py:30 | request | django.request.HttpRequest |
15- | views.py:50 | request | django.request.HttpRequest |
16- | views.py:50 | username | externally controlled string |
17- | views.py:59 | request | django.request.HttpRequest |
10+ | views.py:22 | request | django.request.HttpRequest |
11+ | views.py:28 | request | django.request.HttpRequest |
12+ | views.py:32 | page_number | externally controlled string |
13+ | views.py:32 | request | django.request.HttpRequest |
14+ | views.py:37 | arg0 | externally controlled string |
15+ | views.py:37 | arg1 | externally controlled string |
16+ | views.py:37 | request | django.request.HttpRequest |
17+ | views.py:57 | request | django.request.HttpRequest |
18+ | views.py:57 | username | externally controlled string |
19+ | views.py:66 | request | django.request.HttpRequest |
Original file line number Diff line number Diff line change @@ -15,11 +15,18 @@ def post_params_xss(request):
1515 return HttpResponse (request .POST .get ("untrusted" ))
1616
1717
18- class ClassView (View ):
18+ class Foo (object ):
19+ # Note: since Foo is used as the super type in a class view, it will be able to handle requests.
1920
21+ # TODO: Currently we don't flag `untrusted` as a DjangoRequestParameter
22+ def post (self , request , untrusted ):
23+ return HttpResponse ('Foo post: {}' .format (untrusted ))
24+
25+
26+ class ClassView (View , Foo ):
2027 # TODO: Currently we don't flag `untrusted` as a DjangoRequestParameter
2128 def get (self , request , untrusted ):
22- return HttpResponse ('ClassView: {}' .format (untrusted ))
29+ return HttpResponse ('ClassView get : {}' .format (untrusted ))
2330
2431
2532def show_articles (request , page_number = 1 ):
Original file line number Diff line number Diff line change 1+ class View :
2+ pass
You can’t perform that action at this time.
0 commit comments