mirror of
https://github.com/github/codeql.git
synced 2025-12-26 21:56:39 +01:00
62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
/**
|
|
* Provides classes modeling security-relevant aspects of the `cassandra-driver` PyPI package.
|
|
* See https://pypi.org/project/cassandra-driver/
|
|
*/
|
|
|
|
private import python
|
|
private import semmle.python.dataflow.new.DataFlow
|
|
private import semmle.python.dataflow.new.RemoteFlowSources
|
|
private import semmle.python.Concepts
|
|
private import semmle.python.ApiGraphs
|
|
private import semmle.python.frameworks.PEP249
|
|
|
|
/**
|
|
* Provides models for the `cassandra-driver` PyPI package.
|
|
* See https://pypi.org/project/cassandra-driver/
|
|
*/
|
|
private module CassandraDriver {
|
|
/**
|
|
* A cassandra cluster session.
|
|
*
|
|
* see
|
|
* - https://docs.datastax.com/en/developer/python-driver/3.25/api/cassandra/cluster/#cassandra.cluster.Cluster.connect
|
|
* - https://docs.datastax.com/en/developer/python-driver/3.25/api/cassandra/cluster/#cassandra.cluster.Session
|
|
*/
|
|
API::Node session() {
|
|
result =
|
|
API::moduleImport("cassandra")
|
|
.getMember("cluster")
|
|
.getMember("Cluster")
|
|
.getReturn()
|
|
.getMember("connect")
|
|
.getReturn()
|
|
}
|
|
|
|
/**
|
|
* see https://docs.datastax.com/en/developer/python-driver/3.25/api/cassandra/cluster/#cassandra.cluster.Session.execute
|
|
*/
|
|
class CassandraSessionExecuteCall extends SqlExecution::Range, API::CallNode {
|
|
CassandraSessionExecuteCall() { this = session().getMember("execute").getACall() }
|
|
|
|
override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() }
|
|
}
|
|
|
|
/**
|
|
* see https://docs.datastax.com/en/developer/python-driver/3.25/api/cassandra/cluster/#cassandra.cluster.Session.execute_async
|
|
*/
|
|
class CassandraSessionExecuteAsyncCall extends SqlConstruction::Range, API::CallNode {
|
|
CassandraSessionExecuteAsyncCall() { this = session().getMember("execute_async").getACall() }
|
|
|
|
override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() }
|
|
}
|
|
|
|
/**
|
|
* see https://docs.datastax.com/en/developer/python-driver/3.25/api/cassandra/cluster/#cassandra.cluster.Session.prepare
|
|
*/
|
|
class CassandraSessionPrepareCall extends SqlConstruction::Range, API::CallNode {
|
|
CassandraSessionPrepareCall() { this = session().getMember("prepare").getACall() }
|
|
|
|
override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() }
|
|
}
|
|
}
|