Question

À partir d'un rapport utilisateur, lors de l'édition de foo. textboxBar autorise les caractères spéciaux générant une erreur .net d'avertissement lors de l'enregistrement '

textboxBar.Text est assigné à un objet et enregistré avec nHibernate

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

Penser que cela peut être nHibernate ne pas échapper des chaînes mais ne peut pas le trouver dans la documentation.

Est-ce que nHibernate 1.2.0 échappe automatiquement les chaînes, un lien apprécié?

Était-ce utile?

La solution

Je doute qu'il ait même besoin d'échapper aux chaînes - je m'attendrais à ce que les valeurs soient transmises dans les instructions paramétrées.

Je soupçonne fortement que cela n’a rien à voir avec nHibernate. Je suppose que ceci n’est qu’une erreur ASP.NET, bien que cela soit supposé être une application ASP.NET. Si tel est le cas, vous souhaiterez probablement simplement désactiver la validation pour cette page.

Consultez la page de FAQ ASP.NET sur la validation pour plus de détails. .

Autres conseils

La question ne vous dit pas tout à fait quelle est la situation, ni même s'il s'agit d'ASP.NET, mais est-ce que l'utilisateur aurait pu faire référence à la valeur "Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client"; " message d'erreur généré par ASP.NET?

Si tel est le cas, ce message d'erreur ne concerne pas NHibernate, mais tient au fait que, par défaut, ASP.NET tente de détecter les entrées de formulaire dangereuses susceptibles de constituer une tentative d'attaque de type Cross Site Scripting.

Pour résoudre ce problème, vous devez assumer la responsabilité du codage HTML de toutes vos sorties. Si vous utilisez des formulaires Web, vous devez ajouter cette directive de page à votre page ...

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

... puis assurez-vous de valider l'entrée vous-même et / ou veillez à toujours coder la sortie lorsque vous l'incluez ultérieurement en HTML.

Si vous utilisez ASP.NET MVC, vous procédez de la même manière en ajoutant l'attribut [ValidateInput] à l'action de votre contrôleur:

[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Edit(...)
{
   return View();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top