ここではRegExテストは何ですか?このJavascript文(正規表現)は何を意味しますか?
function chksql(){
if (/^\s*(?:delete|drop|truncate|alter)/.test(v)) return false;
}
私はそれが正規表現と混ざっていることを知っていますが、それが何を意味するのか分かりません。
ここではRegExテストは何ですか?このJavascript文(正規表現)は何を意味しますか?
function chksql(){
if (/^\s*(?:delete|drop|truncate|alter)/.test(v)) return false;
}
私はそれが正規表現と混ざっていることを知っていますが、それが何を意味するのか分かりません。
それはv
が" alter"
た場合は、この希望v
がに続くゼロ個以上の空白charctersで始まる文字列の場合またはドロップまたはTRUNCATEを削除し、そのチェックを意味したりそう
を変更falseを返します。私は、クライアント側でこの出来事に対してチェックすることが本当に悪い考えであることを追加する必要がありますhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
:
は、ドキュメントを参照してください。それは回避されるでしょう。
最近の正規表現のテストや探索には、数多くの優れたオンラインツールがあります。
好きな人はdebuggex.comです。あなたはまだ何を意味するか^
と\s
見つけ出すように宿題のビットを行う必要がある、と解釈するには
^\s*(?:delete|drop|truncate|alter)
、しかし:ここでは、それはあなたの正規表現のために表示されるものです"railroad diagram"は、正規表現が何をテストしているかを示すのに役立ちます。線に沿って、それが何を一致させるかを確認してください。上記のリンクでテスト文字列を入力して、それらがどのように一致するか(または一致しないか)確認することもできます。
もう1つの良いサイトはregex101.comです。ここにはyour regular expression thereがあります。彼らはあなたに正規表現が何を求めているのかを英語で説明します。
また、クライアントでSQLをサニタイズしようとすると、mkoryakのアドバイスを受けてください!正規表現の
詳しい情報は[こちら](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – aug
これを行うサイトをリンクしてください、クライアント側でこのくそをチェックすることが起こるのを待っている「ドロップテーブル」であるので、 – mkoryak
ああ、少なくともこのコードでは少し難しくなります。代わりに 'DROP TABLE'と言う必要があります!私がここで言及しているのは、この正規表現が小文字の*単語と一致するだけですが、SQLキーワードは大文字小文字を区別せず、実際は大文字で書かれています。 –