Създаване на сигурност

ASP.NET Configuration ви позволява да конфигурирате целия сървър, ASP.NET приложение, или отделните страници в поддиректория на заявлението. Можете да конфигурирате функции като разпознаване, кеширането на страницата, опциите на компилатора, конкретни съобщения за грешки, отстраняване на грешки и следи възможности, и много повече. Този раздел описва как да се използват препоръките за оптимизиране на опции за конфигуриране на сигурността при създаването на местни или отдалечени приложения ASP.NET. За повече информация относно защитата на други функции, ASP.NET, вижте. В разделите, посочени в подраздел See. Твърде.

Това са препоръки за конфигурация и кодиране помогне за подобряване на сигурността на приложенията. Но също толкова важно, за да инсталирате постоянно в сървъра най-новите приложения за защита на актуализации за Microsoft Windows и Microsoft Internet Information Services (IIS) на услугите, както и всички актуализации за Microsoft SQL Server, или друг софтуер, който осигурява достъп до източници на данни.

В конфигурацията на системата ASP.NET прилага само за ASP.NET ресурси и възможности. За да конфигурирате ресурсите не са свързани с ASP.NET, използвайте възможността от конфигурацията на IIS. За повече информация за това как да конфигурирате IIS, вижте. Работа с метабазата (IIS 6.0) и IIS метабазата свойства директория.

Когато запазите поверителни данни в конфигурационния файл на приложението трябва да криптира чувствителни стойности с помощта на защитена конфигурация. Особено чувствителни данни включват криптиращи ключове, съхранявани в конфигурацията и свързващ елемент machineKey линия до източника на данни, съхранявани в connectionStrings на конфигурация елемент. За повече информация, вижте. В конфигурацията Encryption информация чрез използването на защитени конфигурация.

Декларация за криптиране ключови конфигурационни контейнери

А критичен проблем при използване на ключ за криптиране е защита на файл, известен също като контейнера, в който се съхранява ключа. Важно е да се има предвид нивото на защита, която е свързана с контейнера. Имайте предвид, че контейнерът се пази в нормална операционна система на файлове, както и достъп до ключа за шифроване се регулира на ACL за управление на файловете. списъци за контрол на достъпа могат да бъдат наследени от папката, в която е създаден файла. Контейнери клавиши с местен обхват (useMachineContainer "истинска") се съхраняват в скрита папка% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys.

По подразбиране, потребителят, който е създаден на контейнера, има пълен достъп до ключа. Други потребители (включително групата администратори) могат или не могат да имат достъп до контейнера, в зависимост от списъците за контрол на контейнера. Останалите потребители ще могат да получат достъп до контейнера, като се регистрира -pa IIS за ASP.NET ключ (IIS Регистрация Инструмент за ASP.NET (Aspnet_regiis.exe)). Потребители, които се опитват да шифроване или дешифриране на данни с определен ключ трябва да имат необходимите разрешения за достъп до ключова контейнера.

В някои случаи потребителят без администраторски права да създадете ключ за шифроване. Това може да се случи, ако приложението изисква конфигурация на криптиране, но ключът не съществува. Моля, имайте предвид, че ако в този случай се създава контейнера, след операцията на криптиране.

След това, в .NET Framework предоставя необходимата ключ и съответния контейнер изброява текущия контрол на достъпа на потребителите. Потенциален проблем с това е, че потребителят е администратор няма достъп до ключа за контейнер криптиране. Администраторите могат да получат достъп до ключа, за да се сдобият с физически файл в папката, посочена по-горе. Описани препоръки посочват, че потребител с администраторски права, трябва да се създадат необходимите ключове преди да ги използвате, и по този начин да се избегне създаването им по време на криптиране.

В един споделен хостинг среда, злонамерени потребители могат да променят настройките за конфигурация, чрез редактиране на конфигурационни файлове директно, като се използва API, както и други инструменти за управление на конфигурацията и конфигурация. Предотвратяване променя конфигурацията на приложение може да бъде постигнато чрез заключване дял конфигурация. Това може да стане чрез добавяне на местоположение елементи Machine.config файл или друга конфигурация файл, намиращ се в йерархията по-висока от конфигурационния файл, който трябва да бъде защитен. местоположение елемент се използва за предотвратяване на промени дъщерни настройки конфигурационен файл. За повече информация, вижте. Репетиция. Изключване на настройките за конфигурация ASP.NET и Практическото ръководство. Създаване на отделни директории с помощта на параметрите на положението.

По подразбиране, дистанционно конфигуриране е забранено. Ако е активирано, удостоверяване на потребителя се случва на ниво DCOM и само местни администратори имат право на достъп за четене и запис на данни за конфигурация. За допълнителна информация. Вижте Редактиране на ASP.NET Remote конфигурационните файлове.

Системната конфигурация определя разрешение преди да се обадите обичай конфигурация раздел манипулатор, и с това предизвикателство не е доверието в рамката за .NET. Обаждането е направено с приложения за решаване на доверие. конфигурацията на системата ASP.NET доверява на директория% SystemRoot% \ Microsoft.NET Framework \ версия \ CONFIG \, но не се доверявайте на директориите под него в йерархията.

За разрешения за употреба конфигурация раздел манипулатор трябва да се посочи за контрол на достъпа атрибути за кода (CAS) при поискване. За повече информация, вижте. В контрола на раздел Достъп до кода в ASP.NET или базиран контрол на достъпа за кода.

Lock конфигурационен файл

Блок конфигурационен файл може да бъде само на няколко опити да запаметите данните в конфигурационния файл или да отворите файлов дескриптор. А злонамерен потребител може да се опита да блокира Machine.config файла с корен или файла Web.config, но изисква пълно доверие, което е изключена по подразбиране.

Използване на API-конфигурационният файл, за да прочетете произволни файлове

Уроци API-конфигурации, които не могат да четат на директории, които не са част от областта на приложение, или файлове с разширения, които не са .config.

Когато IIS получи искане за прилагане на ASP.NET, настройки IIS метабазата прилагат към заявлението за ASP.NET, независимо от настройките за конфигурация ASP.NET за това приложение. Това ограничение може да доведе до факта, че прилагането на ASP.NET няма да бъде на разположение на потребителите, или ще има по-малко ограничения за достъп.

Например, ако настройките за сигурност на IIS метабазата са настроени така, че да позволяват достъп само на потребители, заверени, както и настройките за сигурност на файл Web.config IIS позволяват анонимност достъп до сайта, анонимните потребители нямат достъп до сайта. За да се промени това, е необходимо да изберете IIS мениджър за достъп до уеб приложение за анонимни потребители.

За повече информация относно защитата на възможности за услуги IIS, вижте. В областта на сигурността в IIS 6.0.

Следващите раздели описват как можете да намалите потенциалните рискове от сигурност, създаден неочаквани съобщения за грешки и събития.

изключения

За да се предотврати предоставянето на поверителна информация нежелателно, можете да конфигурирате приложението, така че той е или не видите подробна грешка или показва подробно съобщение за грешка, освен ако клиентът е уеб сървъра си. Допълнителна информация. CustomErrors Профилен елемент (ASP.NET схема параметри).

Event Log

Контрол върху здравето

Успешни и неуспешни опити за влизане се регистрират с помощта на инструментите за контрол на здравето на ASP.NET. В стандартната конфигурация, това означава, че когато един опит да влезете в случай на кандидатстване за влизане потребителското име и друга диагностична информация. Уверете се, че достъпът до регистъра на събитията се ограничава да се гарантира поверителността на такава информация.