C# 如何将html标记/脚本作为文本插入sql?
我正在尝试一个“实践”应用程序,其中文本框值将被插入到数据库中 当我插入textbox.text值时会发生这种情况 例文本=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”,
<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