1- /**
2- * Provides default sources, sinks and sanitizers for reasoning about
3- * writing user-controlled data to files, as well as extension points
4- * for adding your own.
5- */
6-
7- import ruby
8- import codeql.ruby.DataFlow
9- import codeql.ruby.dataflow.RemoteFlowSources
10- import codeql.ruby.Concepts
11-
121/**
132 * Provides default sources, sinks and sanitizers for reasoning about
143 * writing user-controlled data to files, as well as extension points
154 * for adding your own.
165 */
176module HttpToFileAccess {
7+ import HttpToFileAccessSpecific
8+
189 /**
1910 * A data flow source for writing user-controlled data to files.
2011 */
@@ -30,17 +21,6 @@ module HttpToFileAccess {
3021 */
3122 abstract class Sanitizer extends DataFlow:: Node { }
3223
33- /**
34- * An access to a user-controlled HTTP request input, considered as a flow source for writing user-controlled data to files
35- */
36- private class RequestInputAccessAsSource extends Source instanceof HTTP:: Server:: RequestInputAccess {
37- }
38-
39- /** A response from an outgoing HTTP request, considered as a flow source for writing user-controlled data to files. */
40- private class HttpResponseAsSource extends Source {
41- HttpResponseAsSource ( ) { this = any ( HTTP:: Client:: Request r ) .getResponseBody ( ) }
42- }
43-
4424 /** A sink that represents file access method (write, append) argument */
4525 class FileAccessAsSink extends Sink {
4626 FileAccessAsSink ( ) { exists ( FileSystemWriteAccess src | this = src .getADataNode ( ) ) }
0 commit comments