От клиента было обнаружено потенциально опасное значение Request.Path - PullRequest
2 голосов
/ 29 августа 2011

Я в полном недоумении, почему я получаю эту ошибку.Типичная причина этой ошибки связана с попыткой отправить разметку HTML в текстовую строку или что-то подобное, но я не делаю ничего подобного.Страница, на которой я думаю, что это происходит, берет простой адрес электронной почты.

Вот моя модель с проверкой ...

public class Subscriber
{
    [Key]
    [DisplayName("Email Address")]
    [Required(ErrorMessage = "{0} is required")]
    [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$", ErrorMessage = "{0} must be a valid email address")]
    public string EmailAddress { get; set; }

    public Guid UnsubscribeKey { get; set; }
}

Вот мои ссылки на сценарии, потому что ошибка кажетсяв каталоге сценариев ...

<script src="@Url.Content("~/Scripts/jquery-1.5.2.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

Мое предположение заключается в том, что кто-то злонамеренно вводит какой-то неверный сценарий в адрес электронной почты, но я не вижу ошибок в Elmah или CodeSmith Insight, которые указывают на какие-либо измой кодЯ даже не могу понять, где именно это происходит.

И вот ошибки ...

Потенциально опасное значение Request.Path было обнаружено от клиента (:).(/NewsList/Scripts/,data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html (g)

System.Web.HttpException (0x80004005): потенциально клиентское значение было обнаружено потенциально опасное значение Request.Path (:). в System.Web.HttpRequest.ValidateInputIfRequiredByConfig ()в System.Web.HttpApplication.PipelineStepManager.ValidateHelper (контекст HttpContext)

в System.Web.HttpRequest.ValidateInputIfRequiredByConfig () в System.Web. Недопустимые символы в пути.

System.ArgumentException: Недопустимые символы в пути. На System.IO.Path.CheckInvalidPathChars (String path) в System.Security.Permissions.FileIOPermission.HasIllegalCharacters (String[] str) в System.Security.Permissions.FileIOPermission.AddPathList (доступ к FileIOPermissionAccess, элемент управления AccessControlActions, String [] pathListOrig, логическое checkForDuplicates, логическое needFullPath, Boolean copyPathList) в System.Security.Permissions.FileIOPermission..ctor (FileIOPermissionAccess access, String path) в System.Web.InternalSecurityPermissions.PathDiscovery (String path) в System.Web.HttpRequest.get_PhysicalPath () на веб-сайте.SecureFolders.context_OnEnter (Отправитель объекта, EventArgs e) в System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () в System.Web.HttpApplication *Execute & 10* в System.IO.Path.CheckInvalidPathChars (String path) в System.Security.Permissions.FileIOPermission.HasIllegalCharacters (String [] str) в System.Security.Permissions.FileIOPermission.AddPathList (контроль доступа к FileIOPermissionAringOpportOntitionOccessOringOccessOringOppisionOccessOringOccessOction, доступ,, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) в System.Security.Permissions.FileIOPermission..ctor (FileIOPermissionAccess access, String path) в системе.Web.InternalSecurityPermissions.PathDiscovery (String path) в System.Web.HttpRequest.get_PhysicalPath () в WebsitePanel.IIsModules.SecureFolders.context_OnEnter (отправитель объекта, EventArgs e) в System.Web.HttpAppe..Execute () в System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логический и завершенный синхронно)

ОБНОВЛЕНИЕ - ВОЗМОЖНО РАЗРЕШЕНО После того, как я поразмыслил об этом подробнее, я увидел «WebsitePanel.IIsModules.ecure."в следе стека, и это потрясло мою память.Я помню, что видел что-то о безопасных папках на моем хостинг-провайдере.Эта функция скрыта в их панели управления, которая будет иметь смысл в зависимости от метода.Я написал им по электронной почте и попросил отключить модуль.Это не происходило в течение нескольких дней, поэтому я подозреваю, что это было так.

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

Как указывает Исключение, в пути запроса есть недопустимые символы, точнее, двоеточие не в порядке (:) = "Потенциально опасное значение Request.Path было обнаружено клиентом (:)."

Ваш запрос содержит:

"(/ списку новостей / Сценарии / данные: C, полная: функция (а, б, в) {с = a.responseText, a.isResolved () && (a.done (функция (а) {с = а}), i.html (г "


В клиенте обнаружено потенциально опасное значение Request.Path (:). (/NewsList/Scripts/,data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}), i.html (г)

System.Web.HttpException (0x80004005): потенциально опасное значение Request.Path было обнаружено от клиента (:). в System.Web.HttpRequest.ValidateInputIfRequiredByConfig () в System.Web.HttpApplication.PipelineStepManager.ValidateHelper (контекст HttpContext)

в System.Web.HttpRequest.ValidateInputIfRequiredByConfig () в System.Web.HttpApplication + PipelineStepManager.ValidateHelper (контекст HttpContext)

Недопустимые символы в пути.


0 голосов
/ 29 августа 2011

ASP.NET MVC уже имеет атрибут DataType. Вы можете использовать это вместо регулярного выражения

public class Subscriber
{
    [Key]
    [DisplayName("Email Address")]
    [Required(ErrorMessage = "{0} is required")]
    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }

    public Guid UnsubscribeKey { get; set; }
}
0 голосов
/ 29 августа 2011

Похоже, вы не проверяете адрес электронной почты перед его отправкой на стороне клиента.Вы можете использовать приведенный ниже код для подтверждения адреса электронной почты.Одновременно установите атрибут maxlength для полей ввода электронной почты.

function validateEmail(email) 
{ 
 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 
 return email.match(re) 
}

if(!validateEmail($("#emailAddress).val()){
     alert("Invalid email address");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...