网站广告下悬浮代码怎么做,wordpress安全教程,wordpress付款,免费活动网MVC提供了两种不同的视图引擎#xff1a;Razor视图引擎、Web Forms视图引擎。
1.代码表达式
1.1 转换字符#xff1a;核心转换字符#xff0c;用作标记代码之间相互转换的字符。
1.2 两种基本转换#xff1a;代码表达式、代码块。都是求出值#xff0c;再写入响…MVC提供了两种不同的视图引擎Razor视图引擎、Web Forms视图引擎。
1.代码表达式
1.1 转换字符核心转换字符用作标记代码之间相互转换的字符。
1.2 两种基本转换代码表达式、代码块。都是求出值再写入响应中。
hlitems.Length/hl
----------------------
{ string testMyAPP;}
span(test).Models/span
spanMyApp.Models/span 2.HTML编码
视图显示用户的输入等信息存在XSS跨站脚本注入攻击。
2.1 Razor表达式使用HTML自动编码。
{string messagescript alert(hello);/script
}弹出一个警告框。
2.2 不进行HTML编码
{string messagestrongThis is a bold/strong
}
spanHtml.Raw(message)/span
显示结果
spanstrongThis is bold/strongspan
js中使用Ajax.JavaScciptStringEncode方法对用户输入进行编码可以有效避免XSS攻击
script typetexxt/javascript$(function(){var messageHello Ajax.JavaScriptStringEncode(ViewBag.UserName);$(#message).html(message).show(slow);
});
理解HTML和JavaScript编码的安全隐患很重要。
3.Razor语法示例
3.1 隐式代码表达式
代码表达式被计算再将值写入响应。隐式代码表达式总是采用HTML编码。
spanmodel.Message/span
3.2 显示代码表达式
span12(12)/sapn
3.3 无编码代码表达式
不需要采用HTML编码的值可以使用HTML.Raw方法保证值不被编码。
sapnHtml.Raw(model.Message)/span)
3.4 代码块
{int x124;string yabc;
}
3.5 文本和标记相结合
foreach(var item in items)
{spanItem item.Name./span
}
3.6 混合代码和纯文本
if(showMessage)
{textThis is plain text/text
}
text标签只是把标签内容写入到响应标签本身不写入。
3.7 转移代码分割符
使用编码
3.8 服务器端的注释
*
XXXXX
*
3.9 调用泛型方法
(Html.SomeMethodAType())