MySQL Connector/J is the official JDBC driver for MySQL. MySQL Connector/J 8.0 and higher is compatible with all MySQL versions starting with MySQL 5.7. Additionally, MySQL Connector/J 8.0 and higher supports the new X DevAPI for development with MySQL Server 8.0 and beyond. Online Documentation: MySQL Connector/J Installation Instructions Documentation MySQL Connector/J X DevAPI Reference Change
2013.06.08 追記:JDBC 接続文字列で characterEncoding / connectionCollation を指定すると思った通りの挙動をしてくれないようなので、別の方法 (多分これが正しい方法) を記載しました。 Unicode における、こんな 感じの絵文字、いわゆる Unicode の 追加面 の文字、Java で言えばサロゲートペアでの表現が必要となる文字を、JDBC 経由で UTF-8 エンコーディングして MySQL のテーブル・カラムに格納しようとすると、以下の例外が発生することがあります。 Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81 h...' for column 'col_name' at row 1 at com.mysql.jdbc.S
SQLインジェクション対策として PreparedStatement を使うのはいいけど、同時に like を使うときには注意しないといけない気がする。 ターゲットの DBMS は MySQL. エスケープ処理を自前でやりたくない理由 以上一般的なSQLにおけるエスケープ処理について説明したが,実は不十分な対策である。残念なことにデータベースエンジンごとにSQLが独自拡張されていて,特殊文字が「'」「\」以外にも存在する。 たとえばMySQLでは,「'」「\」に加えて次の文字も機能をもつ特殊文字として扱われる。 * 「\0」ナルバイト文字 * 「\n」改行文字 * 「\r」キャリッジリターン文字 * 「\z」ファイル終端文字(Windowsのみ) またMicrosoft のJetエンジンでは,次の文字も機能をもつ特殊文字として扱われる。 * 「|」VBAステートメント実行文字 IPA IS
補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2008年12月22日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり 今年のBlack Hat Japanには、はせがわようすけ氏が「趣味と実益の文字コード攻撃」と題して講演され話題となった。その講演資料が公開されているので、私は講演は聞き逃したが、資料は興味深く拝見した。その講演資料のP20以降には、「多対一の変換」と題して、UnicodeのU+00A5(通貨記号としての¥)が、他の文字コードに変換される際にバックスラッシュ「\」(日本語環境では通貨記号)の0x5Cに変換されることから、パストラバーサルが発生する例が紹介されている。 しかし、バックスラッシュと言えばSQL
ここ数日「MySQL + Connector/J(JDBCドライバ) + プリペアードステートメント」の話題がちらほら出ています。正確に把握はしていないですがSQLインジェクション対策→PreparedStatementという流れできた話のようです。 徳丸浩の日記 - JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 へぼへぼCTO日記 - useServerPrepStmtsを使うのが根本解決だとはおもう。けど…? id:kazuhookuのメモ置き場 - MySQL+Java でサーバサイドプリペアードステートメントを使うべきで「ない」理由 自分は元Connector/J開発メンバ(※インターン生として)でもありとても気になる話題なので、Connector/Jのソース解析も含めた説明をここで行いたいと思う。 プリペアードステートメント
Section Navigation [Toggle] 24.4.4 Connector/J (JDBC) の参考24.4.4.1 Connector/J の Driver/Datasource クラス名、URL シンタックス、および構成プロパティ 24.4.4.2 JDBC API 実装についての注記 24.4.4.3 Java 、JDBC および MySQL のタイプ 24.4.4.4 文字セットと Unicode の使用 24.4.4.5 SSL を使用して安全に接続する 24.4.4.6 ReplicationConnection でマスタ/スレーブ複製を使用する MySQL Connector/J は、MySQL データタイプと Java データタイプ間の変換の扱い方に柔軟に対応します。 丸めやオーバフロー、もしくは精度の損失がおこることはありますが、一般的に、どんな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く