2012-06-09 2 views
0

Я пытаюсь работать над приложением «практика», в котором значение текстового поля будет вставлено в базу данных.Как вставить html-теги/скрипт в sql в виде текста?

Что происходит, когда я вставляю значение textbox.text.

Исх. текст =

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

Я получаю сообщение об ошибке: потенциально опасное значение Request.Form было обнаружено от клиента (TextBox1 = "тревоги ('XSS') ...").

Я уже использую SQL параметры так, такие значения, как "/// \\ не является проблемой, как сейчас.

ответ

2

Set 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

Благодарим вас (спасибо ++) за немедленный ответ sir, но можно ли это сделать без изменения тех значений, которые вы указали выше. (Мне просто интересно, если это возможно): D –

1

Если это только для целей тестирования, вы можете отказаться от проверки подлинности ASP.NET, чтобы он не искал теги HTML/XML, которые могут быть потенциально опасны. Для этого установите для параметра ValidateRequest значение false на странице aspx.

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

Это не рекомендуется для производственных условий, но в вашем случае это может сделать трюк. Дополнительная информация в следующих MSDN Link

1

Это не проблема (потенциальная) sql, о которой предупреждает asp.net. Когда вы примете это значение, а затем покажете его на своей странице без кодировки, тогда этот нежелательный сценарий будет запущен.

В настоящий момент он будет показывать безобидное предупреждение, но если вы позволяете любому пользователю вводить эти значения, то кто знает, что произойдет.

0

Вы можете просто вставить тег, сломанный в строке конкатенации. как в:

Insert into table values('<'+'h2'+'>'+'Another One'+'<'+'/'+'h2'+'>') 
Смежные вопросы