Это попытка нарушить безопасность моего сайта ASP.Net?

Я довольно новичок в ASP.NET. Недавно я настроил автоматическую электронную почту со своего веб-сайта, чтобы уведомлять меня о необработанных исключениях. Всего несколько часов назад за 3 минуты было 10 необработанных исключений, и все трассировки стека были похожи. В сообщениях об ошибках много чего я не понимаю, но мне не нравится, как это выглядит.

Вот одно из сообщений электронной почты:

An unhandled exception occurred:
Message: Padding is invalid and cannot be removed.

 Stack Trace:
    at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
    at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
    at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
    at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo)
    at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType)
    at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Это попытка взломать мой сайт или что-то еще?


Большое спасибо тем, кто предоставил ответы и комментарии, которые указали мне правильное направление, чтобы получить ответ на это исключение. Это может быть трудно определить, особенно если это не происходит в веб-ферме.

IE 5.5 не вызывал проблему, как я думал ранее.

Это не было легко найти, но сообщение на моем форуме веб-хостинга одним из сотрудников упоминало сообщения об ошибках Viewstate. Причина была связана с рабочим процессом asp или перезапуском сервера.

Параметры рабочего процесса asp относятся к элементу processModel в файле machine.config. См. http://msdn.microsoft.com/en-us/library/7w2sway1(VS.80).aspx для получения дополнительной информации.

Рекомендуемое исправление состояло в том, чтобы установить зашифрованный ключ machineKey в файле web.config. Узел Machine Key находится в элементе system.web.

Это было легко сделано и решило проблему благодаря удобному сайту ASP.NETResources, на котором есть генератор MachineKey. См. http://www.aspnetresources.com/tools/keycreator.aspx.

2 ответа

Решение

Это исключение выдается, когда обработчик ресурсов сборки получает недопустимый запрос. Вряд ли это связано с какой-либо вредоносной деятельностью; обычно это вызвано неправильно настроенной конфигурацией компьютера на сервере.

Немного предыстории:

ASP.NET имеет встроенные механизмы для предоставления ресурсов из сборки (DLL) через HttpHandler. Ресурсы, такие как JavaScripts и изображения, могут храниться в виде текста в сборке и запрашиваться браузером через обработчики.axd. Но по соображениям безопасности обработчики не принимают текстовое расположение ресурса, что может дать представление о том, как работает ваш код. Вместо этого он использует информацию в файле machine.config на сервере для шифрования уникального идентификатора ресурса. Это исключение генерируется при запросе ресурса, но когда сервер пытается расшифровать предоставленный идентификатор, происходит сбой.

Ошибка в том, что ваш домен приложений был переработан / перезапущен. Когда это происходит, приложение и ключ машины устанавливаются в автоматический режим, он меняется. Это влияет на расшифровку информации в URL-адресе ресурсов (.axd). Установка фиксированного машинного ключа предотвратит его повторение.

Пожалуйста, проверьте это для получения дополнительной информации о подобном случае (объяснение с проблемой с проверкой состояния представления, но причина та же самая): http://www.developmentnow.com/blog/InvalidViewstate+Or+Unable+To+Validate+Data+Error.aspx

Ps. это объясняется при развертывании на одном сервере:) - хотя решение для обоих мульти-серверов одинаково, исправление обычно объяснялось только для того, чтобы все серверы использовали один и тот же ключ компьютера.

Обновление 1: заполнение недействительным, сообщение не имеет отношения к заполнению CSS. Если это происходит только на то есть 5.5, вероятно, что параметры для webresource.axd перепутаны, как в этом вопросе: генерируются неверные параметры Webresource.axd.

Другие вопросы по тегам