mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Java: Add extension point and default sanitizer to Open Redirect query
This commit is contained in:
@@ -6,10 +6,14 @@ private import semmle.code.java.dataflow.ExternalFlow
|
||||
import semmle.code.java.frameworks.Servlets
|
||||
import semmle.code.java.frameworks.ApacheHttp
|
||||
private import semmle.code.java.frameworks.JaxWS
|
||||
private import semmle.code.java.security.RequestForgery
|
||||
|
||||
/** A URL redirection sink. */
|
||||
abstract class UrlRedirectSink extends DataFlow::Node { }
|
||||
|
||||
/** A URL redirection sanitizer. */
|
||||
abstract class UrlRedirectSanitizer extends DataFlow::Node { }
|
||||
|
||||
/** A default sink represeting methods susceptible to URL redirection attacks. */
|
||||
private class DefaultUrlRedirectSink extends UrlRedirectSink {
|
||||
DefaultUrlRedirectSink() { sinkNode(this, "url-redirection") }
|
||||
@@ -42,3 +46,6 @@ private class ApacheUrlRedirectSink extends UrlRedirectSink {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class DefaultUrlRedirectSanitizer extends UrlRedirectSanitizer instanceof RequestForgerySanitizer
|
||||
{ }
|
||||
|
||||
@@ -11,6 +11,8 @@ module UrlRedirectConfig implements DataFlow::ConfigSig {
|
||||
predicate isSource(DataFlow::Node source) { source instanceof ThreatModelFlowSource }
|
||||
|
||||
predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink }
|
||||
|
||||
predicate isBarrier(DataFlow::Node node) { node instanceof UrlRedirectSanitizer }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user