MySQLの怪
ちょっと待て、と。MySQL。
| orders | CREATE TABLE `orders` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `email` varchar(255) NOT NULL default '', `address` text NOT NULL, `pay_type` varchar(10) NOT NULL default '', `shipped_at` datetime default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
こういうテーブルにレコードを入れといて、
mysql> SELECT * FROM orders WHERE orders.id = '2=2';
こんなSQLがid=2のレコードを返すんですけど!
こんなんアリなん?
Railsのfindメソッドの引数がちゃんとSQLインジェクション対策できてるか調べてるときに発見。
バージョンは4.1.18。