Bonjour à tous,
Je commence tout doucement à comprendre de mieux en mieux ce que je fais (enfin!)
Cependant, en implémentant une Rich Text Box, j'ai eu un petit souci de sécurité. J'ai choisi d'utiliser NicEdit. L'éditeur de texte fonctionne correctement. Par contre, lorsqu'il envoie le texte à la DB, le serveur renvoie une erreur :
A potentially dangerous Request.Form value was detected from the client (compteRendu="...alut salut<br><br>pas besoin d...").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. To allow pages to override application request validation settings, set the requestValidationMode attribute in the httpRuntime configuration section to requestValidationMode="2.0". Example: <httpRuntime requestValidationMode="2.0" />. After setting this value, you can then disable request validation by setting validateRequest="false" in the Page directive or in the <pages> configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. For more information, see http://go.microsoft.com/fwlink/?LinkId=153133.
Je n'ai cette erreur qu'à partir du moment où une balise HTML est formatée dans le texte.
J'ai trouvé plusieurs solutions. Cependant, elles me font un peu peur. Je n'ai aucune envie qu'il puisse y avoir des scripts ou toute autre crasse qui soit injectée dans le projet.
Quelle solution me conseillez-vous? Et pourquoi?
If you are on .net 4.0 make sure you add this in your web.config
<httpRuntime requestValidationMode="2.0" />
Inside the <system.web> tags
Visual Basic sample:
<AcceptVerbs(HttpVerbs.Post), ValidateInput(False)> _
Function Edit(ByVal collection As FormCollection) As ActionResult
...
End Function
in mvc 3 add AllowHtmlAttrribute to your model property
e.g.
/// <summary>
/// <para>Description</para>
/// </summary>
[AllowHtml]
public string Description { get; set; }
Partager