4

モデルからいくつかの JavaScript 変数を設定したい場合、それは安全な方法でしょうか? 例えば:

<script type="text/javascript">
    var myVariable = '@Model.myVar';
</script>

これは良い習慣ですか?おそらく隠し入力を行う以外に、実際にそれを行うためのより良い方法は考えられませんが、これに比べてあまりにも多くの作業のようです. これが脆弱かどうか、またはこれを行うことで何か見落としがあるかどうかはわかりません。

4

3 に答える 3

5

これにはいくつかの問題があると思います。基本的に、JavaScript をページまたはビューに緊密に結合しています。私は自分自身を堅実な .NET / C# / MVC 開発者だと考えていますが、javascript の初心者であり、これはまさに私が最近まで追求していたタイプの設計です。以前は、ビュー内にあらゆる種類の JavaScript をインライン化し、Razor を多用していました。最終的には機能しますが、マークアップとスクリプトの結合が非常に密になり、最終的には維持が困難な環境が生じます。

はるかに優れたアプローチは、代わりに JavaScript 関数へのインライン呼び出しです。違いは微妙ですが、これら 2 つの領域の分離を強制します。

<script type="text/javascript">
    MyFunction('@Model.myVar');
</script>

非表示の入力フィールド、スパンなどの値を Razor 経由でインライン化し、JavaScript に公開することもできます。

于 2012-10-15T19:49:03.890 に答える
1

出力はデフォルトでかみそりでエンコードされるので安全です。

ただし、出力する値がユーザーが変更できる値である場合は、XSSを停止するために(サーバー側で)検証されていることを確認する必要があります。

于 2012-10-15T19:39:15.537 に答える
0

あなたはそれをやって大丈夫です。これにより、脆弱性が発生することはありません。脆弱性がすでに存在している場合でも、脆弱性の発生を阻止することはできませんが、これ以上追加されることはありません。

于 2012-10-15T19:40:43.953 に答える