web程序防止攻击的一些资料——整理
2024-08-30 12:04:20
地址:https://docs.microsoft.com/en-us/previous-versions/aspnet/a2a4yykt(v=vs.100)?redirectedfrom=MSDN
中文标题:如何:通过在字符串中应用HTML编码来保护Web应用程序中的脚本开发
英文标题:How to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings
大多数脚本攻击发生在用户可以将可执行代码(或脚本)放入应用程序时。默认情况下,ASP.NET提供请求验证,如果表单帖子包含任何HTML,则会引发错误。
您可以通过以下方式帮助防止脚本攻击:
- 1,对表单变量,查询字符串变量和cookie值执行参数验证。 此验证应包括两种类型的验证:验证变量可以转换为预期类型(例如,转换为整数,转换为日期时间等),以及预期范围或格式的验证。 例如,应使用Int32.TryParse方法检查旨在为整数的表单发布变量,以验证该变量确实为整数。 此外,应检查结果整数以验证该值是否落在预期的值范围内。
- 2,将值写回响应时,将HTML编码应用于字符串输出。 这有助于确保在浏览器中将任何用户提供的字符串输入呈现为静态文本,而不是可执行脚本代码或解释的HTML元素。
HTML编码使用HTML保留字符转换HTML元素,以便显示而不是执行它们。
将HTML编码应用于字符串
在显示字符串之前,请调用HtmlEncode方法。 HTML元素被转换为字符串表示形式,浏览器将显示该字符串表示形式,而不是将其解释为HTML。
以下示例说明了HTML编码。 在第一种情况下,在显示用户输入之前对其进行编码。 在第二种情况下,来自数据库的数据在显示之前被编码。
注意:
仅当您通过添加@Pageattribute ValidateRequest =“ false”在页面中禁用请求验证时,此示例才有效。 不建议您在生产应用程序中禁用请求验证,因此请确保在查看此示例后再次启用请求验证。
private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text = Server.HtmlEncode(TextBox1.Text);
Label2.Text =
Server.HtmlEncode(dsCustomers1.Customers[].CompanyName);
}
============================================
最新文章
- dell md3200i mdss (企业管理) 安装的那点事儿(2)
- Sql Server函数全解(二)数学函数
- Django URL name详解
- HDU 1397 Goldbach's Conjecture(二分,查找素数)
- 在GDB 中如何记录 instruction-history and function-call-history
- 关于SVN的操作批处理示例
- csv操作帮助类
- HA for openstack
- [HDU 1427]速度计算24点(DFS暴力搜索)
- JavaWeb之多语言国际化
- 结对编程1-四则运算(基于GUI)
- Android APP新的“优雅”退出方式--EventBus大显身手
- react native练习
- hdu 5154 拓扑排序
- jQuery表格排序(tablesorter)
- C# DIctionary:集合已修改,可能无法执行枚举操作
- C#TreeView节点选中后失去焦点时改变节点背景色
- 基于Token的多平台身份认证价格设计
- jq上下级元素查找方法
- getActivity nullPointerException