ADO.NET ve Güvenlik

ADO.NET ve Güvenlik Bu makalemizde ADO.NET"de yer alan veri sağlayıcılarına erişimleri denetleyen kod erişim güvenliği sınıflarını inceleyeceğiz. Zorluk Derecesi: 1 2 3 4 5 Anahtar Sözcükler: ADO.NET, Kod Erişim Güvenliği, İzin, Microsoft .NET Microsoft .NET Framework’te yer alan veri sağlayıcının kullanıcının belirtilen veriye erişebilmek için yeterli izine sahip olduğundan emin olması DBDataPermission sınıfı tanımlanmıştır. System.Data.Common altında yer alan DBDataPermission sınıfı CodeAccessPermission soyut sınıfında türeyen, IUnrestrictedPermission arayüzünü destekleyen soyut bir sınıftır. Bu sınıfın erişilebilir tek bir özelliği tanımlanmıştır; AllowBlankPassword, boş şifrenin izin verilip verildiği ifade eder.Bu sınıfın erişilebilir metotları ise şunlardır; Add, bu nesneye belirtilen bağlantı metni için erişim izni ekler. Assert, bu kodu çağıran kodun, erişimin bir yetki ile sınırlandırıldığı kaynağa her şekilde erişebileceğini ifadeeder. Bu kodun daha üst seviyesinde bu kodu çağıran tüm kodlara şartsız güvenilmesini sağlar. Assert kullanımı çoğu zaman güvenlik açıklarına yol açabilir, zorunlu kalınmadıkça kullanımı önerilmez. Copy, şu an ki izin nesnesinin birebir bir yeni bir kopyasını oluşturup geri döndürür. Demand, bu kodu çağıran kodların bu yetkiye sahip olup olmadığının denetimi için CLR’yi zorlar, eğer bu kodu çağıran kodlardan herhangi bir seviyede o yetki sağlanmamış ise güvenlik ihlalini belirtmek için SecurityException istisna fırlatılır. Deny, çağırma yığıtındaki bu kodu çağıran kodların bu kodu çağırmalarını engeller. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. FromXml, ToXml metotuyla XML olarak ifade edilen nesneyi yeniden oluşturur. XML Serileştirme gibidir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Intersect, şu an ki izin nesnesiyle, belirtilen izinin kesişimini ifade eden başka bir izin nesnesi oluşturur. IsSubsetOf, şu an ki izin nesnesinin, belirtilen izinin bir alt kümesi olup olmadığını ifade eder. IsUnrestricted, izinin mantığının anlamsal olarak doğruluğunu düşünmeden sınırsız izin olarak ifade edilip edilemeyeceğini belirtir. PermitOnly, bu metotu çağıran kodların bu izin nesnesi tarafından sınırlandırılmış kaynak dışındaki sınırlı kaynaklara erişmesini engeller. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXml, bu nesnenin tüm durumnu ifade FromXML metotuyla yeniden olşturulabilinecek bir XML oluşturur. Union, şu an ki izin nesnesiyle, belirtilen izinin birleşimini ifade eden başka bir izin nesnesi oluşturur.ADO.NET ile ODBC veri kaynaklarına erişimler için ODBC veri sağlayıcısının, kullanıcının o kaynağa erişim için yeterli izine sahip olduğundan emin olması için OdbcPermission sınıfı tanımlanmıştır. System.Data.Odbc altında yer alan OdbcPermission sınıfı DBDataPermission sınıfından türeyen, serileştirilebilen mühürlü bir sınıftır. Mühürlü sınıf, hiç bir sınıfın kendisinden türetilemeyeceğini ifade eder. Bu sınıf Microsoft .NET Framework’ün 1.1 versiyonunda desteklenmektedir. Microsoft .NET Framework’te parçalı güven senaryolarının oluşacağı durumlar için düşünülmüştür. Şu an için tam güven senaryoları desteklenmektedir. O yüzden bu sınıfın hiç bir etkisi yoktur. Bu sınıfın erişilebilir tek bir özelliği vardır; AllowBlankPassword, boş şifrenin izin verilip verildiği ifade eder. Değeri false’tur.Bu sınıfın erişilebilir metotları ise şunlardır; Add, bu nesneye belirtilen bağlantı metni için erişim izni ekler. Assert, bu kodu çağıran kodun, erişimin bir yetki ile sınırlandırıldığı kaynağa her şekilde erişebileceğini ifadeeder. Bu kodun daha üst seviyesinde bu kodu çağıran tüm kodlara şartsız güvenilmesini sağlar. Assert kullanımı çoğu zaman güvenlik açıklarına yol açabilir, zorunlu kalınmadıkça kullanımı önerilmez. Copy, şu an ki izin nesnesinin birebir bir yeni bir kopyasını oluşturup geri döndürür. Demand, bu kodu çağıran kodların bu yetkiye sahip olup olmadığının denetimi için CLR’yi zorlar, eğer bu kodu çağıran kodlardan herhangi bir seviyede o yetki sağlanmamış ise güvenlik ihlalini belirtmek için SecurityException istisna fırlatılır. Deny, çağırma yığıtındaki bu kodu çağıran kodların bu kodu çağırmalarını engeller. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. FromXml, ToXml metotuyla XML olarak ifade edilen nesneyi yeniden oluşturur. XML Serileştirme gibidir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Intersect, şu an ki izin nesnesiyle, belirtilen izinin kesişimini ifade eden başka bir izin nesnesi oluşturur. IsSubsetOf, şu an ki izin nesnesinin, belirtilen izinin bir alt kümesi olup olmadığını ifade eder. IsUnrestricted, izinin mantığının anlamsal olarak doğruluğunu düşünmeden sınırsız izin olarak ifade edilip edilemeyeceğini belirtir. PermitOnly, bu metotu çağıran kodların bu izin nesnesi tarafından sınırlandırılmış kaynak dışındaki sınırlı kaynaklara erişmesini engeller. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXml, bu nesnenin tüm durumnu ifade FromXML metotuyla yeniden olşturulabilinecek bir XML oluşturur. Union, şu an ki izin nesnesiyle, belirtilen izinin birleşimini ifade eden başka bir izin nesnesi oluşturur.ADO.NET ile OLE DB veri kaynaklarına erişimler için OLE DB veri sağlayıcısının, kullanıcının o kaynağa erişim için yeterli izine sahip olduğundan emin olması için OleDbPermission sınıfı tanımlanmıştır. System.Data.OleDb altında yer alan OleDbPermission sınıfı DBDataPermission sınıfından türeyen, serileştirilebilen mühürlü bir sınıftır. Mühürlü sınıf, hiç bir sınıfın kendisinden türetilemeyeceğini ifade eder. Microsoft .NET Framework’te parçalı güven senaryolarının oluşacağı durumlar için düşünülmüştür. Şu an için tam güven senaryoları desteklenmektedir. O yüzden bu sınıfın hiç bir etkisi yoktur. Bu sınıfın erişilebilir özellikleri şunlardır; AllowBlankPassword, boş şifrenin izin verilip verildiği ifade eder. Değeri false’tur. Providers, güvenlik politikası tarafından izin verilen sağlayıcıların listesini virgül ile ayrılmış olarak sağlar.Bu sınıfın erişilebilir metotları ise şunlardır; Add, bu nesneye belirtilen bağlantı metni için erişim izni ekler. Assert, bu kodu çağıran kodun, erişimin bir yetki ile sınırlandırıldığı kaynağa her şekilde erişebileceğini ifadeeder. Bu kodun daha üst seviyesinde bu kodu çağıran tüm kodlara şartsız güvenilmesini sağlar. Assert kullanımı çoğu zaman güvenlik açıklarına yol açabilir, zorunlu kalınmadıkça kullanımı önerilmez. Copy, şu an ki izin nesnesinin birebir bir yeni bir kopyasını oluşturup geri döndürür. Demand, bu kodu çağıran kodların bu yetkiye sahip olup olmadığının denetimi için CLR’yi zorlar, eğer bu kodu çağıran kodlardan herhangi bir seviyede o yetki sağlanmamış ise güvenlik ihlalini belirtmek için SecurityException istisna fırlatılır. Deny, çağırma yığıtındaki bu kodu çağıran kodların bu kodu çağırmalarını engeller. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. FromXml, ToXml metotuyla XML olarak ifade edilen nesneyi yeniden oluşturur. XML Serileştirme gibidir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Intersect, şu an ki izin nesnesiyle, belirtilen izinin kesişimini ifade eden başka bir izin nesnesi oluşturur. IsSubsetOf, şu an ki izin nesnesinin, belirtilen izinin bir alt kümesi olup olmadığını ifade eder. IsUnrestricted, izinin mantığının anlamsal olarak doğruluğunu düşünmeden sınırsız izin olarak ifade edilip edilemeyeceğini belirtir. PermitOnly, bu metotu çağıran kodların bu izin nesnesi tarafından sınırlandırılmış kaynak dışındaki sınırlı kaynaklara erişmesini engeller. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXml, bu nesnenin tüm durumnu ifade FromXML metotuyla yeniden olşturulabilinecek bir XML oluşturur. Union, şu an ki izin nesnesiyle, belirtilen izinin birleşimini ifade eden başka bir izin nesnesi oluşturur.ADO.NET ile SQL Server’a erişimler için veri sağlayıcısının, kullanıcının o kaynağa erişim için yeterli izine sahip olduğundan emin olması için SqlClientPermission sınıfı tanımlanmıştır. System.Data.SqlClient altında yer alan SqlClientPermission sınıfı DBDataPermission sınıfından türeyen, serileştirilebilen mühürlü bir sınıftır. Mühürlü sınıf, hiç bir sınıfın kendisinden türetilemeyeceğini ifade eder. Bu sınıfın erişilebilir tek bir özelliği vardır; AllowBlankPassword, boş şifrenin izin verilip verildiği ifade eder. Bu değer false olarak tanımlanmış ise IsUnrestricted da her zaman false döndürecektir.Bu sınıfın erişilebilir metotları ise şunlardır; Add, bu nesneye belirtilen bağlantı metni için erişim izni ekler. Assert, bu kodu çağıran kodun, erişimin bir yetki ile sınırlandırıldığı kaynağa her şekilde erişebileceğini ifadeeder. Bu kodun daha üst seviyesinde bu kodu çağıran tüm kodlara şartsız güvenilmesini sağlar. Assert kullanımı çoğu zaman güvenlik açıklarına yol açabilir, zorunlu kalınmadıkça kullanımı önerilmez. Copy, şu an ki izin nesnesinin birebir bir yeni bir kopyasını oluşturup geri döndürür. Demand, bu kodu çağıran kodların bu yetkiye sahip olup olmadığının denetimi için CLR’yi zorlar, eğer bu kodu çağıran kodlardan herhangi bir seviyede o yetki sağlanmamış ise güvenlik ihlalini belirtmek için SecurityException istisna fırlatılır. Deny, çağırma yığıtındaki bu kodu çağıran kodların bu kodu çağırmalarını engeller. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. FromXml, ToXml metotuyla XML olarak ifade edilen nesneyi yeniden oluşturur. XML Serileştirme gibidir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Intersect, şu an ki izin nesnesiyle, belirtilen izinin kesişimini ifade eden başka bir izin nesnesi oluşturur. IsSubsetOf, şu an ki izin nesnesinin, belirtilen izinin bir alt kümesi olup olmadığını ifade eder. IsUnrestricted, izinin mantığının anlamsal olarak doğruluğunu düşünmeden sınırsız izin olarak ifade edilip edilemeyeceğini belirtir. PermitOnly, bu metotu çağıran kodların bu izin nesnesi tarafından sınırlandırılmış kaynak dışındaki sınırlı kaynaklara erişmesini engeller. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXml, bu nesnenin tüm durumnu ifade FromXML metotuyla yeniden olşturulabilinecek bir XML oluşturur. Union, şu an ki izin nesnesiyle, belirtilen izinin birleşimini ifade eden başka bir izin nesnesi oluşturur.ADO.NET ile Oracle veri tabanına erişimler için veri sağlayıcısının, kullanıcının o kaynağa erişim için yeterli izine sahip olduğundan emin olması için OraclePermission sınıfı tanımlanmıştır. System.Data.OracleClient altında yer alan OraclePermission sınıfı CodeAccessPermission sınıfından türeyen, IUnrestrictedPermission arayüzünü destekleyen serileştirilebilen mühürlü bir sınıftır. Mühürlü sınıf, hiç bir sınıfın kendisinden türetilemeyeceğini ifade eder. Bu sınıf Microsoft .NET Framework’ün 1.1 versiyonunda desteklenmektedir. Microsoft .NET Framework’te parçalı güven senaryolarının oluşacağı durumlar için düşünülmüştür. Şu an için tam güven senaryoları desteklenmektedir. O yüzden bu sınıfın hiç bir etkisi yoktur. Bu sınıfın erişilebilir tek bir özelliği vardır; AllowBlankPassword, boş şifrenin izin verilip verildiği ifade eder. Değeri false’tur.Bu sınıfın erişilebilir metotları ise şunlardır; Assert, bu kodu çağıran kodun, erişimin bir yetki ile sınırlandırıldığı kaynağa her şekilde erişebileceğini ifadeeder. Bu kodun daha üst seviyesinde bu kodu çağıran tüm kodlara şartsız güvenilmesini sağlar. Assert kullanımı çoğu zaman güvenlik açıklarına yol açabilir, zorunlu kalınmadıkça kullanımı önerilmez. Copy, şu an ki izin nesnesinin birebir bir yeni bir kopyasını oluşturup geri döndürür. Demand, bu kodu çağıran kodların bu yetkiye sahip olup olmadığının denetimi için CLR’yi zorlar, eğer bu kodu çağıran kodlardan herhangi bir seviyede o yetki sağlanmamış ise güvenlik ihlalini belirtmek için SecurityException istisna fırlatılır. Deny, çağırma yığıtındaki bu kodu çağıran kodların bu kodu çağırmalarını engeller. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. FromXml, ToXml metotuyla XML olarak ifade edilen nesneyi yeniden oluşturur. XML Serileştirme gibidir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. Intersect, şu an ki izin nesnesiyle, belirtilen izinin kesişimini ifade eden başka bir izin nesnesi oluşturur. IsSubsetOf, şu an ki izin nesnesinin, belirtilen izinin bir alt kümesi olup olmadığını ifade eder. IsUnrestricted, izinin mantığının anlamsal olarak doğruluğunu düşünmeden sınırsız izin olarak ifade edilip edilemeyeceğini belirtir. PermitOnly, bu metotu çağıran kodların bu izin nesnesi tarafından sınırlandırılmış kaynak dışındaki sınırlı kaynaklara erişmesini engeller. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXml, bu nesnenin tüm durumnu ifade FromXML metotuyla yeniden olşturulabilinecek bir XML oluşturur. Union, şu an ki izin nesnesiyle, belirtilen izinin birleşimini ifade eden başka bir izin nesnesi oluşturur. Son Söz: Bir sonraki makalemizde görüşünceye kadar güvende kalın... İlgili Makaleler: Referanslar: Yazar : Yunus Emre ALPÖZENe-Posta : yunus.alpozen et msakademik.net

Döküman Arama

Başlık :

Kapat