Files
codeql/java/ql/test/experimental/configured-flow/Test.java
Andrew Eisenberg ea4ed9e56d Rename threat model kinds
standard --> default
exansive --> all
sql --> database
2023-05-05 14:19:01 -07:00

35 lines
996 B
Java

import java.sql.*;
import java.net.*;
import java.nio.charset.StandardCharsets;
class Test {
private String byteToString(byte[] data) {
return new String(data, StandardCharsets.UTF_8);
}
public void M1(Statement handle) throws Exception {
// Only a source if "remote" is a selected threat model
Socket sock = new Socket("localhost", 1234);
byte[] data = new byte[1024];
sock.getInputStream().read(data);
// Sink
sock.getOutputStream().write(data);
// Sink
handle.executeUpdate("INSERT INTO foo VALUES ('" + byteToString(data) + "')");
}
public void M2(Statement handle) throws Exception {
// Only a source if "database" is a selected threat model
ResultSet rs = handle.executeQuery("SELECT * FROM foo");
// Sink
handle.executeUpdate("INSERT INTO foo VALUES ('" + rs.getString("name") + "')");
// Sink
Socket sock = new Socket("localhost", 1234);
sock.getOutputStream().write(rs.getString("name").getBytes());
}
}