11import python
2-
3-
42import semmle.python.security.TaintTracking
53import semmle.python.security.strings.Basic
64private import semmle.python.web.Http
7-
85import Tornado
96
107class TornadoConnection extends TaintKind {
11-
12- TornadoConnection ( ) {
13- this = "tornado.http.connection"
14- }
15-
8+ TornadoConnection ( ) { this = "tornado.http.connection" }
169}
1710
1811class TornadoConnectionSource extends TaintSource {
19-
2012 TornadoConnectionSource ( ) {
2113 isTornadoRequestHandlerInstance ( this .( AttrNode ) .getObject ( "connection" ) )
2214 }
2315
24- override string toString ( ) {
25- result = "Tornado http connection source"
26- }
27-
28- override predicate isSourceOf ( TaintKind kind ) {
29- kind instanceof TornadoConnection
30- }
16+ override string toString ( ) { result = "Tornado http connection source" }
3117
18+ override predicate isSourceOf ( TaintKind kind ) { kind instanceof TornadoConnection }
3219}
3320
3421class TornadoConnectionWrite extends HttpResponseTaintSink {
35-
36- override string toString ( ) {
37- result = "tornado.connection.write"
38- }
22+ override string toString ( ) { result = "tornado.connection.write" }
3923
4024 TornadoConnectionWrite ( ) {
4125 exists ( CallNode call , ControlFlowNode conn |
4226 conn = call .getFunction ( ) .( AttrNode ) .getObject ( "write" ) and
43- this = call .getAnArg ( ) |
27+ this = call .getAnArg ( )
28+ |
4429 exists ( TornadoConnection tc | tc .taints ( conn ) )
4530 or
4631 isTornadoRequestHandlerInstance ( conn )
4732 )
4833 }
4934
50- override predicate sinks ( TaintKind kind ) {
51- kind instanceof StringKind
52- }
53-
35+ override predicate sinks ( TaintKind kind ) { kind instanceof StringKind }
5436}
5537
5638class TornadoHttpRequestHandlerWrite extends HttpResponseTaintSink {
57-
58- override string toString ( ) {
59- result = "tornado.HttpRequesHandler.write"
60- }
39+ override string toString ( ) { result = "tornado.HttpRequesHandler.write" }
6140
6241 TornadoHttpRequestHandlerWrite ( ) {
6342 exists ( CallNode call , ControlFlowNode node |
@@ -67,17 +46,11 @@ class TornadoHttpRequestHandlerWrite extends HttpResponseTaintSink {
6746 )
6847 }
6948
70- override predicate sinks ( TaintKind kind ) {
71- kind instanceof StringKind
72- }
73-
49+ override predicate sinks ( TaintKind kind ) { kind instanceof StringKind }
7450}
7551
7652class TornadoHttpRequestHandlerRedirect extends HttpResponseTaintSink {
77-
78- override string toString ( ) {
79- result = "tornado.HttpRequesHandler.redirect"
80- }
53+ override string toString ( ) { result = "tornado.HttpRequesHandler.redirect" }
8154
8255 TornadoHttpRequestHandlerRedirect ( ) {
8356 exists ( CallNode call , ControlFlowNode node |
@@ -87,11 +60,5 @@ class TornadoHttpRequestHandlerRedirect extends HttpResponseTaintSink {
8760 )
8861 }
8962
90- override predicate sinks ( TaintKind kind ) {
91- kind instanceof StringKind
92- }
93-
63+ override predicate sinks ( TaintKind kind ) { kind instanceof StringKind }
9464}
95-
96-
97-
0 commit comments