Refactor WebSocket user ID filtering and enhance SQL query security: Updated user ID handling in the WebSocket server to improve filtering logic for numeric user IDs. Implemented parameterized queries in the database operations across multiple worker files to prevent SQL injection vulnerabilities, ensuring safer data handling.
This commit is contained in:
@@ -141,15 +141,13 @@ impl BaseWorker {
|
||||
.get()
|
||||
.map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?;
|
||||
|
||||
// Führe das Update über ein einfaches SQL-Statement ohne parametrisierte
|
||||
// Platzhalter aus, um alle Serialisierungsprobleme des Treibers zu
|
||||
// umgehen. Alle Werte stammen aus vertrauenswürdigen Quellen.
|
||||
let escaped_action = action.replace('\'', "''");
|
||||
let sql = format!(
|
||||
"SELECT falukant_data.update_money({},{},'{}');",
|
||||
falukant_user_id, money_change, escaped_action
|
||||
);
|
||||
let _ = conn.query(&sql)?;
|
||||
// Verwende parametrisierte Queries für Sicherheit gegen SQL-Injection
|
||||
const QUERY_UPDATE_MONEY: &str = r#"
|
||||
SELECT falukant_data.update_money($1, $2, $3);
|
||||
"#;
|
||||
|
||||
conn.prepare("update_money", QUERY_UPDATE_MONEY)?;
|
||||
let _ = conn.execute("update_money", &[&falukant_user_id, &money_change, &action])?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user