Вставить HTML-данные в SQL Server

#html #sql-server #insert-update

#HTML #sql-сервер #вставить-обновить

Вопрос:

У меня проблема с вставкой HTML-данных в SQL Server. вот подробности:

это моя хранимая процедура;

 @articleID int,
@articleBody nvarchar(max)
AS

UPDATE v2_Articles SET articleBody = @articleBody WHERE articleID = @articleID
  

и это мой asp-код для вставки данных;

 x_articleBody = Replace(Replace(Request.Form("x_articleBody"), CHR(34), """"), "'", """")

Connection.Open(ConnStr)
Connection.Execute("EXEC InsertBody @articleID = " amp; aID amp; ", _
@articleBody = '" amp; x_articleBody amp; "'")            
Connection.Close()
  

и это мои данные для вставки;

 <font> TEXT TEXT amp;nbsp;amp;nbsp; TEXT TEXT</font>
  

Итак, проблема в том, что когда я пытаюсь это сделать, сохранение данных до

 amp;nbsp;
  

это означает, что после обработки таблица sql изменяется следующим образом;

 <font> TEXT TEXT 
  

Есть ли какие-нибудь идеи по этому поводу?

ps. Я использую текстовый редактор nicedit для генерации HTML-данных.

Комментарии:

1. Это все виды плохого. Зачем сохранять HTML в базе данных? Вы проверяете свои аргументы? Как вы удерживаетесь от сохранения вредоносного HTML? Вы должны использовать sproc, а не динамический SQL. И т.д. и т.п.

2. поскольку никто не может вставить вредоносный HTML-код, это локальное приложение, и ни одна из страниц не доступна, кроме администратора =))

Ответ №1:

Прежде всего, не используйте встроенный SQL — вы причиняете себе дополнительную головную боль, делая это, потому что вам приходится проходить через этот беспорядок с очисткой данных, и вы подвергаете свое приложение потенциальной SQL-инъекции.

Создайте хранимую процедуру, которая принимает текст в качестве параметра, и используйте это для сохранения вашей HTML-разметки.

Комментарии:

1. спасибо, Кон, не мог бы ты, пожалуйста, посоветовать, как использовать текст в качестве параметра =)