2012-06-09 77 views
0

我正試圖在「練習」應用程序中將文本框的值插入到數據庫中。如何將html標記/腳本作爲文本插入到sql中?

當我插入textbox.text值時會發生什麼。

Ex。文=

  <script>alert('Hello')</script> 

我得到一個錯誤:從客戶端(TextBox1中= 「警報( 'XSS')...」)中檢測到有潛在危險的Request.Form值。

我已經使用SQL參數,所以像「價值‘/// \\並不像現在的一個問題。

回答

2

設置ValidateRequest =’你的頁面錯誤」,允許HTML。

在頁面級別:

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

此外,對於ASP.NET 4.0,則需要以下內容添加到你的web.config:

<httpRuntime requestValidationMode="2.0" /> 
+0

設置頁面的ValidateRequest =「false」會使頁面的安全性變得更弱,我會推薦使用HTML編輯器控件。 – yogi

+0

謝謝(感謝++)立即回覆先生,但是有可能在不更改上述那些值的情況下執行此操作。 (我只是好奇,如果可能的話):D –

1

如果僅用於測試目的,您可能會禁用ASP.NET驗證程序,因此它將停止查找可能具有潛在危險的HTML/XML標記。爲此,請在aspx頁面中將ValidateRequest設置爲false。

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

這不建議在生產環境中,但在你的情況下可以做到這一點。更多的信息在下面MSDN Link

1

這不是一個(潛在的)的問題,asp.net警告。當您接受該值並稍後將其顯示在您的頁面而沒有編碼時,那麼該不需要的腳本將會觸發。

此時它將顯示無害的警報,但如果您允許任何用戶輸入這些值,那麼誰知道會發生什麼。

0

您可以只將插入的標記插入連接字符串中。如:

Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>') 
相關問題