防御式编程:防止SQL注入 一般认为使用参数化查询PreparedStatement是一种有效防止SQL注入的方法。参数化查询将SQL语句的结构和用户输入分开处理确保用户输入的数据不会改变SQL语句的结构。以下是改进后的代码示例import sqlite3 def login(username, password): conn sqlite3.connect(example.db) cursor conn.cursor() query SELECT * FROM users WHERE username? AND password? cursor.execute(query, (username, password)) result cursor.fetchone() conn.close() return result在这段代码中? 是一个占位符表示用户输入的位置。cursor.execute(query, (username, password)) 会将 username 和 password 作为参数传递给数据库。这样即使用户输入了恶意的 SQL 片段这些片段也会被当作普通值处理而不会改变查询的逻辑从而有效防止 SQL 注入攻击。看完本篇文章的介绍你有收获吗欢迎评论区告诉我