File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
python/ql/lib/semmle/python Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -1234,6 +1234,29 @@ module Http {
12341234 }
12351235 }
12361236
1237+ /** A write to a `Set-Cookie` header that sets a cookie directly. */
1238+ private class CookieHeaderWrite extends CookieWrite:: Range instanceof Http:: Server:: ResponseHeaderWrite
1239+ {
1240+ CookieHeaderWrite ( ) {
1241+ exists ( StringLiteral str |
1242+ str .getText ( ) = "Set-Cookie" and
1243+ DataFlow:: exprNode ( str )
1244+ .( DataFlow:: LocalSourceNode )
1245+ .flowsTo ( this .( Http:: Server:: ResponseHeaderWrite ) .getNameArg ( ) )
1246+ )
1247+ }
1248+
1249+ override DataFlow:: Node getNameArg ( ) {
1250+ result = this .( Http:: Server:: ResponseHeaderWrite ) .getValueArg ( )
1251+ }
1252+
1253+ override DataFlow:: Node getHeaderArg ( ) {
1254+ result = this .( Http:: Server:: ResponseHeaderWrite ) .getValueArg ( )
1255+ }
1256+
1257+ override DataFlow:: Node getValueArg ( ) { none ( ) }
1258+ }
1259+
12371260 /**
12381261 * A data-flow node that enables or disables Cross-site request forgery protection
12391262 * in a global manner.
You can’t perform that action at this time.
0 commit comments