256 votes

Une valeur de Request.Path potentiellement dangereuse a été détectée chez le client (*)

Je reçois l'erreur plutôt explicite suivante :

Une valeur Request.Path potentiellement dangereuse a été détectée du client (*).

Le problème est dû à * dans l'URL de la requête :

https://stackoverflow.com/Search/test*/0/1/10/1

Cette URL est utilisée pour peupler une page de recherche où 'test*' est le terme de recherche et le reste de l'URL concerne différents filtres.

Y a-t-il un moyen facile d'autoriser ces caractères spéciaux dans l'URL ? J'ai essayé de modifier le web.config, en vain.

Dois-je encoder / décoder manuellement les caractères spéciaux ? Ou existe-t-il une bonne pratique pour le faire, je préférerais éviter d'utiliser des chaînes de requête - mais cela pourrait être une option.

L'application elle-même est une application webforms c# asp.net qui utilise le routage pour produire le joli URL ci-dessus.

1 votes

Votre page a-t-elle ValidateRequest=false en haut?

0 votes

Je ne sais pas pour quelle raison le site Web essayait intérieurement une redirection qui créait une URL comme 'localhost/://localhost/myWebsiteName' qui me donnait la même erreur. Je ne sais pas pourquoi le pipeline ASP.net considère cela comme une URL de demande dangereuse.

0voto

Bertha Points 19

Cette exception s'est produite dans mon application et était plutôt trompeuse.

Elle a été lancée lorsque j'appelais une méthode Web .aspx en utilisant un appel de méthode ajax, en passant un objet tableau JSON. La signature de la méthode de la page Web contenait un tableau d'un objet .NET fortement typé, OrderDetails. La propriété Actual_Qty était définie comme un int, et la propriété Actual_Qty de l'objet JSON contenait "4 " (caractère espace supplémentaire). Après avoir supprimé l'espace supplémentaire, la conversion a été possible, la méthode de la page Web a été atteinte avec succès par l'appel ajax.

0voto

Lorsque vous traitez des Uniform Resource Locator (URL), il existe certaines normes de syntaxe, dans cette situation particulière, nous traitons des caractères réservés.

Jusqu'à RFC 3986, les caractères réservés peuvent (ou non) être définis comme délimiteurs par la syntaxe générique, par chaque syntaxe spécifique à un schéma, ou par la syntaxe spécifique d'implémentation de l'algorithme de déréférencement d'une URI; Et l'astérisque (*) est un caractère réservé.

La meilleure pratique est d'utiliser des caractères non réservés dans les URLs, ou vous pouvez essayer de les encoder.

Creusez encore :

3 votes

Cette erreur se produit également si le caractère réservé dans l'URL est codé en pourcentage, par exemple, %25 au lieu de %, donc IIS peut renvoyer cette erreur pour une URL parfaitement valide.

0voto

Burk Points 36

Essayez de définir la propriété du serveur du projet Web sur Local IIS s'il s'agit d'IIS Express. Assurez-vous que l'URL du projet est correcte et créez un répertoire virtuel.

0voto

jeppoo1 Points 422

J'ai rencontré un problème similaire dans Azure Data Factory avec le caractère :.

J'ai résolu le problème en remplaçant : par %3A

comme indiqué ici.

Par exemple, j'ai remplacé

date1=2020-01-25T00:00:00.000Z

par

date1=2020-01-25T00%3A00%3A00.000Z

1 votes

Je rencontre cela même si elles sont déjà encodées....

-1voto

Ce code peut résoudre votre problème :

@Url.Action("filterPhoto", "Photos", new { albamId = item.ID })

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X