Skip to content

Commit d27ee86

Browse files
committed
Java: refactor trust-boundary sanitizers into TrustBoundaryValidationSanitizer subclasses
Address review feedback by introducing dedicated subclasses of TrustBoundaryValidationSanitizer for SimpleTypeSanitizer, RegexpCheckBarrier, and the HttpServletSession type check, so isBarrier only references the abstract class.
1 parent af794ed commit d27ee86

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,26 @@ private class ExternalTrustBoundaryValidationSanitizer extends TrustBoundaryVali
3131
ExternalTrustBoundaryValidationSanitizer() { barrierNode(this, "trust-boundary-violation") }
3232
}
3333

34+
private class SimpleTypeTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer instanceof SimpleTypeSanitizer
35+
{ }
36+
37+
private class RegexpCheckTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer instanceof RegexpCheckBarrier
38+
{ }
39+
40+
private class HttpServletSessionTypeTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer
41+
{
42+
HttpServletSessionTypeTrustBoundaryValidationSanitizer() {
43+
this.getType() instanceof HttpServletSession
44+
}
45+
}
46+
3447
/**
3548
* Taint tracking for data that crosses a trust boundary.
3649
*/
3750
module TrustBoundaryConfig implements DataFlow::ConfigSig {
3851
predicate isSource(DataFlow::Node source) { source instanceof TrustBoundaryViolationSource }
3952

40-
predicate isBarrier(DataFlow::Node node) {
41-
node instanceof TrustBoundaryValidationSanitizer or
42-
node.getType() instanceof HttpServletSession or
43-
node instanceof SimpleTypeSanitizer or
44-
node instanceof RegexpCheckBarrier
45-
}
53+
predicate isBarrier(DataFlow::Node node) { node instanceof TrustBoundaryValidationSanitizer }
4654

4755
predicate isSink(DataFlow::Node sink) { sink instanceof TrustBoundaryViolationSink }
4856

0 commit comments

Comments
 (0)