アカウント名:
パスワード:
3、4年くらい前に話題になったやつだね。自分も仕事でウッカリやっちまわないかと思うとワラエナイ。パフォーマンスとしての話題正規表現:悪い表現、いい表現、最良の表現 [postd.cc]脆弱性としての話題StackExchangeが攻撃されたReDoSの効果 [ohgaki.net]
本気で速度が要求されるコードは、素人が書くべきではないということかな。もちろんCloudflareならその道の専門家が多数いるんだろうけど、そうではない人が気軽に書いちゃったんだろうか。
1個目の記事にもある通り、素人ならこういう差が出るものだってことを認識して、適切な人に任せる必要があることが分かってれば十分。初めのコードがダメなことは分かるけど、だからといって最適なコードを用意できるかと言われると難しい。
× 本気で速度が要求されるコード○ 本番用のコード
× 素人が書くべきではない○ ちゃんとテストするべき
これくらいのミスは誰でもするやろ。アカンのは「極度なCPU使用を防止する保護機能が数週間前に誤って削除されていたこと」やな。「保護機能」の詳細はわからんけど、きっとここだけが唯一かつ最凶レベル。
コードといっても正規表現だからね。言語としては最上級でしょ。性能が問題になるほど重要なら、正規表現を使わない文字列処理をすれば安全なんじゃないかと。もともとそんなにガチの用途に耐えられる設計じゃなくて痒い所に手を届かせる程度のものなんだから。
正規表現は(1-テープチューリング機械ですら)たかだかDTIME(o(nlog(n)))なのに対して普通のプログラミング言語で書いたものは停止性の証明すらできないが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
正規表現のバックトラック (スコア:5, 参考になる)
3、4年くらい前に話題になったやつだね。
自分も仕事でウッカリやっちまわないかと思うとワラエナイ。
パフォーマンスとしての話題
正規表現:悪い表現、いい表現、最良の表現 [postd.cc]
脆弱性としての話題
StackExchangeが攻撃されたReDoSの効果 [ohgaki.net]
Re:正規表現のバックトラック (スコア:1)
本気で速度が要求されるコードは、素人が書くべきではないということかな。
もちろんCloudflareならその道の専門家が多数いるんだろうけど、そうではない人が気軽に書いちゃったんだろうか。
1個目の記事にもある通り、素人ならこういう差が出るものだってことを認識して、適切な人に任せる必要があることが分かってれば十分。
初めのコードがダメなことは分かるけど、だからといって最適なコードを用意できるかと言われると難しい。
Re:正規表現のバックトラック (スコア:4, すばらしい洞察)
× 本気で速度が要求されるコード
○ 本番用のコード
× 素人が書くべきではない
○ ちゃんとテストするべき
これくらいのミスは誰でもするやろ。
アカンのは「極度なCPU使用を防止する保護機能が数週間前に誤って削除されていたこと」やな。「保護機能」の詳細はわからんけど、きっとここだけが唯一かつ最凶レベル。
Re:正規表現のバックトラック (スコア:1)
コードといっても正規表現だからね。言語としては最上級でしょ。性能が問題になるほど重要なら、正規表現を使わない文字列処理をすれば安全なんじゃないかと。もともとそんなにガチの用途に耐えられる設計じゃなくて痒い所に手を届かせる程度のものなんだから。
Re: (スコア:0)
正規表現は(1-テープチューリング機械ですら)たかだかDTIME(o(nlog(n)))なのに対して普通のプログラミング言語で書いたものは停止性の証明すらできないが。