An explanation of your regex will be automatically generated as you type.
みなさん正規表現は好きですか? 私は好きです。簡単に脆弱性を作り込めて、とても便利ですからね。 この記事ではPCRE関数(preg_match(), preg_replace()など)を利用して、みなさまにPHP正規表現のバッドノウハウを教示いたします。 先に結論を書きます 単独の文字列のマッチに $ を用いるのは予期しないパターンになるのでやめましょう。^は特に危険ではありませんが、^と$の組み合せではなく**\Aと\zの組み合せ**を覚えましょう。ただし、m修飾子で複数行(マルチラインモード)で、行頭と行末にマッチさせたい場合を除きます。 文字列のマッチに ^ と $ のペアを利用する そうですね、例としてQiitaのようなユーザー登録サイトの表示名 @tadsan のような文字列を登録する前の検査をするとします。 要件としては、使用可能な文字は abcdefghijklmnopqrs
正規表現は適切に使うと、プログラムの手間を削減できる強力なツールになります。 ただ、正規表現を使うと動作テストが面倒だったり、慣れないうちはどんなことが書いてあるのかわからないなんてこともあると思います。 そんな時に、便利な正規表現のためのテストツール&可視化ツールの紹介です。 正規表現のテストツールなんて、どれも同じかと思いきや、結構それぞれ特徴ある機能があるものも多いので、メモがてらまとめてみました。 photo by Jeff Kubina 正規表現チェッカー 正規表現チェッカー PHP: preg_match() / JavaScript: match() PHPのpreg_matchとJavaScriptの matchの実行結果を返してくれる定番のテストツールです。 日本語のリファレンスやサンプルがあるので、メタ文字などを忘れてしまった時などにも便利。 以下のように、PHPとJa
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く