You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let remote_string = reqwest::blocking::get("http://example.com/").unwrap().text().unwrap_or(String::from("Alice"));// $ MISSING Source=remote2
96
+
let remote_string = reqwest::blocking::get("http://example.com/").unwrap().text().unwrap_or(String::from("Alice"));// $ MISSING: Source=remote2
97
97
let safe_query_1 = String::from("SELECT * FROM people WHERE firstname='") + &const_string + "'";
98
98
let unsafe_query_1 = String::from("SELECT * FROM people WHERE firstname='") + &remote_string + "'";
99
99
let prepared_query_1 = String::from("SELECT * FROM people WHERE firstname=?");// (prepared arguments are safe)
100
100
101
101
// direct execution (with extra variants)
102
-
let _ = conn.execute(safe_query_1.as_str()).await?;
102
+
let _ = conn.execute(safe_query_1.as_str()).await?;// $ MISSING: sql-sink
103
103
if enable_remote {
104
-
let _ = conn.execute(unsafe_query_1.as_str()).await?;// $ MISSING Alert[sql-injection]=remote2
104
+
let _ = conn.execute(unsafe_query_1.as_str()).await?;// $ MISSING: sql-sink Alert[sql-injection]=remote2
105
105
}
106
106
// ...
107
-
let _ = sqlx::raw_sql(safe_query_1.as_str()).execute(&mut conn).await?;
107
+
let _ = sqlx::raw_sql(safe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING: ql-sink
108
108
if enable_remote {
109
-
let _ = sqlx::raw_sql(unsafe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING Alert[sql-injection]=remote2
109
+
let _ = sqlx::raw_sql(unsafe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING: sql-sink Alert[sql-injection]=remote2
110
110
}
111
111
112
112
// prepared queries (with extra variants)
113
-
let _ = sqlx::query(safe_query_1.as_str()).execute(&mut conn).await?;
114
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).execute(&mut conn).await?;
113
+
let _ = sqlx::query(safe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING: sql-sink
114
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).execute(&mut conn).await?;// $ MISSING: sql-sink
115
115
if enable_remote {
116
-
let _ = sqlx::query(unsafe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING Alert[sql-injection]=remote2
117
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).execute(&mut conn).await?;
116
+
let _ = sqlx::query(unsafe_query_1.as_str()).execute(&mut conn).await?;// $ MISSING: sql-sink Alert[sql-injection]=remote2
117
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).execute(&mut conn).await?;// $ MISSING: sql-sink
118
118
}
119
119
// ...
120
-
let _ = sqlx::query(safe_query_1.as_str()).fetch(&mut conn);
121
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).fetch(&mut conn);
120
+
let _ = sqlx::query(safe_query_1.as_str()).fetch(&mut conn);// $ MISSING: sql-sink
121
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).fetch(&mut conn);// $ MISSING: sql-sink
122
122
if enable_remote {
123
-
let _ = sqlx::query(unsafe_query_1.as_str()).fetch(&mut conn);// $ MISSING Alert[sql-injection]=remote2
124
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).fetch(&mut conn);
123
+
let _ = sqlx::query(unsafe_query_1.as_str()).fetch(&mut conn);// $ MISSING: ql-sink Alert[sql-injection]=remote2
124
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).fetch(&mut conn);// $ MISSING: sql-sink
125
125
}
126
126
// ...
127
-
let row1:(i64,String,String) = sqlx::query_as(safe_query_1.as_str()).fetch_one(&mut conn).await?;
127
+
let row1:(i64,String,String) = sqlx::query_as(safe_query_1.as_str()).fetch_one(&mut conn).await?;// $ MISSING: sql-sink
128
128
println!(" row1 = {:?}", row1);
129
-
let row2:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&const_string).fetch_one(&mut conn).await?;
129
+
let row2:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&const_string).fetch_one(&mut conn).await?;// $ MISSING: sql-sink
130
130
println!(" row2 = {:?}", row2);
131
131
if enable_remote {
132
-
let _:(i64,String,String) = sqlx::query_as(unsafe_query_1.as_str()).fetch_one(&mut conn).await?;// $ MISSING Alert[sql-injection]=remote2
133
-
let _:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&remote_string).fetch_one(&mut conn).await?;
132
+
let _:(i64,String,String) = sqlx::query_as(unsafe_query_1.as_str()).fetch_one(&mut conn).await?;// $ MISSING: sql-sink Alert[sql-injection]=remote2
133
+
let _:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&remote_string).fetch_one(&mut conn).await?;// $ MISSING: sql-sink
134
134
}
135
135
// ...
136
-
let row3:(i64,String,String) = sqlx::query_as(safe_query_1.as_str()).fetch_optional(&mut conn).await?.expect("no data");
136
+
let row3:(i64,String,String) = sqlx::query_as(safe_query_1.as_str()).fetch_optional(&mut conn).await?.expect("no data");// $ MISSING: sql-sink
137
137
println!(" row3 = {:?}", row3);
138
-
let row4:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&const_string).fetch_optional(&mut conn).await?.expect("no data");
138
+
let row4:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&const_string).fetch_optional(&mut conn).await?.expect("no data");// $ MISSING: sql-sink
139
139
println!(" row4 = {:?}", row4);
140
140
if enable_remote {
141
-
let _:(i64,String,String) = sqlx::query_as(unsafe_query_1.as_str()).fetch_optional(&mut conn).await?.expect("no data");// $ MISSING Alert[sql-injection]=remote2
142
-
let _:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&remote_string).fetch_optional(&mut conn).await?.expect("no data");
141
+
let _:(i64,String,String) = sqlx::query_as(unsafe_query_1.as_str()).fetch_optional(&mut conn).await?.expect("no data");// $ MISSING: sql-sink Alert[sql-injection]=remote2
142
+
let _:(i64,String,String) = sqlx::query_as(prepared_query_1.as_str()).bind(&remote_string).fetch_optional(&mut conn).await?.expect("no data");// $ MISSING: sql-sink
143
143
}
144
144
// ...
145
-
let _ = sqlx::query(safe_query_1.as_str()).fetch_all(&mut conn).await?;
146
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).fetch_all(&mut conn).await?;
147
-
let _ = sqlx::query("SELECT * FROM people WHERE firstname=?").bind(&const_string).fetch_all(&mut conn).await?;
145
+
let _ = sqlx::query(safe_query_1.as_str()).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
146
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&const_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
147
+
let _ = sqlx::query("SELECT * FROM people WHERE firstname=?").bind(&const_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
148
148
if enable_remote {
149
-
let _ = sqlx::query(unsafe_query_1.as_str()).fetch_all(&mut conn).await?;// $ MISSING Alert[sql-injection]=remote2
150
-
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).fetch_all(&mut conn).await?;
151
-
let _ = sqlx::query("SELECT * FROM people WHERE firstname=?").bind(&remote_string).fetch_all(&mut conn).await?;
149
+
let _ = sqlx::query(unsafe_query_1.as_str()).fetch_all(&mut conn).await?;// $ MISSING: sql-sink Alert[sql-injection]=remote2
150
+
let _ = sqlx::query(prepared_query_1.as_str()).bind(&remote_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
151
+
let _ = sqlx::query("SELECT * FROM people WHERE firstname=?").bind(&remote_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
152
152
}
153
153
// ...
154
-
let _ = sqlx::query!("SELECT * FROM people WHERE firstname=$1", const_string).fetch_all(&mut conn).await?;// (only takes string literals, so can't be vulnerable)
154
+
let _ = sqlx::query!("SELECT * FROM people WHERE firstname=$1", const_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink (only takes string literals, so can't be vulnerable)
155
155
if enable_remote {
156
-
let _ = sqlx::query!("SELECT * FROM people WHERE firstname=$1", remote_string).fetch_all(&mut conn).await?;
156
+
let _ = sqlx::query!("SELECT * FROM people WHERE firstname=$1", remote_string).fetch_all(&mut conn).await?;// $ MISSING: sql-sink
0 commit comments