2009-04-30 54 views
0

從用戶報告'編輯foo時。 textboxBar允許其生產上保存「nHibernate轉義字符串?

textboxBar.Text是分配給對象的警告.NET錯誤和使用NHibernate

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

思考它可能是NHibernate的不逃避字符串保存,但無法找到特殊字符它在文檔中。

nHibernate 1.2.0是否自動轉義字符串,鏈接讚賞?

回答

1

我懷疑它甚至需要轉義字符串 - 我期望值在參數化語句中傳遞。

我強烈懷疑這與nHibernate無關 - 我懷疑這只是一個ASP.NET錯誤,儘管承認這是假設它是一個ASP.NET應用程序。如果是這種情況,您可能只想關閉該頁面的驗證。

查看ASP.NET FAQ page on validation瞭解更多詳情。

+0

指甲。現在要經歷一切並逃避一切。謝謝。 – sre 2009-04-30 21:48:16

1

從你的問題或甚至這是ASP.NET的情況來看,情況並不完全清楚,但用戶是否可以引用「從客戶端檢測到潛在危險的Request.Form值...」錯誤ASP.NET生成的消息?

如果是這樣,該錯誤消息與NHibernate無關,但與事實有關,默認情況下,ASP.NET嘗試檢測可能是跨站點腳本攻擊企圖的危險表單輸入。

要解決這個問題,您需要對所有輸出的HTML編碼負責。如果您使用的web表單,你應該加入這個頁面指令到您的網頁...

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

...然後確保你自己驗證輸入和/或小心總是編碼輸出,當你有它在HTML以後。

如果您正在使用ASP.NET MVC,您可以通過添加[ValidateInput]屬性到控制器的動作做同樣的事情:在頭

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