在MyBatis中,可以使用動態SQL和參數化查詢來避免SQL注入攻擊。
例如,在Mapper XML文件中可以這樣使用動態SQL:
<select id="getUserByName" parameterType="String" resultType="User">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
</where>
</select>
#{}
來指定參數,MyBatis會將參數值以安全的方式插入SQL語句中,避免SQL注入攻擊。例如,在Mapper XML文件中可以這樣使用參數化查詢:
<select id="getUserByName" parameterType="String" resultType="User">
SELECT * FROM user
WHERE name = #{name}
</select>
通過使用動態SQL和參數化查詢,可以有效地避免SQL注入攻擊。同時,建議在輸入參數之前進行驗證和過濾,確保輸入的數據符合預期的格式和范圍。