Trailblazing Braille Taser

  • 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: August 16th, 2023

help-circle






  • You know, the reason this happens is that you can ask your database to execute a string type, but languages usually don’t distinguish between a static string and a dynamically constructed string.

    Not to proselytize, but this is a place where rust’s lifetime annotations can shine. The DB interface should take a &'static str( and a variable number of parameters to insert) so it can be certain that no untrusted user input has already been injected into the query string. Assuming all static data is trusted, the sql injection vulnerabilities just went poof.

    Sadly, it looks like rusqlite’s execute() takes a non-static str. I wonder why.