Skip to content

Commit 83e1c69

Browse files
committed
js: broought back ServerSideUrlRedirect and ReflectedXss as it seems they are not ready to be removed
1 parent 5dfee32 commit 83e1c69

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

javascript/ql/lib/semmle/javascript/security/dataflow/ReflectedXssQuery.qll

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,27 @@ module ReflectedXssConfig implements DataFlow::ConfigSig {
2727
*/
2828
module ReflectedXssFlow = TaintTracking::Global<ReflectedXssConfig>;
2929

30+
/**
31+
* DEPRECATED. Use the `ReflectedXssFlow` module instead.
32+
*/
33+
deprecated class Configuration extends TaintTracking::Configuration {
34+
Configuration() { this = "ReflectedXss" }
35+
36+
override predicate isSource(DataFlow::Node source) { source instanceof Source }
37+
38+
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
39+
40+
override predicate isSanitizer(DataFlow::Node node) {
41+
super.isSanitizer(node) or
42+
node instanceof Sanitizer
43+
}
44+
45+
override predicate isSanitizerGuard(TaintTracking::SanitizerGuardNode guard) {
46+
guard instanceof QuoteGuard or
47+
guard instanceof ContainsHtmlGuard
48+
}
49+
}
50+
3051
private class QuoteGuard extends SharedXss::QuoteGuard {
3152
QuoteGuard() { this = this }
3253
}

javascript/ql/lib/semmle/javascript/security/dataflow/ServerSideUrlRedirectQuery.qll

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,35 @@ module ServerSideUrlRedirectConfig implements DataFlow::ConfigSig {
4343
*/
4444
module ServerSideUrlRedirectFlow = TaintTracking::Global<ServerSideUrlRedirectConfig>;
4545

46+
/**
47+
* DEPRECATED. Use the `ServerSideUrlRedirectFlow` module instead.
48+
*/
49+
deprecated class Configuration extends TaintTracking::Configuration {
50+
Configuration() { this = "ServerSideUrlRedirect" }
51+
52+
override predicate isSource(DataFlow::Node source) { source instanceof Source }
53+
54+
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
55+
56+
override predicate isSanitizer(DataFlow::Node node) {
57+
super.isSanitizer(node) or
58+
node instanceof Sanitizer
59+
}
60+
61+
override predicate isSanitizerOut(DataFlow::Node node) {
62+
ServerSideUrlRedirectConfig::isBarrierOut(node)
63+
}
64+
65+
override predicate isSanitizerGuard(TaintTracking::SanitizerGuardNode guard) {
66+
guard instanceof LocalUrlSanitizingGuard or
67+
guard instanceof HostnameSanitizerGuard
68+
}
69+
70+
override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) {
71+
ServerSideUrlRedirectConfig::isAdditionalFlowStep(pred, succ)
72+
}
73+
}
74+
4675
/**
4776
* DEPRECATED. This is no longer used as a sanitizer guard.
4877
*

0 commit comments

Comments
 (0)