2009-04-30 5 views
0

사용자 보고서에서 'foo를 수정할 때. textboxBar는nHibernate Escape 문자열을 사용합니까?

textboxBar.Text 객체에 할당하다 '저장에 경고 .NET의 오류가 발생하고 nHibernate 수 탈출하지 문자열이 될 수있다 생각 nHibernate 수

<property name="TextboxBar" length="255" not-null="false" /> 

를 사용하여 저장하지만, 찾을 수없는 특수 문자를 수 그것은 문서에.

nHibernate 1.2.0이 자동으로 문자열을 이스케이프 처리합니까?

답변

1

필자도 문자열을 이스케이프해야한다고 생각합니다. 매개 변수가있는 명령문에 값이 전달되기를 기대합니다.

강력하게 nHibernate와 아무런 관련이 없다고 생각합니다. ASP.NET 응용 프로그램이라고 가정하고 있지만 이것은 ASP.NET 오류 일뿐입니다. 이 경우 해당 페이지에 대한 유효성 검사를 해제하기 만하면됩니다.

자세한 내용은 ASP.NET FAQ page on validation을 참조하십시오.

+0

못을 머리에. 모든 것을 통과하고 지금 그것을 벗어나려고합니다. 감사. – sre

1

귀하의 질문에서 상황이 무엇인지, 또는 ASP.NET인지 여부는 명확하지 않지만 사용자가 "잠재적으로 위험한 Request.Form 값이 클라이언트에서 감지되었습니다 ..."오류를 언급했을 수 있습니다. 메시지가 ASP.NET에서 생성됩니까?

그렇다면이 오류 메시지는 NHibernate와 관련이 없지만 기본적으로 ASP.NET은 교차 사이트 스크립팅 공격 시도 일 수있는 위험한 양식 입력을 탐지하려고 시도한다는 사실과 관련되어 있습니다.

이 문제를 해결하려면 모든 출력을 HTML 인코딩해야합니다. 웹 양식을 사용하는 경우, 당신은 ... 페이지에

<%@ Page ValidateRequest="false" ... %> 

이 페이지를 지시문을 추가 ... 그리고 사용자가 직접 입력을 검증 및/또는 포함 할 때 항상 출력을 인코딩 할주의 있는지 확인한다 나중에 HTML로. 당신이 ASP.NET MVC를 사용하는 경우

, 당신은 당신의 컨트롤러 액션에 [ValidateInput] 속성을 추가하여 같은 일을 :

[AcceptVerbs(HttpVerbs.Post)] 
[ValidateInput(false)] 
public ActionResult Edit(...) 
{ 
    return View(); 
} 
관련 문제