2010-05-26 2 views
2

나는 tiny editor 웹 페이지를 가지고 있는데, 여기서 내 사용자는이 편집기를 사용할 수 있으며 html을 내 데이터베이스에 저장합니다.html을 데이터베이스 필드에 저장하는 방법

이 html을 내 데이터베이스에 저장하는 데 문제가 있습니다. 예를 들어 " '"로 이름이 있거나 다른 html 문자 "<", ">"등이 있으면 내 코드가 삽입물에 날아가는 것처럼 보입니다.

임의의 html을 가져 오는 데 대한 모범 사례가 있으며 특정 문자를 걱정하지 않고 db 필드에 완벽하게 적용됩니다.

+2

자바 스크립트를 내장 할 수있는 능력은 상당히 큰 문제입니다. –

+0

방금 ​​작은 편집자가 당신을 위해 이렇게하는 것 같아서 왜 모든 일이 내가 아무것도하지 않고 일하는 이유가 혼란 스러웠다. – leora

답변

5

을 전체 쿼리 대신 매개 변수화 된 쿼리를 사용하면 데이터 문제를 해결할 수 있습니다.

string sqlIns = "INSERT INTO table (name, information, other) VALUES (@name, @information, @other)"; 

SqlCommand cmdIns = new SqlCommand(sqlIns, db.Connection); 
cmdIns.Parameters.Add("@name", info); 
cmdIns.Parameters.Add("@information", info1); 
cmdIns.Parameters.Add("@other", info2); 
cmdIns.ExecuteNonQuery(); 
2

SqlParameter을 사용하여 삽입 하시겠습니까? 그렇다면 문제가 없어야합니다.

+0

원칙적으로 SQL의 다른 부분은 exec 또는 내용에 대한 가정을한다. 데이터베이스의 경우 항상 사용자 입력을 인코딩해야합니다. –

0

데이터를 Html로 인코딩 할 수 있습니다. 당신은 의사 코드에 당신이 단지 것 있도록하는 HttpContext.Current.Server 개체를해야합니다 :

Database.Save(HttpContext.Current.Server.HtmlEncode(myHtml)); 

을하고 검색 : 당신이 구축하는 경우 내가 궁금하네요

myHtml = HttpContext.Current.Server.HtmlDecode(DataBase.Load()); 
+0

이것은보기에서 인코딩을하는이 모범 사례에 반대하는 것처럼 보입니다 - http://stackoverflow.com/questions/2914062/where-should-i-encode-this-html-data-in-an-asp-net- mvc-site – leora

+0

방금 ​​작은 편집기가 당신을 위해 이렇게하는 것 같아요. 모든 것이 아무것도하지 않고 일하는 이유가 왜 혼란 스럽습니까? – leora

0

실제로이 글을 읽는 것은 실제로 삽입문에 문제가 있습니까? 아니면 컨트롤러에 충돌하기 전에 웹 서버에서 문제가 발생합니까? asp.net-mvc를 사용하여 질문에 태그를 붙인 것을 알게되면 컨트롤러 메소드를 [ValidateInput (false)] 속성으로 꾸며야합니다.

+0

... 그리고 나는 OMG Ponies와 동등합니다. 당신은 당신의 DB에 HTML을 받아 들일 필요가 있는지 확인해야합니다. – Hal

관련 문제