asp.net – 可接受的安全性:使用Paramatised SQL和HTML编码字符
我正在尝试确保我的webforms ASP.NET应用程序尽可能安全,它只接收具有登录功能的用户接收并将用户输入数据存储到SQL数据库(通常的东西),因此一般公众无法使用.
通过对输入页面禁用ValidateRequest,我感谢存在XSS攻击的风险 – 所有SQL查询都是参数化的,因此从SQL注入是安全的(正确吗?). 我可以在输入文本上使用HTMLencode,而不是使用Anti-XSS库吗?然后我存储HTMLencoded字符串? 或者我是以错误的方式看待它?我应该逐字存储用户输入,然后在输出到浏览器的任何时候输入HTMLencode或XSS-HTMLencode吗? 解决方法
好吧,阅读它似乎常见的智慧是逐字存储输入,不做任何调整,只需参数化以防止SQL注入.
这里有一些好评:What are the best practices for avoiding xss attacks in a PHP site 然后使用HTML Encode(似乎可以使用),或者使用XSS-Library对输出进行编码 – 如上面的链接中所述,数据的目标可能在稍后的某个时间点不是浏览器. 然后在这里使用XSS攻击的例子:https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet将其中一些输入到数据库,并回读到浏览器.使用正确的编码,您应该看到文本,而不是执行脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在Asp.net MVC 2中替换默认的ModelStat
- oauth-2.0 – 在MVC6应用程序中的OAuth令牌到期
- 如何实现IIS 7.0对非HTTP协议的支持
- asp.net – 为什么Request.IsSecureConnection返回false,如
- 如果method参数是string或int,则ASP.NET WebAPI抛出404
- 谈谈基于SQL Server 的Exception Handling
- asp.net-mvc – 加载符号时Visual Studio调试痛苦地慢
- asp.net中程序水晶报告的正确形式是什么?和视觉基础
- [你必须知道的.NET] 第三回:历史纠葛:特性和属性
- 5种类型缓存比较说明