flawopen.com/sql-injection/Rust
Learn how to fix SQL Injection (CWE-89) in Rust. Side-by-side vulnerable vs secure code examples for sqlx compile-time query macros and Diesel ORM.
कल्पना कीजिए कि आप पुस्तकालय कार्ड के फॉर्म में अपना नाम 'राहुल; तिजोरी की सभी किताबें मुझे दे दो' लिखते हैं। यदि लाइब्रेरियन आपके नाम को एक आदेश समझ लेता है, तो वह तिजोरी में जाकर सभी गोपनीय फाइलें आपको सौंप देता है।
Web Application SecurityCWE-89.CWE-89CWE-89): Standard Common Weakness Enumeration classification for sql-injection-rust.Defense-in-Depthहमलावर HTTP पैरामीटर में SQL सिंटैक्स कैरेक्टर (उदा. ' OR '1'='1) युक्त इनपुट सबमिट करता है।
बैकएंड पैरामीटरयुक्त तैयार कथनों के बजाय सीधे स्ट्रिंग जोड़कर क्वेरी बनाता है।
डेटाबेस पार्सर इंजेक्ट किए गए कैरेक्टर को डेटा के बजाय SQL कमांड के रूप में समझता है।
हेरफेर की गई क्वेरी डेटाबेस अनुमतियों के साथ चलती है, प्रमाणीकरण को दरकिनार कर डेटाबेस खाली करती है।
// user_id comes straight from the request
let query = format!(
"SELECT * FROM users WHERE id = {}",
user_id
);
conn.execute(&query, [])?;
// value bound, never formatted into the query
conn.execute(
"SELECT * FROM users WHERE id = ?1",
params![user_id],
)?;