@@ -30,7 +30,7 @@ class UnsafeJsEvalAdditionalFlowStep extends Unit {
3030}
3131
3232/**
33- * A default SQL injection sink for the `WKWebView` interface.
33+ * A default javascript evaluation sink for the `WKWebView` interface.
3434 */
3535private class WKWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
3636 WKWebViewDefaultUnsafeJsEvalSink ( ) {
@@ -50,7 +50,7 @@ private class WKWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
5050}
5151
5252/**
53- * A default SQL injection sink for the `WKUserContentController` interface.
53+ * A default javascript evaluation sink for the `WKUserContentController` interface.
5454 */
5555private class WKUserContentControllerDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
5656 WKUserContentControllerDefaultUnsafeJsEvalSink ( ) {
@@ -61,7 +61,7 @@ private class WKUserContentControllerDefaultUnsafeJsEvalSink extends UnsafeJsEva
6161}
6262
6363/**
64- * A default SQL injection sink for the `UIWebView` and `WebView` interfaces.
64+ * A default javascript evaluation sink for the `UIWebView` and `WebView` interfaces.
6565 */
6666private class UIWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
6767 UIWebViewDefaultUnsafeJsEvalSink ( ) {
@@ -74,7 +74,7 @@ private class UIWebViewDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
7474}
7575
7676/**
77- * A default SQL injection sink for the `JSContext` interface.
77+ * A default javascript evaluation sink for the `JSContext` interface.
7878 */
7979private class JSContextDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
8080 JSContextDefaultUnsafeJsEvalSink ( ) {
@@ -87,7 +87,7 @@ private class JSContextDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
8787}
8888
8989/**
90- * A default SQL injection sink for the `JSEvaluateScript` function.
90+ * A default javascript evaluation sink for the `JSEvaluateScript` function.
9191 */
9292private class JSEvaluateScriptDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
9393 JSEvaluateScriptDefaultUnsafeJsEvalSink ( ) {
@@ -98,7 +98,7 @@ private class JSEvaluateScriptDefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
9898}
9999
100100/**
101- * A default SQL injection additional taint step.
101+ * A default javascript evaluation additional taint step.
102102 */
103103private class DefaultUnsafeJsEvalAdditionalFlowStep extends UnsafeJsEvalAdditionalFlowStep {
104104 override predicate step ( DataFlow:: Node nodeFrom , DataFlow:: Node nodeTo ) {
@@ -120,3 +120,13 @@ private class DefaultUnsafeJsEvalAdditionalFlowStep extends UnsafeJsEvalAddition
120120private class DefaultUnsafeJsEvalSink extends UnsafeJsEvalSink {
121121 DefaultUnsafeJsEvalSink ( ) { sinkNode ( this , "code-injection" ) }
122122}
123+
124+ /**
125+ * A barrier for javascript evaluation.
126+ */
127+ private class UnsafeJsEvalDefaultBarrier extends UnsafeJsEvalBarrier {
128+ UnsafeJsEvalDefaultBarrier ( ) {
129+ // any numeric type
130+ this .asExpr ( ) .getType ( ) .getUnderlyingType ( ) .getABaseType * ( ) .getName ( ) = "Numeric"
131+ }
132+ }
0 commit comments