web程序防止攻击的一些资料——整理

地址: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[0].CompanyName);
}

 

============================================

 

posted on   荆棘人  阅读(136)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2017-11-21 C# 方法冒号this的用法
2017-11-21 一些有意思的问题
2016-11-21 安装数据库出现错误vc_red.msi找不到

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示