Files
codeql/javascript/ql/lib/semmle/javascript/security/dataflow/HardcodedCredentialsCustomizations.qll
Andrew Eisenberg 45d1fa7f01 Packaging: Rafactor Javascript core libraries
Extract the external facing `qll` files into the codeql/javascript-all
query pack.
2021-08-25 12:15:56 -07:00

45 lines
1.1 KiB
Plaintext

/**
* Provides default sources, sinks and sanitizers for reasoning about
* hardcoded credentials, as well as extension points for adding your
* own.
*/
import javascript
private import semmle.javascript.security.SensitiveActions
module HardcodedCredentials {
/**
* A data flow source for hardcoded credentials.
*/
abstract class Source extends DataFlow::Node { }
/**
* A data flow sink for hardcoded credentials.
*/
abstract class Sink extends DataFlow::Node {
abstract string getKind();
}
/**
* A sanitizer for hardcoded credentials.
*/
abstract class Sanitizer extends DataFlow::Node { }
/** A constant string, considered as a source of hardcoded credentials. */
class ConstantStringSource extends Source, DataFlow::ValueNode {
override ConstantString astNode;
ConstantStringSource() { not astNode.getStringValue() = "" }
}
/**
* A subclass of `Sink` that includes every `CredentialsExpr`
* as a credentials sink.
*/
class DefaultCredentialsSink extends Sink, DataFlow::ValueNode {
override CredentialsExpr astNode;
override string getKind() { result = astNode.getCredentialsKind() }
}
}