我正試圖在「練習」應用程序中將文本框的值插入到數據庫中。如何將html標記/腳本作爲文本插入到sql中?
當我插入textbox.text值時會發生什麼。
Ex。文=
<script>alert('Hello')</script>
我得到一個錯誤:從客戶端(TextBox1中= 「警報( 'XSS')...」)中檢測到有潛在危險的Request.Form值。
我已經使用SQL參數,所以像「價值‘/// \\並不像現在的一個問題。
我正試圖在「練習」應用程序中將文本框的值插入到數據庫中。如何將html標記/腳本作爲文本插入到sql中?
當我插入textbox.text值時會發生什麼。
Ex。文=
<script>alert('Hello')</script>
我得到一個錯誤:從客戶端(TextBox1中= 「警報( 'XSS')...」)中檢測到有潛在危險的Request.Form值。
我已經使用SQL參數,所以像「價值‘/// \\並不像現在的一個問題。
設置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" />
如果僅用於測試目的,您可能會禁用ASP.NET驗證程序,因此它將停止查找可能具有潛在危險的HTML/XML標記。爲此,請在aspx頁面中將ValidateRequest設置爲false。
<%@ Page Title="" Language="C#" ValidateRequest="false"
這不建議在生產環境中,但在你的情況下可以做到這一點。更多的信息在下面MSDN Link
這不是一個(潛在的)的問題,asp.net警告。當您接受該值並稍後將其顯示在您的頁面而沒有編碼時,那麼該不需要的腳本將會觸發。
此時它將顯示無害的警報,但如果您允許任何用戶輸入這些值,那麼誰知道會發生什麼。
您可以只將插入的標記插入連接字符串中。如:
Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>')
設置頁面的ValidateRequest =「false」會使頁面的安全性變得更弱,我會推薦使用HTML編輯器控件。 – yogi
謝謝(感謝++)立即回覆先生,但是有可能在不更改上述那些值的情況下執行此操作。 (我只是好奇,如果可能的話):D –