私は次のコードと同等のものを持っているのJavaScriptフレームワークに貢献している:私はこれはひどいではありません知っている次のjavascriptは任意のコード実行から安全ですか?
eval("'" + user_input.replace(/'/g, "'") + "'");
- 私を説得する必要。私が知りたいことは、ここに任意のコードを注入できますか?
一見してuser_input.replace("'", "'")
は、私が文字列から脱落するのを防ぐように見えるでしょう。しかし私は改行を渡すことができます。 \nalert(123)\n
ですが、結果は常に構文エラーです。
'
alert(123)
'
実際には、構文エラーを引き起こすだけではなく、ここにコードを挿入するベクターがありますか?
私はここにできる注射の種類がほとんどあることを保証することができます... – Markasoftware
あなたはいつもあなたが 'eval()'を使うと、それはまったく安全ではないと想定するかもしれません、そして、あなたはおそらく他の多くの間違いを犯したことがあります。それはハッカーたちの夢です。 – adeneo
あなたは私にこれを説得する必要はありません。私はちょうど実際の攻撃の開発者に良い例を提供したい。 – bluepnume