SafeCtl.exe ActiveX denetiminde IObjectSafety uygular

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 164119
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Özet
The SafeCtl.exe örnek kodu kimin yayımladığını belirtmek üzere bir MFC tabanlı ActiveX denetimini değiştirme konusunda gösterir ve olup bir denetim üzerinde oynama yapılmış. Örnek denetim komut dosyası için güvenli ve başlatma için güvenli olup olmadığını belirlemeye yardımcı olabilecek
Daha fazla bilgi
Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Microsoft Destek dosyalarını karşıdan yükleme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591Microsoft destek dosyaları Çevrimiçi hizmetlerden nasıl
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır.. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır..

Internet Explorer 3.0 ve sonraki sürümlerinde, kullanıcı, Web sayfaları için ActiveX denetimlerinin kod ekleyebilirsiniz. <object>Etiket denetimi belirtmek için kullanılır. Denetimin bir örneği oluşturulduktan sonra özniteliklerini denetimin kalıcı arabirimler aracılığıyla ayarlanabilir. Örneğin, Internet Explorer bir HTML sayfası ayrıştırılırken bir <object>etiketi bağlamında karþýlaþtýðý her <param>etiketi, Internet Explorer ile ilgili denetimin bir özelliğini bag geçenIPersistPropertyBagarabirimi. Ayrıca, bir denetimin davranışı, yöntemleri çalıştırma, denetimin Otomasyon arabirimi üzerinden ortaya özelliklerinde değişiklik sayfaya katıştırılmış komut özelleştirilebilir.

Son kullanıcıların kodu kimin yayımladığını tanımlamak ve imzalandıktan sonra hiç kimse bu kodla yaptığını doğrulamak için Authenticode kod imzalama teknolojisi sağlar. Bu özellikleri güvenilir olmayan değerlere sahip olduğunda başlatılır veya güvenilir olmayan komut dosyaları tarafından ne zaman, otomasyon modeli kullanan kodun güvenli olduğunu garanti etmez. Bu olası güvenlik önlemek için hazards, üzerinden erişilebilir varsayılan Internet Explorer güvenlik ayarları,GüvenlikInternet Explorer'ın sekmesiSeçenekleriözellik sayfası, denetimin kendisini uygun Bileşen kategorileri uygulama olarak kaydetmenizi veya denetimi uygulamanızIObjectSafetyarabirimi. Örnek, her ikisini de gösterir.

Önce katıştırılmış bir HTML sayfasındaki bir denetimin özelliklerini ayarlar denetim için Internet Explorer sorgularIObjectSafety. Destekleniyorsa, daha sonra Internet Explorer çağırırSetInterfaceSafetyOptionsdeğer ileterek yöntemi bu arabirimde INTERFACESAFE_FOR_UNTRUSTED_DATA yanı sıra kalıcı bir arabirimin arabirim tanımlayıcısı (IID). Burada özelliklerini <param>etiketi ile başlatılması eğilimindedir, HTML sayfalarına bugün IID'si IID_IPersistPropertyBag olur. IID'si bazı arabirimler ama diğerlerinin değil ve önemli değildir, bu örnekte güvenlik olarak korumak için istediğiniz durumlar için sağlanmıştır. Örnek uygulama arabirimi desteklendiğinden emin olmak için denetler. Denetim yok, bu kalıcı Arabirim başlatılması ve bu kalıcı arabirim desteklenmiyor, verilerin ne olursa olsun istemci sisteme zarar yapmak için Denetim uygulaması,IObjectSafety::SetInterfaceSafetyOptionsyöntemi S_OK döndürür. Aksi takdirde E_FAIL geri gönderilmelidir.

Sayfanın çalışmasına, katıştırılmış bir komut vererek önce Internet Explorer benzer çağrı Denetim ileIObjectSafety:: SetInterfaceSafetyOptionsyöntemi, ancak değer yerine geçen INTERFACESAFE_FOR_UNTRUSTED_CALLER ve bazı komut dosyası IID arabirimi, genellikle IID_IDispatch olduğu. Denetimi uygun biçimde S_OK veya E_FAIL döndürmelidir.

Denetim desteklemiyorIObjectSafety, Internet Explorer Bileşen kategorileri Yöneticisi denetimi "başlatma için güvenli" kategorisi, CATID_SafeForInitializing ve "kodlama için güvenli" kategorisi, CATID_SafeForScripting, sırasıyla uygulayan olup olmadığını görmek için kullanır.

Denetim desteklemiyorIObjectSafetysahip değil kendisi uygun Bileşen kategorileri uygulama olarak kayıtlı ve Internet Explorer güvenlik düzeyini varsayılan olarak yüksek olarak ayarlanmışsa, Internet Explorer değil başlatmak denetimin özelliklerini ve bu sayfaya katıştırılan tüm komut dosyalarını çalıştırır. Bu senaryoda, son kullanıcılar aşağıdaki metni içeren bir iletişim kutusu görüntülenir:
Olası güvenlik ihlaline engellenmesi
Bu sayfayı görüntülemek verifiably güvenli olmayan etkin içerik içeriyor. Bilgisayarınızı korumak için bu içeriği görüntülenmez.
Paul Johns makalesinden gerçekleştirilen bir yönerge listesi aşağıda verilmektedir "imzalama ve İşaretleme ActiveX denetimleri:"
  • Denetimi. işleme dosyası.
  • Denetimi (dışında kayıt ve kendi kendine kaydı) kayıt defterinde değişiklik.
  • Denetimi değil overindex dizileri veya aksi halde belleği hatalı işleme.
  • Denetim doğrulama (ve düzeltir) tüm giriş, başlatma, yöntem parametreleri ve özellik kümesi işlevleri.
  • Denetimi. kötüye tüm veriler kullanıcı tarafından sağlanan veya hakkında kullanıcı.
  • Denetimi test farklı senaryolarda.
Ek bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
İmzalama ve ActiveX denetimleri işaretleme
http://msdn2.Microsoft.com/en-us/library/ms974305.aspx
Denetim yazar doğrulandı, yukarıdaki ölçütleri yerine tüm diğer kullanıcılar, düşünmek ek olarak, düşünün her ikisi de destekIObjectSafetyve bunların denetimi uygun Bileşen kategorileri uygulama olarak kaydetme. Paul Johns makalede, "imza ve İşaretleme ActiveX denetimleri." ilgili bölümünde bir listesi ve bunların avantajları ve dezavantajları bu yöntemlerin her biri için gözden

Derleme için

Örnek oluşturmak için Microsoft Visual C++ 5.0 veya Microsoft Visual C++ 6.0. Arşiv dosyaları ayıklamak sonra Microsoft Developer Studio ile Safectl.mdp proje yüklemek ve projeyi derleyin. Oluşturma sürecinin bir parçası, denetimin kendisini kaydedeceğini.

Uyarı, Listelenen iki Önişlemci simgeleri daha sonra bu bölümde kullanarak örnek değiştirmeden önce zaten kurulu veya bilgisayarda kayıtlı denetim kaydı vardır. Bunu yapmak için Regsvr32.exe ile çalışan/udenetimi için anahtarı. Bu, geçerli proje için yapacağınız Developer Studio, özel bir araç giriş de ekleyebilirsiniz. Araçlarımenüsünde,'ı tıklatınÖzelleştirme[NULL]'iAraçlarısekmesini tıklatın, aşağıdaki bilgilerle yeni bir giriş oluşturun:
                Name: &Un-register ActiveX Control             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE           Arguments: /u /v "$(TargetPath)"   Initial Directory: $(TargetDir)				
Bu noktada kullanabileceğiniz "Araçlar/kaydını ActiveX denetimi" girişine kaydı denetimi önce ekleme veya kaldırma örnek özgü Önişlemci tanımlar.

, Kendisini uygulayan "için güvenli başlatma" ve "kodlama için güvenli" olarak kaydeder, denetimi oluşturmak için Bileşen kategorileri, şu adımları izleyin:
  1. ,Projemenüsünde,'ı tıklatınAyarları.
  2. TıklatınC++sekmesini tıklatın ve sonra şu Önişlemci tanımını tanımlayın:
    L_USE_COMCAT
  3. ' I tıklatınTamamkapatmak içinAyarlarıiletişim kutusunda ve sonra yeniden denetim.
Böylece bunun yerine bunu uygulayan denetim oluşturmak içinIObjectSafetyyukarıdaki adımları uygulayın ancak yerine L_USE_COMCAT L_IMPL_OBJECTSAFETY.

, Aynı zamanda hem Önişlemci simgeleri tanımlamak için geçerlidir. Bu simgeler bu projeye özgü inceleyin. Varsayılan olarak, iki Önişlemci simgeleri Proje yapısı ayarlarını tanımlayın.

Çalışmaya

Sonra örnek Denetim yerleşik ve kayıtlı olup, Internet Explorer'ı başlatın ve açın Safectl.htm sayfasında bulunan örnek.

Denetimin yapılandırılmamış kendisini güvenli olarak kaydetmek veya uygulamak içinIObjectSafety, denetimleri başlık okuma "Başlatma için güvenli!" Denetimi tıklattığınızda, aşağıdaki iletiyi almalısınız:
I komut dosyası için güvenli olmalıdır!
, Internet Explorer, en yüksek güvenlik ayarı için ayarlanırsa, ilişkili komut dosyası çalışmaz ve aşağıdaki iletiyi alırsınız:
Başlatma için güvenli değil!


Not, Bina ve bu örnek, farklı yapılandırma sınama tarayıcıda Web sayfasını yenilediğinizde emin olun. Sayfayı yenileyin, denetimin önbelleğe alınan sürüm en son sürüm. yerine kullanabilecek
Referanslar
Güvenliğini güvenlik API'leri hakkında daha fazla bilgi için bkz: ActiveX SDK çevrimiçi belgeleri. API başvuru

Kod imzalama, hakkında daha fazla bilgi için bkz "imzası ile Microsoft Authenticode Technology" ActiveX SDK çevrimiçi belgeleri.

Bileşen Kategoriler hakkında daha fazla bilgi için ActiveX SDK çevrimiçi belgeleri. "Bileşen Categories" konusuna bakın

Arabirimi MFC Bileşen Nesne Modeli (COM) uygulama hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
141277Bir arabirim kullanarak Visual C++ MFC uygulamada geçersiz kılmak için
Geliştirme hakkında ayrıntılı bilgi için bir ActiveX denetimi ve bu Web üzerinde nasıl aşağıdaki Microsoft Web sitesini ziyaret edin:
Güvenli SAFETY SafeCtl
Not Bu, doğrudan Microsoft destek kuruluşu tarafından oluşturulan bir “FAST PUBLISH” makalesidir. Buradaki bilgiler, ortaya çıkan sorunları gidermek üzere olduğu gibi sağlanmaktadır. Mümkün olduğu kadar hızlı sunulmasının bir sonucu olarak malzemelerde yazım hataları bulunabilir ve bunlar bildirimde bulunulmadan daha sonra düzeltilebilir. Diğer hususlar için Kullanım Koşulları’na bakın.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 164119 - Son İnceleme: 01/12/2015 15:55:25 - Düzeltme: 2.0

Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 6.0, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition

  • kbnosurvey kbarchive kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMttr
Geri bildirim