[フレーム]
はてなブックマークアプリ

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

アプリで開く

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

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

エントリーの編集

loading...

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

タイトルガイドライン

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

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

ブックマークしました

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

Twitterで共有

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

494users がブックマーク コメント 36

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

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

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

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

よく使うタグ

正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

494 users nmi.jp

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

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

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

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

よく使うタグ

はてなブックマーク

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

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

ユーザー登録

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

記事へのコメント36

  • 注目コメント
  • 新着コメント
hiromichinomata
ユーザー入力でないものを脆弱性というのは間違い。PerlもPHPもRubyも鬼車なので再帰が使える。再帰のある任意のプログラミング言語Aは脆弱性のある言語なの?

その他
BlueSkyDetector
glibcでもある話。拡張正規表現".*{10,}{10,}{10,}{10,}{10,}"でプロセスクラッシュ。当時eglibcで聞いたら都度別プロセスで実行して監視すべきと。一方bsd系のlibcだとメモリ使用上限をつけていて止まってくれる。PCREもたしか対応済

その他
td2sk
計算量が爆発しうる正規表現をユーザー入力のバリデーションなんかに使ってしまうとDoS攻撃を受けるのでこれも立派な脆弱性(の元)。速度保証しているre2の方が珍しいぐらい拡張が普通なので問題を知らない人が多い

その他
otoan52
これほんと知らないと踏むよな...。いくつか分析手法があって、lintも存在するのでそれらを使うのが良いのだと思う/eslint-plugin-regexpはよく使われるんだけど、検出のアルゴリズムがあんまり良くなかった気がする

その他
cnln
非決定性有限オートマトン(NFA)が発生すると計算量が膨れ上がる。

その他
rryu
正規表現はあとちょっとでマッチしそうだけど実はマッチしない場合が一番遅いので、そういう最悪パターンを考えるようにすると少しはましかもしれない。

その他
nakag0711
これ外からは手も足も出ないのでプロセス殺すしかなくなるのが困る

その他
flont
ハッシュ衝突のDoSとか(主に拡張された)正規表現のエンジンの計算量とか、言語仕様とCSをちゃんと理解していても気づかないところで踏みがち

その他
harupu
末尾trimしたり `input.match(/.*\.png$/)` とかで死ぬので辛め。/^.*\.png$/や/.png$/は大丈夫だけどうっかりやりそうでむずい。

その他
gfx
"正規表現エンジンの内部実装によって発生状況が大きく左右されるので、ReDoS に対して「この言語なら大丈夫」みたいな理解をしていると危険"

その他
ono_matope
脆弱な正規表現はlinterで検知しないとだな

その他
kabochatori
0除算や浮動小数点誤差等の遠縁で実装上で気を付けるべき仕様って感じかな。

その他
ooblog
#正規表現 #DoS #ReDoS #オートマトン 「プログラミング言語の問題ではなく、正規表現~重くなる入力を与えられることでサービスが落ちる~どのような表現が苦手か~トレードオフ~ツールでの判定も~正確というわけではない」

その他
zu2
良記事

その他
miau
トップコメ「ユーザー入力でないものを脆弱性というのは間違い」は正規表現パターンの脆弱性じゃなくて正規表現エンジン(言語?)の脆弱性と捉えているのかな。そういう主旨ではないと思うけど。

その他
ProjectionOFWord
こわっ!無限ループ発生装置!サーバー管理者大変そうですね!エレガントの罠。昔ならFor文とIf文の入れ子で、ループ脱出にGoto文使うのは嫌だとか言ってこの正規表現の罠に似た状況が発生したっぽい。富士通は正しかった!

その他
rryu
rryu 正規表現はあとちょっとでマッチしそうだけど実はマッチしない場合が一番遅いので、そういう最悪パターンを考えるようにすると少しはましかもしれない。

2022年02月19日 リンク

その他
odz
ちょうどこの間踏んだ問題/特定の入力で問題発生するので脆弱性と呼ぶこと自体に違和感は無いかなー

その他
buzztaiki
non-backtracking RegExp engine いいな。

その他
lizy
変換されたオートマトンを元に危険度を自動的に見積もるとか出来ないのかな

その他
p1ass
"タイムアウトでプロセスを殺すのが一番確実"

その他
td2sk
td2sk 計算量が爆発しうる正規表現をユーザー入力のバリデーションなんかに使ってしまうとDoS攻撃を受けるのでこれも立派な脆弱性(の元)。速度保証しているre2の方が珍しいぐらい拡張が普通なので問題を知らない人が多い

2022年02月19日 リンク

その他
napsucks
DoSというよりタコなプログラミングの問題と同根に思えるけど...

その他
oqzl
手元の処理系で試そう...

その他
teramako
非決定性有限オートマトン(格好良い言葉だなあ

その他
bluescreen
勉強になりました

その他
apipix
ReDoS

その他
cnln
cnln 非決定性有限オートマトン(NFA)が発生すると計算量が膨れ上がる。

2022年02月19日 リンク

その他
zgmf-x20a
なるほどね。としか...

その他
harupu
harupu 末尾trimしたり `input.match(/.*\.png$/)` とかで死ぬので辛め。/^.*\.png$/や/.png$/は大丈夫だけどうっかりやりそうでむずい。

2022年02月19日 リンク

その他
shion214
"です。 これが延々と続いていきます。最終的には、65536 文字の入力に対して、(65536 + 65535"

その他
hiromichinomata
hiromichinomata ユーザー入力でないものを脆弱性というのは間違い。PerlもPHPもRubyも鬼車なので再帰が使える。再帰のある任意のプログラミング言語Aは脆弱性のある言語なの?

2022年02月19日 リンク

その他
nakag0711
nakag0711 これ外からは手も足も出ないのでプロセス殺すしかなくなるのが困る

2022年02月19日 リンク

その他
BlueSkyDetector
BlueSkyDetector glibcでもある話。拡張正規表現".*{10,}{10,}{10,}{10,}{10,}"でプロセスクラッシュ。当時eglibcで聞いたら都度別プロセスで実行して監視すべきと。一方bsd系のlibcだとメモリ使用上限をつけていて止まってくれる。PCREもたしか対応済

2022年02月19日 リンク

その他
natu3kan
正規表現エンジンの実装しだいでシステムを落とすような脆弱性になったりするんだな。

その他
tettekete37564
Perl の taint モードで少し修行してこいと言いたくなるな。意図のよく分からない正規表現である事は一目とは言わないまでもすぐ分かると思うのだが / なんでっていや分かるでしょ?その正規表現を実現するコード考えれば

その他
Aodrey
真ん中あたりでギブアップした...記事頭の結論と最後のチェックツールの話を参考にする。

その他
nimroder
a?a?aaの探索、アッカーマン関数思い出した

その他
quality1
安易に正規表現使えるようにしておいてとお願いするのはやめようと思いました

その他
nilab
「ReDoS は、基本的には言語の仕様によるものではなく、正規表現エンジンの実装に依存するものですから、基本的に「この言語だから安全」みたいなことは言えません」

その他

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

リンクを埋め込む

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

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

関連記事

usersに達しました!

さんが1番目にブックマークした記事「正規表現の脆弱性 ...」が注目されています。

気持ちをシェアしよう

ツイートする

正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性... 先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17, 2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

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

  • kirikiriyamama2025年02月25日 kirikiriyamama
  • yuu-yuiken2023年04月16日 yuu-yuiken
  • dora19982023年01月15日 dora1998
  • techtech05212022年12月25日 techtech0521
  • shckor2022年10月17日 shckor
  • ci7lus2022年09月15日 ci7lus
  • kei21002022年08月05日 kei2100
  • Krouton2022年06月30日 Krouton
  • toenobu2022年06月07日 toenobu
  • tkeo2022年05月27日 tkeo
  • ono_matope2022年05月27日 ono_matope
  • cku2022年04月12日 cku
  • hikabu2022年03月14日 hikabu
  • nagatomo-beautiful552022年03月12日 nagatomo-beautiful55
  • TakayukiN6272022年03月12日 TakayukiN627
  • fuyu772022年03月11日 fuyu77
  • iqm2022年03月06日 iqm
  • ktykogm2022年03月06日 ktykogm
すべてのユーザーの
詳細を表示します

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

同じサイトの新着

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

いま人気の記事

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

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

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

新着記事 - テクノロジー

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

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

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

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

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /