File tree Expand file tree Collapse file tree 1 file changed +19
-5
lines changed
javascript/ql/lib/semmle/javascript/frameworks/helmet Expand file tree Collapse file tree 1 file changed +19
-5
lines changed Original file line number Diff line number Diff line change 44
55import javascript
66
7+ /**
8+ * A write to a property of a route handler from the "helmet" module.
9+ */
710class HelmetProperty extends DataFlow:: Node instanceof DataFlow:: PropWrite {
811 ExpressLibraries:: HelmetRouteHandler helmet ;
912
1013 HelmetProperty ( ) {
1114 this = helmet .( DataFlow:: CallNode ) .getAnArgument ( ) .getALocalSource ( ) .getAPropertyWrite ( )
1215 }
1316
17+ /**
18+ * Gets the route handler associated to this property.
19+ */
1420 ExpressLibraries:: HelmetRouteHandler getHelmet ( ) { result = helmet }
1521
22+ /**
23+ * Gets the boolean value of this property, if it may evaluate to a `Boolean`.
24+ */
1625 predicate isFalse ( ) { DataFlow:: PropWrite .super .getRhs ( ) .mayHaveBooleanValue ( false ) }
1726
27+ /**
28+ * Gets the name of the `HelmetProperty`.
29+ */
1830 string getName ( ) { result = DataFlow:: PropWrite .super .getPropertyName ( ) }
1931
20- predicate isImportantSecuritySetting ( ) {
21- // read from data extensions to allow enforcing custom settings
22- // defaults are located in javascript/ql/lib/semmle/frameworks/helmet/Helmet.Required.Setting.model.yml
23- requiredHelmetSecuritySetting ( this .getName ( ) )
24- }
32+ /**
33+ * read from data extensions to allow enforcing custom settings
34+ */
35+ predicate isImportantSecuritySetting ( ) { requiredHelmetSecuritySetting ( this .getName ( ) ) }
2536}
2637
38+ /**
39+ * defaults are located in `javascript/ql/lib/semmle/frameworks/helmet/Helmet.Required.Setting.model.yml`
40+ */
2741extensible predicate requiredHelmetSecuritySetting ( string name ) ;
You can’t perform that action at this time.
0 commit comments