如果存储在SQL Server中,哪些HTML标记会被视为危险?

use*_*679 0 javascript sql-server asp.net security database-security

考虑CSRF,XSS,SQL Injection等问题......

站点:ASP.net,SQL Server 2012

我正在阅读MS的一个旧页面:https://msdn.microsoft.com/en-us/library/ff649310.aspx#paght000004_step4

如果我有一个参数化查询,并且我的一个字段用于保存HTML,那么在某些标签上进行简单替换是否可以实现?

例如,用户可以键入WYSIWYG textarea,使某些事物变粗,或者创建项目符号等.

我希望能够显示SELECT查询的结果,所以即使我HTMLEncoded它,它也必须是HTMLDecoded.

那个在场景列表中循环的UDF怎么样?我很好奇处理那个页面上提到的看似偷偷摸摸的最好方法:

引用:

攻击者可以使用HTML属性(如src,lowsrc,style和href)与前面的标记一起注入跨站点脚本.例如,标记的src属性可以是注入源,如以下示例所示.

<img src="javascript:alert('hello');">
<img src="java&#010;script:alert('hello');">
<img src="java&#X0A;script:alert('hello');">
Run Code Online (Sandbox Code Playgroud)

攻击者还可以<style>通过更改MIME类型来使用标记注入脚本,如下所示.

<style TYPE="text/javascript">
  alert('hello');
</style>    
Run Code Online (Sandbox Code Playgroud)

最终有两个问题:

  1. 从INSERT语句本身处理此问题的最佳方法.
  2. 从代码隐藏处理这个问题的最佳方法.

Guf*_*ffa 7

  1. 从INSERT语句本身处理此问题的最佳方法.

没有.那不是你应该去做的地方.

  1. 从代码隐藏处理这个问题的最佳方法.

使用白名单,而不是黑名单.HTML对所有内容进行编码,然后解码允许的特定标记.

能够指定一些可以安全使用的标签是合理的,但是能够捕获所有可能的漏洞是不合理的.