MyBatis中可以通過使用參數化查詢來防止SQL注入攻擊。參數化查詢是將SQL語句中的變量用占位符代替,然后將變量值通過參數傳入,而不是直接將變量值拼接到SQL語句中。
以下是一個簡單示例:
@Select("SELECT * FROM users WHERE username=#{username} AND password=#{password}")
User getUser(@Param("username") String username, @Param("password") String password);
在這個例子中,#{username}
和#{password}
是占位符,實際的變量值將通過@Param
注解傳入。這樣可以有效防止SQL注入攻擊。
另外,MyBatis中還提供了sqlSessionFactory.getConfiguration().setSafeRowBoundsEnabled(true)
方法,用于啟用安全的分頁查詢,以防止惡意SQL注入攻擊。同時,也要注意對用戶輸入進行驗證和過濾,不要信任用戶輸入的內容。