0
@using MvcMusicStore.Models;
@model IEnumerable<Album>

@{
ViewBag.Title = "List2";
string hola = "Test <script>alert('bip')</script>";

}

 <h2>@@List2</h2>
 <span>@hola</span>

 <ul>
  @foreach (Album a in Model )
   {
<li>@a.Title,@a.Tipo</li>

}

</ul>

私はそのかみそりが文字列を自動的にhtmlエンコードすることを読みましたが、私の見解では上記のコードを使用しても、エンコードなしで文字列をそのまま取得します。

ところで、何らかの影響があった場合に備えて、ローカルホストで実行しています。

前もって感謝します

アップデート:

Codoの回答に特に感謝します。問題は、ページに印刷されたテキストを見ているだけで、エンコードが反映されているページソースを見ていなかったことです。

ありがとう

4

2 に答える 2

0

テストケースを関連する部分に減らしました。

@{
  string hola = "Test <script>alert('bip')</script>";
}

<span>@hola</span>

実行すると、次のHTMLコードが生成されます(ソースHTMLを見る場合)。

<span>Test &lt;script&gt;alert(&#39;bip&#39;)&lt;/script&gt;</span>

ブラウザには、次のように表示されます。

<script> alert('bip')</script>をテストします

また、Javascriptコードとして実行せず、アラートボックスを表示しません。

したがって、広告として機能し、HTMLを適切にエンコードすると思います。

于 2012-12-13T07:54:42.277 に答える
-1

ここでは問題は発生しません。

<span>@Html.Raw(hola)</span>
<br />
<span>@hola</span>

ブラウザに表示される結果:

Test 
Test <script>alert('bip')</script> 

そして、それはbipと言っている「アラートポップアップ」です。

注:これがあなたが楽しみにしている答えではない場合は、問題をより詳細に説明してください。

于 2012-12-13T07:37:44.177 に答える