Bezpieczny dostęp do danych

Aby napisać bezpieczny kod ADO.NET, musisz zrozumieć mechanizmy zabezpieczeń dostępne w bazowym magazynie danych lub bazie danych. Należy również wziąć pod uwagę wpływ na zabezpieczenia innych funkcji lub składników, które może zawierać aplikacja.

Uwierzytelnianie, autoryzacja i uprawnienia

Podczas nawiązywania połączenia z programem Microsoft SQL Server można użyć uwierzytelniania systemu Windows, znanego również jako zintegrowane zabezpieczenia, które używa tożsamości bieżącego aktywnego użytkownika systemu Windows, a nie przekazywania identyfikatora użytkownika i hasła. Korzystanie z uwierzytelniania systemu Windows jest zdecydowanie zalecane, ponieważ poświadczenia użytkownika nie są widoczne w parametry połączenia. Jeśli nie możesz użyć uwierzytelniania systemu Windows do nawiązania połączenia z programem SQL Server, rozważ utworzenie parametry połączenia w czasie wykonywania przy użyciu polecenia SqlConnectionStringBuilder.

Poświadczenia używane do uwierzytelniania muszą być obsługiwane inaczej na podstawie typu aplikacji. Na przykład w aplikacji Windows Forms użytkownik może zostać poproszony o podanie informacji uwierzytelniania lub można użyć poświadczeń systemu Windows użytkownika. Jednak aplikacja internetowa często uzyskuje dostęp do danych przy użyciu poświadczeń dostarczonych przez samą aplikację, a nie przez użytkownika.

Po uwierzytelnieniu użytkowników zakres ich akcji zależy od uprawnień, które zostały im przyznane. Zawsze przestrzegaj zasady najniższych uprawnień i udzielaj tylko uprawnień, które są absolutnie niezbędne.

Więcej informacji zawierają poniższe zasoby.

Zasób opis
Ochrona informacji o połączeniu Opisuje najlepsze rozwiązania i techniki zabezpieczeń dotyczące ochrony informacji o połączeniu, takie jak używanie chronionej konfiguracji do szyfrowania parametry połączenia.
Rekomendacje strategii dostępu do danych Zawiera zalecenia dotyczące uzyskiwania dostępu do danych i wykonywania operacji bazy danych.
Konstruktorzy parametrów połączeń Opisuje sposób tworzenia parametry połączenia z danych wejściowych użytkownika w czasie wykonywania.
Przegląd zabezpieczeń serwera SQL Opisuje architekturę zabezpieczeń programu SQL Server.

Polecenia sparametryzowane i wstrzyknięcie kodu SQL

Użycie sparametryzowanych poleceń pomaga chronić przed atakami polegającymi na wstrzyknięciu kodu SQL, w których osoba atakująca "wprowadza" polecenie do instrukcji SQL, która narusza zabezpieczenia na serwerze. Sparametryzowane polecenia chronią przed atakiem polegającym na wstrzyknięciu kodu SQL, zapewniając, że wartości odebrane ze źródła zewnętrznego są przekazywane tylko jako wartości, a nie część instrukcji Języka Transact-SQL. W związku z tym polecenia języka Transact-SQL wstawione do wartości nie są wykonywane w źródle danych. Zamiast tego są one oceniane wyłącznie jako wartość parametru. Oprócz korzyści zabezpieczeń sparametryzowane polecenia zapewniają wygodną metodę organizowania wartości przekazywanych za pomocą instrukcji Transact-SQL lub procedury składowanej.

Aby uzyskać więcej informacji na temat używania sparametryzowanych poleceń, zobacz następujące zasoby.

Zasób opis
Parametry elementu DataAdapter Opisuje sposób używania parametrów z elementem DataAdapter.
Modyfikowanie danych za pomocą procedur składowanych Opisuje sposób określania parametrów i uzyskiwania wartości zwracanej.
Zarządzanie uprawnieniami za pomocą procedur składowanych w programie SQL Server Opisuje sposób używania procedur składowanych programu SQL Server do hermetyzacji dostępu do danych.

Luki w skryptach

Exploit skryptu to inna forma iniekcji, która używa złośliwych znaków wstawionych do strony sieci Web. Przeglądarka nie weryfikuje wstawionych znaków i przetworzy je w ramach strony.

Więcej informacji zawierają poniższe zasoby.

Zasób opis
Omówienie luk w zabezpieczeniach skryptów Opisuje sposób ochrony przed programami wykorzystującymi skrypty i instrukcje SQL.

Sondowanie ataków

Osoby atakujące często używają informacji z wyjątku, takiego jak nazwa serwera, bazy danych lub tabeli, aby zainstalować atak na system. Ponieważ wyjątki mogą zawierać określone informacje o aplikacji lub źródle danych, możesz pomóc w lepszej ochronie aplikacji i źródła danych, ujawniając tylko istotne informacje klientowi.

Więcej informacji zawierają poniższe zasoby.

Zasób opis
Obsługa i zgłaszanie wyjątków na platformie .NET Opisuje podstawowe formy obsługi wyjątków try/catch/finally ustrukturyzowanych.
Najlepsze rozwiązania dotyczące wyjątków Opisuje najlepsze rozwiązania dotyczące obsługi wyjątków.

Ochrona źródeł danych programu Microsoft Access i Excel

Programy Microsoft Access i Microsoft Excel mogą działać jako magazyn danych dla aplikacji ADO.NET, gdy wymagania dotyczące zabezpieczeń są minimalne lub nieistnieją. Ich funkcje zabezpieczeń są skuteczne w celu odstraszania, ale nie należy polegać na tym, aby robić więcej niż zniechęcać do wtrącania się przez nieinformowanych użytkowników. Pliki danych fizycznych programu Access i Excel istnieją w systemie plików i muszą być dostępne dla wszystkich użytkowników. To sprawia, że są narażone na ataki, które mogą spowodować kradzież lub utratę danych, ponieważ pliki można łatwo skopiować lub zmienić. Jeśli wymagane jest niezawodne zabezpieczenia, należy użyć programu SQL Server lub innej bazy danych opartej na serwerze, w której pliki danych fizycznych nie są czytelne z systemu plików.

Aby uzyskać więcej informacji na temat ochrony danych programu Access i Excel, zobacz następujące zasoby.

Zasób opis
Zagadnienia dotyczące zabezpieczeń i wskazówki dotyczące programu Access 2007 Opisuje techniki zabezpieczeń programu Access 2007, takie jak szyfrowanie plików, administrowanie hasłami, konwertowanie baz danych na nowe formaty ACCDB i ACCDE oraz używanie innych opcji zabezpieczeń.
Wprowadzenie do zabezpieczeń programu Access 2010 Zawiera omówienie funkcji zabezpieczeń oferowanych przez program Access 2010.

Usługi przedsiębiorstwa

Com+ zawiera własny model zabezpieczeń, który opiera się na kontach systemu Windows i personifikacji procesów/wątków. System.EnterpriseServices Przestrzeń nazw udostępnia otoki, które umożliwiają aplikacjom platformy .NET integrowanie kodu zarządzanego ServicedComponent z usługami zabezpieczeń COM+ za pomocą klasy .

Więcej informacji zawierają poniższe zasoby.

Zasób opis
Zabezpieczenia oparte na rolach Omówienie sposobu integrowania kodu zarządzanego z usługami zabezpieczeń COM+.

Współdziałanie z kodem niezarządzanym

Program .NET Framework zapewnia interakcję z kodem niezarządzanymi, w tym składnikami COM, usługami COM+, bibliotekami typów zewnętrznych i wieloma usługami systemu operacyjnego. Praca z niezarządzanymi kodami obejmuje przejście poza obwód zabezpieczeń dla kodu zarządzanego. Zarówno kod, jak i dowolny kod, który wywołuje go, musi mieć uprawnienie niezarządzanego kodu (SecurityPermission z określoną flagą UnmanagedCode ). Niezarządzany kod może wprowadzać niezamierzone luki w zabezpieczeniach w aplikacji. Dlatego należy unikać współdziałania z niezarządzanymi kodami, chyba że jest to absolutnie konieczne.

Więcej informacji zawierają poniższe zasoby.

Zasób opis
Współdziałanie z kodem niezarządzanym Zawiera tematy opisujące sposób uwidaczniania składników COM w programie .NET Framework oraz sposobu uwidaczniania składników programu .NET Framework w modelu COM.
Zaawansowane współdziałanie modelu COM Zawiera zaawansowane tematy, takie jak podstawowe zestawy międzyoperajowe, wątkowe i niestandardowe marshalling.

Zobacz też