Configurarea securității
ASP.NET configurare vă permite să configurați întregul server, aplicația ASP.NET, sau pagini individuale într-un subdirector al cererii. Puteți configura caracteristici, cum ar fi autentificarea, pagina cache, opțiunile de compilare, mesaje de eroare specifice, opțiuni de depanare și urme, și multe altele. Această secțiune descrie modul de utilizare a recomandărilor pentru a optimiza opțiunile de configurare de securitate atunci când configurați aplicații ASP.NET locale sau la distanță. Pentru mai multe informații cu privire la protecția altor caracteristici ASP.NET, a se vedea. În secțiunile menționate la punctul A se vedea. Prea.
Acestea sunt recomandări pentru configurare și de ajutor de codificare a îmbunătăți securitatea aplicațiilor. Dar, la fel de important pentru a instala în mod constant pe server cele mai recente aplicații de protecție actualizări pentru Microsoft Windows și Microsoft Internet Information Services Services (IIS), precum și toate actualizările pentru Microsoft SQL Server sau alt software care oferă acces la surse de date.
În sistemul de configurare ASP.NET se aplică numai la resurse și oportunități ASP.NET. Pentru a configura resursele nu sunt legate de un ASP.NET, utilizați posibilitatea de configurare IIS. Pentru mai multe informații despre modul de configurare IIS, consultați. Lucrul cu metabazei (IIS 6.0) și directorul proprietăți metabazei IIS.
Când salvați date confidențiale în fișierul de configurare de aplicare ar trebui să cripta valorile sensibile folosind configurația protejată. Anumite date sensibile includ chei de criptare stocate în configurație și element de conectare la linia machineKey la sursa de date stocate în connectionStrings elementelor de configurare. Pentru mai multe informații, consultați. În informațiile de configurare de criptare utilizând Configurație protejată.
criptare de confidențialitate containere cheie de configurare
O problemă critică atunci când se utilizează cheia de criptare este un fișier de protecție, de asemenea, cunoscut sub numele de containerul în care este stocat cheia. Este important să se țină seama de nivelul de protecție, care este asociat cu containerul. Rețineți că recipientul este păstrat într-un fișier normal sistem de operare, precum și accesul la cheia de criptare este ajustat la ACL-uri de gestionare a fișierelor. Listele de control al accesului poate fi moștenită din dosarul în care este creat fișierul. Containere chei cu domeniul de aplicare locală (useMachineContainer "true") sunt stocate într-un folder ascuns% AllUsersprofile% \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys.
În mod implicit, utilizatorul care a creat containerul, are acces deplin la cheie. Alti utilizatori (inclusiv grupul de administratori) pot sau nu pot avea acces la container, în funcție de ACL-uri de containere. Alți utilizatori pot avea acces la containerul prin înregistrarea -PA IIS pentru cheie ASP.NET (IIS Registration Tool pentru ASP.NET (Aspnet_regiis.exe)). Utilizatorii care încearcă să cripta sau decripta datele cu cheia specificată trebuie să aveți permisiunile necesare pentru a accesa containerul cheie.
În unele cazuri, un utilizator fără drepturi de administrator poate crea o cheie de criptare. Acest lucru se poate întâmpla în cazul în care aplicația necesită configurare de criptare, dar cheia nu există. Vă rugăm să rețineți că, atunci când operațiunea de criptare în cazul în care, în acest caz este creat containerul.
Apoi, .NET Framework oferă cheia necesară și containerul corespunzător listele actuale de control al accesului utilizatorilor. O potențială problemă cu acest lucru este faptul că utilizatorul este un administrator nu poate accesa cheia de criptare container. Administratorii pot accesa cheia, pentru a face rost de un fișier fizic în folderul specificat mai sus. Descris recomandări indică faptul că un utilizator cu drepturi de administrator trebuie să creeze cheile necesare înainte de a le utiliza, și, astfel, să evite crearea lor la momentul de criptare.
Într-un mediu de shared hosting, utilizatorii rău intenționate pot modifica setările de configurare, prin editarea fișierelor de configurare direct, folosind API-ul, și alte instrumente de gestionare a configurației și de configurare. Prevent schimba configurația aplicației poate fi realizată prin blocarea partiției de configurare. Acest lucru se poate face prin adăugarea de elemente de locație fișier Machine.config sau un alt fișier de configurare situate în ierarhia mai mare decât fișierul de configurare, care trebuie să fie protejate. element de locație este utilizat pentru a preveni modificările subsidiarelor setările fișierului de configurare. Pentru mai multe informații, consultați. Walkthrough. Dezactivați setările de configurare ASP.NET și Ghidul practic. Setarea directoare individuale cu ajutorul parametrilor de localizare.
În mod implicit, de configurare de la distanță este dezactivată. Dacă este activată, autentificarea utilizatorului are loc la nivelul DCOM și numai administratorii locali au dreptul de a avea acces pentru a citi și a scrie date de configurare. Pentru informații suplimentare. Consultați Editarea ASP.NET de la distanță fișiere de configurare.
Configurația sistemului definește o permisiune înainte de a apela un handler de secțiune de configurare personalizată, iar această provocare nu are încredere în .NET Framework. Apelul se face cu aplicații de rezoluție de încredere. Sistemul de configurare ASP.NET are încredere în directorul% SystemRoot% \ Microsoft.NET Framework \ versiune \ CONFIG \, dar nu au încredere în directoarele de sub el în ierarhie.
Pentru permisele de utilizator de configurare a secțiunii de tratare trebuie să specifice atributele de control al accesului pentru codul (CAS) la cerere. Pentru mai multe informații, consultați. În secțiunea de control al accesului la codul în ASP.NET sau de control al accesului bazat pe codul.
fișier de configurare blocare
fișier de configurare bloc poate fi doar câteva încercări de a salva datele din fișierul de configurare sau pentru a deschide un descriptor de fișier. Un utilizator rău intenționat poate încerca să blocheze fișierul Machine.config rădăcină sau fișierul Web.config, dar necesită încredere completă, care este dezactivată în mod implicit.
Folosind fișierul API-configurare pentru a citi fișiere arbitrare
Clasele API-configurare nu poate citi directoare, care nu fac parte din domeniul de aplicare, sau fișiere cu extensii care nu sunt .config.
Atunci când IIS primește o cerere pentru o aplicație ASP.NET, setările IIS metabază aplică o aplicație ASP.NET, indiferent de setările de configurare ASP.NET pentru această aplicație. Această limitare ar putea conduce la faptul că aplicația ASP.NET nu va fi disponibil pentru utilizatori, sau vor avea mai puține restricții de acces.
De exemplu, în cazul în care setările de securitate metabaza IIS sunt stabilite astfel încât să permită accesul numai la utilizatorii autentificați, precum și setările de securitate fișier Web.config IIS permit accesul anonim la site-ul, utilizatorii anonimi nu pot accesa site-ul. Pentru a remedia acest lucru, este necesar să se configureze IIS Manager pentru accesul aplicație web pentru utilizatorii anonimi.
Pentru mai multe informații despre capacitățile de servicii de protecție IIS, a se vedea. În securitate în IIS 6.0.
Următoarele secțiuni descriu modul în care puteți reduce riscurile potențiale de securitate, create mesaje de eroare neașteptate și evenimente.
excepții
Pentru a preveni furnizarea de informații confidențiale nedorite, puteți configura aplicația astfel încât să fie nu afișeze eroare detaliată sau afișează informații detaliate mesaje de eroare, cu excepția cazului în care clientul este serverul de web în sine. Informații suplimentare. Element secțiune CustomErrors (ASP.NET parametri de schemă).
Jurnal evenimente
de monitorizare a sănătății
încercări de conectare de succes și nereușite sunt înregistrate folosind ASP.NET instrumente de monitorizare a sănătății. În configurația implicită, acest lucru înseamnă că, atunci când o încercare de a se conecta la evenimentul Application log numele de utilizator și alte informații de diagnostic. Asigurați-vă că accesul la jurnalul de evenimente este limitat pentru a asigura confidențialitatea acestor informații.