@@ -47,12 +47,6 @@ private predicate containsFrameAncestorsDirectiveExpr(Expr value) {
4747 containsFrameAncestorsDirective ( value .stripImplicit ( ) .getValue ( ) )
4848}
4949
50- private predicate isClickjackingHeader ( Expr name , Expr value ) {
51- isXFrameOptionsHeaderNameExpr ( name )
52- or
53- isContentSecurityPolicyHeaderNameExpr ( name ) and containsFrameAncestorsDirectiveExpr ( value )
54- }
55-
5650private predicate isDirectResponseHeadersAccess ( Expr expr ) {
5751 exists ( PropertyAccessExpr headers , MicrosoftAspNetCoreHttpHttpResponse response |
5852 expr .stripImplicit ( ) = headers and headers .getProperty ( ) = response .getHeadersProperty ( )
@@ -78,18 +72,33 @@ private predicate isClickjackingHeaderCall(MethodCall call) {
7872 call .getTarget ( ) = any ( SystemWebHttpResponseClass r ) .getAppendHeaderMethod ( ) or
7973 call .getTarget ( ) = any ( SystemWebHttpResponseClass r ) .getAddHeaderMethod ( )
8074 ) and
81- isClickjackingHeader ( call .getArgumentForName ( "name" ) , call .getArgumentForName ( "value" ) )
75+ (
76+ isXFrameOptionsHeaderNameExpr ( call .getArgumentForName ( "name" ) )
77+ or
78+ isContentSecurityPolicyHeaderNameExpr ( call .getArgumentForName ( "name" ) ) and
79+ containsFrameAncestorsDirectiveExpr ( call .getArgumentForName ( "value" ) )
80+ )
8281 or
8382 call .getTarget ( ) .hasUndecoratedName ( [ "Append" , "Add" , "TryAdd" ] ) and
8483 isResponseHeadersAccess ( getHeaderDictionaryReceiver ( call ) ) and
85- isClickjackingHeader ( call .getArgumentForName ( "key" ) , call .getArgumentForName ( "value" ) )
84+ (
85+ isXFrameOptionsHeaderNameExpr ( call .getArgumentForName ( "key" ) )
86+ or
87+ isContentSecurityPolicyHeaderNameExpr ( call .getArgumentForName ( "key" ) ) and
88+ containsFrameAncestorsDirectiveExpr ( call .getArgumentForName ( "value" ) )
89+ )
8690}
8791
8892private predicate isClickjackingHeaderIndexerAssignment ( AssignExpr assignment ) {
8993 exists ( IndexerCall indexer |
9094 assignment .getLeftOperand ( ) = indexer and
9195 isResponseHeadersAccess ( indexer .getQualifier ( ) ) and
92- isClickjackingHeader ( indexer .getArgument ( 0 ) , assignment .getRightOperand ( ) )
96+ (
97+ isXFrameOptionsHeaderNameExpr ( indexer .getArgument ( 0 ) )
98+ or
99+ isContentSecurityPolicyHeaderNameExpr ( indexer .getArgument ( 0 ) ) and
100+ containsFrameAncestorsDirectiveExpr ( assignment .getRightOperand ( ) )
101+ )
93102 )
94103}
95104
0 commit comments