/note/tech

Gormにおける「仕様通り」なSQLインジェクションの恐れのある実装についての注意喚起

↓のようなコードを書くと、

userInputID := "1=1"
db.Find(&users, userInputID)

このようなSQLが生成される模様

SELECT * FROM `users`  WHERE 1=1

怖すぎんか?

対策としてはきちんとWhere関数を使いましょうということらしい。

db.Where("id = ?", 1).Find(&users)