Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将html标记/脚本作为文本插入sql?_C#_Asp.net_Sql Server_Webforms - Fatal编程技术网

C# 如何将html标记/脚本作为文本插入sql?

C# 如何将html标记/脚本作为文本插入sql?,c#,asp.net,sql-server,webforms,C#,Asp.net,Sql Server,Webforms,我正在尝试一个“实践”应用程序,其中文本框值将被插入到数据库中 当我插入textbox.text值时会发生这种情况 例文本= <script>alert('Hello')</script> 警报('Hello') 我收到一个错误:一个潜在危险的请求。从客户端检测到表单值(TextBox1=“alert('XSS')…”) 我已经在使用sql参数,所以像“//\\这样的值现在还不是问题。为您的页面设置ValidateRequest=“false”,

我正在尝试一个“实践”应用程序,其中文本框值将被插入到数据库中

当我插入textbox.text值时会发生这种情况

例文本=

           <script>alert('Hello')</script>
警报('Hello')
我收到一个错误:一个潜在危险的请求。从客户端检测到表单值(TextBox1=“alert('XSS')…”)


我已经在使用sql参数,所以像“//\\这样的值现在还不是问题。

为您的页面设置ValidateRequest=“false”,以允许html

在页面级别:

<%@ Page Language="c#"  ValidateRequest="false" AutoEventWireup="false" CodeBehind="TestPage.aspx.cs" Inherits="TestPage" %>

此外,对于ASP.NET 4.0,您需要将以下内容添加到web.config中:

<httpRuntime requestValidationMode="2.0" />

为您的页面设置ValidateRequest=“false”,以允许html

在页面级别:

<%@ Page Language="c#"  ValidateRequest="false" AutoEventWireup="false" CodeBehind="TestPage.aspx.cs" Inherits="TestPage" %>

此外,对于ASP.NET 4.0,您需要将以下内容添加到web.config中:

<httpRuntime requestValidationMode="2.0" />

如果只是出于测试目的,您可能不允许ASP.NET validator,因此它将停止查找可能有潜在危险的HTML/XML标记。为此,请在您的aspx页面中将ValidateRequest设置为false

<%@ Page Title="" Language="C#" ValidateRequest="false"

如果只是出于测试目的,您可能不允许ASP.NET validator,因此它将停止查找可能有潜在危险的HTML/XML标记。为此,请在您的aspx页面中将ValidateRequest设置为false

<%@ Page Title="" Language="C#" ValidateRequest="false"
这不是asp.net警告的(潜在)sql问题。当您接受该值并随后在页面中显示该值而不进行编码时,将触发不需要的脚本

此时,它将显示一个无害的警报,但如果您允许任何用户键入这些值,那么谁知道会发生什么。

这不是asp.net警告的(潜在)sql问题。当您接受该值并随后在页面中显示该值而不进行编码时,将触发不需要的脚本


此时,它将显示一个无害的警报,但如果您允许任何用户输入这些值,那么谁知道会发生什么。

您只需将断开的标记插入串联字符串中即可。如:

Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>')
插入表值(''+'另一个'+'')

您只需将断开的标记插入串联字符串中即可。如:

Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>')
插入表值(''+'另一个'+'')

设置
ValidateRequest=“false”
因为页面会使该页面的安全性变弱,我建议改为使用HTML编辑器控件。谢谢您(谢谢++)的即时回复,先生,但是您是否可以不更改您上面提到的那些值就这样做呢?(我只是好奇这是否可能):D设置
ValidateRequest=“false”
因为页面会使该页面的安全性变弱,我建议改为使用HTML编辑器控件。谢谢(谢谢++)先生的即时回复,但是不更改您上面所述的值是否可以做到这一点(我只是好奇是否可能):D