File tree Expand file tree Collapse file tree 3 files changed +3
-10
lines changed
python/ql/src/semmle/python/web/django Expand file tree Collapse file tree 3 files changed +3
-10
lines changed Original file line number Diff line number Diff line change @@ -29,9 +29,7 @@ deprecated class DjangoRedirect = DjangoShortcutsRedirectSink;
29
29
*/
30
30
class DjangoRedirectResponseSink extends HttpRedirectTaintSink {
31
31
DjangoRedirectResponseSink ( ) {
32
- exists ( CallNode call |
33
- call = any ( DjangoRedirectResponseClass cls ) .getACall ( )
34
- |
32
+ exists ( CallNode call | call = any ( DjangoRedirectResponseClass cls ) .getACall ( ) |
35
33
this = call .getArg ( 0 )
36
34
or
37
35
this = call .getArgByName ( "redirect_to" )
Original file line number Diff line number Diff line change @@ -21,11 +21,7 @@ private class DjangoResponseKind extends TaintKind {
21
21
22
22
/** INTERNAL taint-source used for tracking a django response object. */
23
23
private class DjangoResponseSource extends TaintSource {
24
- DjangoResponseSource ( ) {
25
- exists ( DjangoContentResponseClass cls |
26
- cls .getACall ( ) = this
27
- )
28
- }
24
+ DjangoResponseSource ( ) { exists ( DjangoContentResponseClass cls | cls .getACall ( ) = this ) }
29
25
30
26
override predicate isSourceOf ( TaintKind kind ) { kind instanceof DjangoResponseKind }
31
27
Original file line number Diff line number Diff line change @@ -51,7 +51,6 @@ class DjangoContentResponseClass extends ClassValue {
51
51
// `django.http.response.HttpResponseNotAllowed` it would make much more sense to add
52
52
// the custom logic in this class (or subclass), than to handle all of it in the sink
53
53
// definition.
54
-
55
54
/** Gets the `content` argument of a `call` to the constructor */
56
55
ControlFlowNode getContentArg ( CallNode call ) { none ( ) }
57
56
@@ -60,7 +59,7 @@ class DjangoContentResponseClass extends ClassValue {
60
59
}
61
60
62
61
/** A class that is a Django Response, and is vulnerable to XSS. */
63
- class DjangoXSSVulnerableResponseClass extends DjangoContentResponseClass {
62
+ class DjangoXSSVulnerableResponseClass extends DjangoContentResponseClass {
64
63
DjangoXSSVulnerableResponseClass ( ) {
65
64
// We want to avoid FPs on subclasses that are not exposed to XSS, for example `JsonResponse`.
66
65
// The easiest way is to disregard any subclass that has a special `__init__` method.
You can’t perform that action at this time.
0 commit comments