mirror of
https://github.com/github/codeql.git
synced 2025-12-22 03:36:30 +01:00
Add a superclass for credential nodes
This commit is contained in:
@@ -58,12 +58,7 @@ abstract class CredentialsSink extends Expr {
|
|||||||
* credentials.
|
* credentials.
|
||||||
*/
|
*/
|
||||||
class CredentialsApiSink extends CredentialsSink {
|
class CredentialsApiSink extends CredentialsSink {
|
||||||
CredentialsApiSink() {
|
CredentialsApiSink() { this = any(CredentialSinkNode csn).asExpr() }
|
||||||
this = any(PasswordParameter p).asExpr() or
|
|
||||||
this = any(UsernameParameter p).asExpr() or
|
|
||||||
this = any(CryptoKeyParameter p).asExpr() or
|
|
||||||
this = any(CredentialParameter p).asExpr()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,32 +6,30 @@ import java
|
|||||||
private import semmle.code.java.dataflow.DataFlow
|
private import semmle.code.java.dataflow.DataFlow
|
||||||
private import semmle.code.java.dataflow.ExternalFlow
|
private import semmle.code.java.dataflow.ExternalFlow
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A node which represents the use of a credential.
|
||||||
|
*/
|
||||||
|
abstract class CredentialSinkNode extends DataFlow::Node { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A node representing a password being passed to a method.
|
* A node representing a password being passed to a method.
|
||||||
*/
|
*/
|
||||||
class PasswordParameter extends DataFlow::Node {
|
class PasswordSink extends CredentialSinkNode {
|
||||||
PasswordParameter() { sinkNode(this, "credential-password") }
|
PasswordSink() { sinkNode(this, "credential-password") }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A node representing a username being passed to a method.
|
* A node representing a username being passed to a method.
|
||||||
*/
|
*/
|
||||||
class UsernameParameter extends DataFlow::Node {
|
class UsernameSink extends CredentialSinkNode {
|
||||||
UsernameParameter() { sinkNode(this, "credential-username") }
|
UsernameSink() { sinkNode(this, "credential-username") }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A node representing a cryptographic key being passed to a method.
|
* A node representing a cryptographic key being passed to a method.
|
||||||
*/
|
*/
|
||||||
class CryptoKeyParameter extends DataFlow::Node {
|
class CryptoKeySink extends CredentialSinkNode {
|
||||||
CryptoKeyParameter() { sinkNode(this, "crypto-parameter") }
|
CryptoKeySink() { sinkNode(this, "crypto-parameter") }
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A node representing a credential being passed to a method.
|
|
||||||
*/
|
|
||||||
class CredentialParameter extends DataFlow::Node {
|
|
||||||
CredentialParameter() { sinkNode(this, "credential-other") }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user