預(yù)編譯SQL語句是一種防止SQL注入攻擊的有效方法。下面是一些預(yù)編譯SQL語句的示例:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, userInput);
ResultSet rs = stmt.executeQuery();
DELIMITER //
CREATE PROCEDURE getUser(username VARCHAR(255))
BEGIN
SELECT * FROM users WHERE username = username;
END //
DELIMITER ;
String hql = "FROM User WHERE username = :username";
Query query = session.createQuery(hql);
query.setParameter("username", userInput);
List<User> users = query.list();
總之,預(yù)編譯SQL語句是一種有效的防止SQL注入攻擊的方法,開發(fā)人員可以根據(jù)自己的需求和技術(shù)棧選擇合適的方法來保護(hù)應(yīng)用程序的數(shù)據(jù)庫安全。