タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

MySQLとSQLに関するno_riのブックマーク (2)

  • MySQLの文字列連結 - teracc’s blog

    MySQLSQL構文はちょっと特殊でSQL Injectionの確認を行なうときには、ちょっと面倒だったりします。 私がイヤなことの一つに、MySQLでは文字列連結の演算子がないことがあります(concat関数による文字列連結は可能。またANSIモードのMySQLでは「||」による文字列連結ができるらしいですが、ANSIモードで動かしているサーバは殆ど無いと思います)。 ですが、今日少し試していたら、concatを使わずに文字列連結する方法があることに気が付きました。 mysql> insert into tableB values ('ab' 'c'); Query OK, 1 row affected (0.00 sec) mysql> select * from tableB; +-----+ | ID | +-----+ | abc | +-----+ 1 row in set

    MySQLの文字列連結 - teracc’s blog
  • SET NAMESは禁止

    (Last Updated On: 2018年8月13日)MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsを読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が

    SET NAMESは禁止
  • 1