Skip to content

Commit b5fda88

Browse files
committed
Remove duplication of UnsafeFieldReadSanitizer
1 parent 2cd1d2f commit b5fda88

File tree

3 files changed

+15
-30
lines changed

3 files changed

+15
-30
lines changed

go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -121,21 +121,6 @@ module OpenUrlRedirect {
121121
/** A sink for an open redirect, considered as a sink for safe URL flow. */
122122
private class SafeUrlSink extends SafeUrlFlow::Sink instanceof OpenUrlRedirect::Sink { }
123123

124-
/**
125-
* A read of a field considered unsafe to redirect to, considered as a sanitizer for a safe
126-
* URL.
127-
*/
128-
private class UnsafeFieldReadSanitizer extends SafeUrlFlow::SanitizerEdge {
129-
UnsafeFieldReadSanitizer() {
130-
exists(DataFlow::FieldReadNode frn, string name |
131-
name = ["User", "RawQuery", "Fragment"] and
132-
frn.getField().hasQualifiedName("net/url", "URL")
133-
|
134-
this = frn.getBase()
135-
)
136-
}
137-
}
138-
139124
/**
140125
* Reinstate the usual field propagation rules for fields, which the OpenURLRedirect
141126
* query usually excludes, for fields of `Params` other than `Params.Fixed`.

go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -118,18 +118,3 @@ module RequestForgery {
118118

119119
/** A sink for request forgery, considered as a sink for safe URL flow. */
120120
private class SafeUrlSink extends SafeUrlFlow::Sink instanceof RequestForgery::Sink { }
121-
122-
/**
123-
* A read of a field considered unsafe for request forgery, considered as a sanitizer for a safe
124-
* URL.
125-
*/
126-
private class UnsafeFieldReadSanitizer extends SafeUrlFlow::SanitizerEdge {
127-
UnsafeFieldReadSanitizer() {
128-
exists(DataFlow::FieldReadNode frn, string name |
129-
(name = "RawQuery" or name = "Fragment" or name = "User") and
130-
frn.getField().hasQualifiedName("net/url", "URL")
131-
|
132-
this = frn.getBase()
133-
)
134-
}
135-
}

go/ql/lib/semmle/go/security/SafeUrlFlowCustomizations.qll

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,19 @@ module SafeUrlFlow {
4040
private class StringSlicingEdge extends SanitizerEdge {
4141
StringSlicingEdge() { this = any(DataFlow::SliceNode sn) }
4242
}
43+
44+
/**
45+
* A read of a field considered unsafe to redirect to, considered as a sanitizer for a safe
46+
* URL.
47+
*/
48+
private class UnsafeFieldReadSanitizer extends SanitizerEdge {
49+
UnsafeFieldReadSanitizer() {
50+
exists(DataFlow::FieldReadNode frn, string name |
51+
name = ["Fragment", "RawQuery", "User"] and
52+
frn.getField().hasQualifiedName("net/url", "URL")
53+
|
54+
this = frn.getBase()
55+
)
56+
}
57+
}
4358
}

0 commit comments

Comments
 (0)