Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマーク
  • テクノロジー
  • Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - GMO Flatt Security Blog
  • Twitterでシェア
  • Facebookでシェア

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできますコメント表示の設定

ブックマークしました

ここにツイート内容が記載されますhttps://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

440usersがブックマークコメント51

    ガイドラインをご確認の上、良識あるコメントにご協力ください

    0/0
    入力したタグを追加

    現在プライベートモードです設定を変更する

    おすすめタグタグについて

      よく使うタグ

        Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - GMO Flatt Security Blog

        ガイドラインをご確認の上、良識あるコメントにご協力ください

        0/0
        入力したタグを追加

        現在プライベートモードです設定を変更する

        おすすめタグタグについて

          よく使うタグ

            はてなブックマーク

            はてなブックマークで
            関心をシェアしよう

            みんなの興味と感想が集まることで
            新しい発見や、深堀りがもっと楽しく

            ユーザー登録

            アカウントをお持ちの方はログインページ

            記事へのコメント51

            • 注目コメント
            • 新着コメント
            teppeis
            クエリのプレイスホルダにオブジェクト型が渡ると特殊な解釈をする仕様を突いたSQLi脆弱性。こういう変に便利機能あると危険なやつ、log4jで見た

            その他
            ockeghem
            一般的なプレースホルダ実装とは挙動が異なるので、「プレースホルダなら安全」とは言えない件。「JSON SQLインジェクション」と呼ばれた挙動に近い。

              その他
              rryu
              配列はIN句の時に使うから分かるが、オブジェクトは一体どう使う想定なのだろうか。無駄に頑張ってしまった感が強いが…

              その他
              daira4000
              ライブラリ見にいったらprepared statements未実装だった。そんなライブラリを使わないのが安全。

                その他
                tyage
                最初にCTFで出題されたの、2020年のGoogle CTFかな? https://github.com/csivitu/CTF-Write-ups/tree/master/Google%20CTF/Web/Log-Me-In

                  その他
                  causeless
                  "@wtnbgo これはそもそも prepared statement 機構以外は絶対使うなと教えるべきなのでは。なんちゃってプレースメントホルダなライブラリは存在自体が悪だし廃止すべき。" fromhttps://twitter.com/i/web/status/1493817092231286784

                    その他
                    n314
                    プリペアドステートメントじゃなくて言葉通りエスケープなのね。PHPerなので15年ぐらい前に(有名ライブラリを使ったとしても)自前でエスケープするなって散々言われてた気がするが。

                    その他
                    internetkun
                    誤解ないよう補足するけど2年近く更新が途絶えているhttps://npm.im/mysql でなくてhttps://npm.im/mysql2 の方が昨今は使われるようになっていて後者はこの記事で書かれているような現象は起きないはず

                      その他
                      xlc
                      プレースホルダの実装がエスケープとはたまげる。

                        その他
                        send
                        まあ prepared statements 以外はそもそも使わんようにする方がいいよな

                          その他
                          takc923
                          API的にprepared statementを内部で使ってるんだろうな、って思っちゃうけど違うのか... githubのレポジトリ見にいったら10年前に作られたprepared statementのfeature requestのissueがまだオープンなままだった

                            その他
                            deep_one
                            基本として「エスケープ処理はするな、プリペア使え」だと聞いている。/コメントを見て。プレースホルダ使うけどプリペアではない謎実装?その構文だとプリペアなんだと思いそうだな。

                              その他
                              ducktoon
                              “バッククォートで囲まれた識別子 password はカラムとみなされるので、最終的には password = password となり”

                                その他
                                akulog
                                Oh...

                                  その他
                                  kibitaki
                                  Object型突っ込むとかはしないし、ストアドの中で型決めて受けてればセーフ、ってことでいいのかな?

                                  その他
                                  mattn
                                  こわっ

                                    その他
                                    internetkun
                                    internetkun誤解ないよう補足するけど2年近く更新が途絶えているhttps://npm.im/mysql でなくてhttps://npm.im/mysql2 の方が昨今は使われるようになっていて後者はこの記事で書かれているような現象は起きないはず

                                      2022/02/17リンク

                                      その他
                                      utsuidai
                                      これは…

                                        その他
                                        Keisuke69
                                        プレースホルダ使えば安全ってわけじゃないパターンらしい。オブジェクト渡したらダメらしいがオブジェクト渡す時ってどんな時かな

                                          その他
                                          flont
                                          なぜprepared statementではなくオレオレエスケープをライブラリが実装してしまうのか / 取りうる回避策はこのライブラリの使用をやめることしかない

                                            その他
                                            rgfx
                                            そんなまた昔のPHP界隈みたいなことがマジであんのかjsって

                                            その他
                                            kazokmr
                                            nodeそれほど詳しくはないんだけど、prisma使ってる場合はどうなんだろ?

                                              その他
                                              tettekete37564
                                              最低限のバリデーションすら無しで&&判定するって普通に手抜きコードじゃ無いの?しかもユーザ名+パスワードが対象でそのif文じゃ嫌な予感しかしない

                                                その他
                                                ghostbass
                                                普通は「プレースホルダ使え」でなく「パラメータクエリー(prepared statement)使え」なのでちょとイケてない感ある

                                                その他
                                                wkwkhautbois
                                                クライアント側でのエスケープは危険、DB側でのバインド機構(PreparedStatement)を使え が基本だと思ってるけど、MySQLは歴史的な何かがあるんだろうか。

                                                  その他
                                                  hurafula
                                                  三、四年くらい前から変わってないサービスとかめっちゃ使ってそうだな にしてもプリペアドステートメント使ってないのか

                                                    その他
                                                    prograti
                                                    ライブラリの内部ではMySQL Connector/Node.jsを使用しているのかと思ったらデータベースドライバみたいなのを自作してるんですね。

                                                      その他
                                                      razokulover
                                                      ヒェ...

                                                        その他
                                                        send
                                                        sendまあ prepared statements 以外はそもそも使わんようにする方がいいよな

                                                          2022/02/16リンク

                                                          その他
                                                          lizy
                                                          プレースホルダをライブラリ側で展開している?

                                                          その他
                                                          remonoil
                                                          mysql2を使おう。ほぼ互換だけどPrepared statementsサポートしてて、自動でPrepared statementsになる

                                                            その他
                                                            natu3kan
                                                            その道の業界人には知られてて、脆弱性のテストに普通に組み込んでたけど、広く知られるようになったのは近年みたいなのって、まだまだあるんだろうなあ。対策しないと融通を利かせちゃう機能のを逆手に取る訳か。

                                                            その他
                                                            xlc
                                                            xlcプレースホルダの実装がエスケープとはたまげる。

                                                              2022/02/16リンク

                                                              その他
                                                              daira4000
                                                              daira4000ライブラリ見にいったらprepared statements未実装だった。そんなライブラリを使わないのが安全。

                                                                2022/02/16リンク

                                                                その他
                                                                satomi_hanten
                                                                (ちゃんと読んでない)一時期流行ったクエリ/データ内のXML記述も怪しかったけど、そもそもjson記述の脆弱性みたいなもんだな。

                                                                  その他
                                                                  causeless
                                                                  causeless"@wtnbgo これはそもそも prepared statement 機構以外は絶対使うなと教えるべきなのでは。なんちゃってプレースメントホルダなライブラリは存在自体が悪だし廃止すべき。" fromhttps://twitter.com/i/web/status/1493817092231286784

                                                                    2022/02/16リンク

                                                                    その他
                                                                    rti7743
                                                                    余計な機能が無能な働き者になってしまったか。 無能な働き者は銃殺もといオプションで無効にするしかないね。その後テストしてと余計な手間かかるね

                                                                      その他
                                                                      rryu
                                                                      rryu配列はIN句の時に使うから分かるが、オブジェクトは一体どう使う想定なのだろうか。無駄に頑張ってしまった感が強いが…

                                                                      2022/02/16リンク

                                                                      その他
                                                                      mohno
                                                                      これだから型が緩い言語は……にはならないの?

                                                                      その他
                                                                      n314
                                                                      n314プリペアドステートメントじゃなくて言葉通りエスケープなのね。PHPerなので15年ぐらい前に(有名ライブラリを使ったとしても)自前でエスケープするなって散々言われてた気がするが。

                                                                      2022/02/16リンク

                                                                      その他

                                                                      注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

                                                                      リンクを埋め込む

                                                                      以下のコードをコピーしてサイトに埋め込むことができます

                                                                      プレビュー
                                                                      アプリのスクリーンショット
                                                                      いまの話題をアプリでチェック!
                                                                      • バナー広告なし
                                                                      • ミュート機能あり
                                                                      • ダークモード搭載
                                                                      アプリをダウンロード

                                                                      関連記事

                                                                        usersに達しました!

                                                                        さんが1番目にブックマークした記事「Node.jsのMySQLパ...」が注目されています。

                                                                        気持ちをシェアしよう

                                                                        ツイートする

                                                                        Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - GMO Flatt Security Blog

                                                                        記事は筆者styprが英語で執筆した記事を株式会社FlattSecurity社内で日語に翻訳したものになりま...記事は筆者styprが英語で執筆した記事を株式会社FlattSecurity社内で日語に翻訳したものになります。 TL;DR Node.jsのエコシステムで最も人気のあるMySQLパッケージの一つであるmysqljs/mysql (https://github.com/mysqljs/mysql)において、クエリのエスケープ関数の予期せぬ動作がSQLインジェクションを引き起こす可能性があることが判明しました。 通常、クエリのエスケープ関数やプレースホルダはSQLインジェクションを防ぐことが知られています。しかし、mysqljs/mysql は、値の種類によってエスケープ方法が異なることが知られており、攻撃者が異なる値の種類でパラメータを渡すと、最終的に予期せぬ動作を引き起こす可能性があります。予期せぬ動作とは、バグのような動作やSQLインジェクションなどです。 ほぼすべてのオンラ

                                                                        ブックマークしたユーザー

                                                                        • sjtio2025/10/01sjtio
                                                                        • miguchi2024/02/25miguchi
                                                                        • oreha_gao2023/02/25oreha_gao
                                                                        • techtech05212022/12/25techtech0521
                                                                        • bayashi_net2022/08/26bayashi_net
                                                                        • kmkzt2022/08/26kmkzt
                                                                        • kamawada2022/08/26kamawada
                                                                        • nagatomo-beautiful552022/03/12nagatomo-beautiful55
                                                                        • TakayukiN6272022/03/12TakayukiN627
                                                                        • okumuraa12022/03/07okumuraa1
                                                                        • yoshi-nkyma2022/02/27yoshi-nkyma
                                                                        • takc9232022/02/26takc923
                                                                        • dieth2022/02/22dieth
                                                                        • yfnt2022/02/22yfnt
                                                                        • stefafafan2022/02/21stefafafan
                                                                        • crexist2022/02/20crexist
                                                                        • wkubota2022/02/19wkubota
                                                                        • riyokotter2022/02/18riyokotter
                                                                        すべてのユーザーの
                                                                        詳細を表示します

                                                                        ブックマークしたすべてのユーザー

                                                                        同じサイトの新着

                                                                        同じサイトの新着をもっと読む

                                                                        いま人気の記事

                                                                        いま人気の記事をもっと読む

                                                                        いま人気の記事 - テクノロジー

                                                                        いま人気の記事 - テクノロジーをもっと読む

                                                                        新着記事 - テクノロジー

                                                                        新着記事 - テクノロジーをもっと読む

                                                                        同時期にブックマークされた記事

                                                                        いま人気の記事 - 企業メディア

                                                                        企業メディアをもっと読む

                                                                        はてなブックマーク

                                                                        公式Twitter

                                                                        はてなのサービス

                                                                        • App Storeからダウンロード
                                                                        • Google Playで手に入れよう
                                                                        Copyright © 2005-2025Hatena. All Rights Reserved.
                                                                        設定を変更しましたx

                                                                        [8]ページ先頭

                                                                        ©2009-2025 Movatter.jp