2009-04-30 6 views
0

ユーザーレポートから 'fooを編集するとき。 textboxBarはnHibernateエスケープ文字列はありますか?

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エンコードする責任があります。あなたはWebフォームを使用している場合、あなたは...あなたのページに

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

をこのページディレクティブを追加...そしてあなた自身の入力を検証および/またはあなたが含まれている場合、常に出力をエンコードするように注意していることを確認しなければなりませんそれはHTMLで後で。あなたはASP.NET MVCを使用している場合

は、あなたのコントローラのアクションに[ValidateInput]属性を追加することによって、同じことを実行します。

[AcceptVerbs(HttpVerbs.Post)] 
[ValidateInput(false)] 
public ActionResult Edit(...) 
{ 
    return View(); 
} 
関連する問題