Patch sonobank
This commit is contained in:
@@ -208,6 +208,10 @@ fn extract_payload(path: &str) -> String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
|
fn escape_sql_literal(value: &str) -> String {
|
||||||
|
value.replace('\\', "\\\\").replace('\'', "''")
|
||||||
|
}
|
||||||
|
#[allow(dead_code)]
|
||||||
async fn handle_conn(socket: tokio::net::TcpStream) {
|
async fn handle_conn(socket: tokio::net::TcpStream) {
|
||||||
let mut buf = vec![0u8; 4096];
|
let mut buf = vec![0u8; 4096];
|
||||||
let n = match socket.try_read(&mut buf) {
|
let n = match socket.try_read(&mut buf) {
|
||||||
@@ -221,7 +225,8 @@ async fn handle_conn(socket: tokio::net::TcpStream) {
|
|||||||
let path = parts.next().unwrap_or("");
|
let path = parts.next().unwrap_or("");
|
||||||
if method == "GET" {
|
if method == "GET" {
|
||||||
let payload = extract_payload(path);
|
let payload = extract_payload(path);
|
||||||
let simulated = format!("SELECT * FROM test WHERE field = '{}'", payload);
|
let escaped_payload = escape_sql_literal(&payload);
|
||||||
|
let simulated = format!("SELECT * FROM test WHERE field = '{}'", escaped_payload);
|
||||||
tokio::spawn(forward_to_postgres(simulated));
|
tokio::spawn(forward_to_postgres(simulated));
|
||||||
}
|
}
|
||||||
let _ = socket.try_write(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok");
|
let _ = socket.try_write(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok");
|
||||||
|
|||||||
Reference in New Issue
Block a user