だから私はsocket.ioリアルタイムWebアプリを開発しています。私の最初の懸念は、「悪意のあるユーザーが Dev Tools や Firebug を介してコードを挿入しようとした場合はどうなるか?」ということでした。SOでここに答えがあります。私の次の懸念は、「悪意のあるユーザーがチャットやその他の形式の文字列入力を介してコードを挿入しようとした場合はどうなるか」です。そして、私はこれを自分で理解することはできないという結論に達しました. 正規表現を使用して、ユーザーがコードを挿入しようとしているかどうかを確認できることはわかっていますが、コードがサーバーに送信されて文字列に格納されると、コードが実行されます。(例: var data = " *asd "; while(1);* "
; [ユーザーが送信した文字列は * の間の文字列です])。私の質問は次のとおりです。どうすればこれを防ぐことができますか? つまり、ユーザー入力をサニタイズするにはどうすればよいですか?
質問する
1510 次
1 に答える
1
encodeURIComponent(userstring);を使用してユーザー入力をエンコードできます。
例:
var userData = encodeURIComponent(" *asd "; while(1);* ");
于 2013-03-22T18:47:43.873 に答える