地址: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);
}

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

web程序防止攻击的一些资料——整理的更多相关文章

  1. 微信小程序事件始末及相关资料整理

    转载请注明来源:前端之巅 微信公众号 小道消息 昨晚(9月21日晚)10:51,冯大辉在他的知名微信公众号小道消息上发了一篇7字标题的文章<微信应用号来了>,并加了"微信是一个操 ...

  2. MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

    MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中 ...

  3. Java资料整理

    Java资料整理 原创 2017年08月25日 17:20:44 14211  1.LocalThread的应用场景,数据传输适合用LocalThread么 2.linux的基本命令    软链接.更 ...

  4. Java 学习资料整理

    Java 学习资料整理 Java 精品学习视频教程下载汇总 Java视频教程 孙鑫Java无难事 (全12CD) Java视频教程 即学即会java 上海交大 Java初级编程基础 共25讲下载 av ...

  5. [转] Web前端开发工程师常用技术网站整理

    1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...

  6. Web前端开发工程师常用技术网站整理

    1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...

  7. HTML5资料整理 [From luics]

    来自http://www.cnblogs.com/luics/,新浪微博@徐凯-鬼道 HTML5资料整理   项目组要做html5这块,花了一周左右时间收集的,快有一年时间了,部分内容需要更新,仅供参 ...

  8. .NET WEB程序员需要掌握的技能

    本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...

  9. [web安全]Web应用漏洞攻击分析与防范

    网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...

随机推荐

  1. python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  2. LeetCode_475. Heaters

    475. Heaters Easy Winter is coming! Your first job during the contest is to design a standard heater ...

  3. 【转】kettle7.1资源库无法打开,找不到connect按钮的问题处理

    转自:https://www.aboutyun.com/home.php?mod=space&uid=71645&do=blog&id=3535 kettle是一个比较好用的E ...

  4. javascript下載csv檔案

    參考自: https://dotblogs.com.tw/shihgogo/2017/05/31/090831 function createCsvFile(){ var fileName = &qu ...

  5. [LeetCode] 334. Increasing Triplet Subsequence 递增三元子序列

    Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...

  6. WINGIDE 激活失败

     WINGIDE 7.1 激活失败  WINGIDE 7.0 激活成功 1 下载  https://www.7down.com/soft/94270.html 2 安装 3 激活 step 1: st ...

  7. 如何使用RedisTemplate访问Redis数据结构之Zset

    Redis的ZSet数据结构 Redis 有序集合和无序集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合 ...

  8. .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化

    原文:.NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 最近我大幅度重构了我一个库的项目结构,使之使用最新的项目文件格式(基于 Microsoft.NET.Sdk)并使 ...

  9. java之spring之对象的创建

    首先提供目录结构如下: 下面提供各文件代码,以供参考: UserDynamicFactory.java package cn.sxt.factory; import cn.sxt.vo.User; / ...

  10. P2613 【模板】有理数取余 (数论)

    题目 P2613 [模板]有理数取余 解析 简单的数论题 发现并没有对小数取余这一说,所以我们把原式化一下, \[(c=\frac{a}{b})\equiv a\times b^{-1}(mod\ p ...