SafeCtl.exe ıobjectsafety ActiveX denetimi uygular.

Makale çevirileri Makale çevirileri
Makale numarası: 164119 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

SafeCtl.exe örnek kodunu bir kimin yayımladığını belirtmek üzere MFC tabanlı bir ActiveX denetimini değiştirme konusunda gösterir ve olup bir denetim üzerinde oynama yapılmış. Örnek komut dizilerinde kullanmak ve başlatılmak için başlatma denetimi olup olmadığını belirlemeye yardımcı olur.

Daha fazla bilgi

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
SafeCtl.exe
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 Hizmetler'den Nasıl Alınır
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ıları kendi Web sayfalarına ActiveX denetimlerinin kod ekleyebilirsiniz. <object>Etiket denetimi belirtmek için kullanılır. Denetimin bir örneği oluşturulduktan sonra özniteliklerini denetimin kalıcı arabirimleri ayarlanabilir. Örneğin, ınternet Explorer, HTML sayfası ayrıştırılırken bir <object>etiketi bağlamında karşılaşır her <param>etiketi, ınternet Explorer ile ilgili denetimin bir özelliği bag geçirmedenIPersistPropertyBag arabirimi. Ayrıca, bir denetimin davranışı, yöntemleri çalıştırma ve denetimin Otomasyon arabirimi üzerinden kullandığı özellikler değiştirmek, sayfaya katıştırılmış komut özelleştirilebilir.

Authenticode kod teknolojisi imzalama kodu bir kimin yayımladığını tanıtmakta ve imzalandıktan sonra hiç kimsenin bu kodla yaptığını doğrulamak için son kullanıcılara sağlar. Bu kod özelliklerini güvenilir olmayan değerlere sahip olduğunda başlatılır veya ne zaman, kendi otomasyon modeli tarafından güvenilmeyen bir komut dosyası kullanan güvenli olduğunu garanti etmez. Bu olası güvenlik önlemek için Seçenekler <a0>ınternet Explorer Güvenlik sekmesi erişilebilen varsayılan ınternet Explorer güvenlik ayarlarını hazards özellik sayfası, bir denetimin kendisini uygun Bileşen kategorileri uygulama olarak kaydetmenizi veya denetimin ıobjectsafety arabirimini kullandığını gerektirir. Örnek, her ikisini de gösterir.

Bunu bir HTML sayfasında katıştırılmış bir denetimin özelliklerini ayarlar önce ınternet Explorer, Denetim ıobjectsafety için sorgular. Destekleniyorsa, ınternet Explorer sonra SetInterfaceSafetyOptions yöntemi bu arabirimde değeri geçirmeden çağırır INTERFACESAFE_FOR_UNTRUSTED_DATA yanı sıra bir <a0>kalıcı</a0> arabirimin arabirim tanımlayıcısı (IID). Günümüzde, HTML sayfaları burada özellikleri <param>etiketi başlatılması eğilimindedir, ııD'SI IID_IPersistPropertyBag açıktır. ııD'SI bazı arabirimler, ancak başkaları üzerinde değil ve önemli değildir, bu örnekteki güvenliğini korumanın isteyebilirsiniz durumlar için sağlanmıştır. Örnek uygulama arabirim desteklendiğinden emin olmak için denetler. Denetim, istemci sistemine, bu kalıcı Arabirim başlatılması ve o kalıcı arabirim desteklenmiyor, verileri ne olursa olsun, hiçbir zarar çalışabiliyorsa denetimin uygulamasıIObjectSafety::SetInterfaceSafetyOptions yöntemi S_OK döndürmelidir. Aksi halde, E_FAIL döndürülmelidir.

Çalıştırılacak sayfaya katıştırılan tüm komut dosyalarını izin vermeden önce ınternet Explorer benzer şekilde denetimin çağırır ıobjectsafety:: SetInterfaceSafetyOptions yöntemi, ancak bunun yerine değeri geçirmeden INTERFACESAFE_FOR_UNTRUSTED_CALLER ve IID, bazı komut dosyası, genellikle verilmeyen olduğu arabirimi. Denetimi uygun biçimde S_OK veya E_FAIL döndürmelidir.

Denetimin ıobjectsafety desteklemiyorsa, ınternet Explorer Bileşen kategorileri Yöneticisi denetimi "komutlandırma için güvenli" kategorisi, CATID_SafeForScripting, "başlatma için güvenli" kategori ve CATID_SafeForInitializing sırasıyla uygular, görmek için kullanır.

Denetimi ıobjectsafety desteklemiyor ve kendisini uygun Bileşen kategorileri uygulama olarak kaydedilmemiş ve ınternet Explorer güvenlik düzeyi Yüksek olarak ayarlanmışsa, varsayılan olarak ınternet Explorer denetimin özelliklerini başlatılamıyor veya sayfaya katıştırılmış herhangi bir komut çalıştırmak. Son kullanıcılar, bu senaryoda, aşağıdaki metni içeren bir iletişim kutusu alırsınız:
Kaçınılmış olası bir güvenlik ihlali
Bu sayfayı görüntülemek verifiably güvenli değil, etkin içerik içeriyor. Bilgisayarınızı korumak için <a0></a0>, bu içeriği görüntülenmez.
Paul Johns makalesinden gerçekleştirilen bir yönerge listesi aşağıda verilmektedir "imzalama ve işaretleme ActiveX denetimleri:"
  • Denetimin dosya sistemini değiştirme.
  • Denetimin kayıt (dışında kaydetmek ve kendi kendine kaydı) işlemek.
  • Denetim yok diziler overindex veya aksi bellek'ı hatalı değiştirmek.
  • Denetim doğrulama (ve düzeltir) başlatma ve yöntem parametreleri özellik kümesi işlevleri de dahil olmak üzere, tüm giriş.
  • Denetimi, kullanıcı tarafından sağlanan veya bu kullanıcı hakkında veri kötüye.
  • Denetimi, çeşitli senaryolarda sınanmıştır.
Ek bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
Imzalama ve ActiveX denetimleri olarak işaretleme
http://msdn2.microsoft.com/en-us/library/ms974305.aspx
Bir denetim yazar, yukarıdaki ölçüt herhangi diğer ek olarak, düşünebilirsiniz karşılandığından doğruladı, her iki ıobjectsafety destekleyen ve uygun Bileşen kategorileri uygulama olarak, Denetim kaydediliyor düşünmelisiniz. Olumlu ve olumsuz bu yöntemlerin her listesi için "İmzalama ve ActiveX denetimleri olarak işaretleniyor." "Paul Johns makaleyi karşılık gelen bölümü gözden geçirin.

Derleme için

Örnek oluşturma, Microsoft Visual C++ 5.0 veya Microsoft Visual C++ 6.0 gerektirir. Arşiv dosyaları ayıklamanız Safectl.mdp proje Microsoft Developer Studio yüklenemedi sonra Projeyi derleyin. Derleme işleminin bir parçası, denetimin kendisini kaydettiremedi.

Uyarı Listelenen iki Önişlemci simgeleri daha sonra bu bölümü kullanarak örnek değiştirmeden önce zaten kurulu veya bilgisayarda kayıtlı Denetim kaydını sahip. Bunu yapmak için <a0></a0>, Regsvr32.exe denetimi için <a1>/u</a1> anahtarıyla çalıştırın. Bir özel araç girdisi, geçerli proje için bunu yapar, Developer Studio de ekleyebilirsiniz. Araçlar menüsünde Özelleştir ' i tıklatın ve Araçlar sekmesini, <a1>oluşturma</a1> aşağıdaki bilgilerle yeni bir girdi:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
bu nokta örnek özgü Önişlemci tanımları ekleyip önce denetiminizi kaydını silmek için "Araçlar/kaydını ActiveX denetimi" girdisini kullanabilirsiniz.

Böylece, kendisini uygulayan "komutlandırma için güvenli başlatılıyor" ve "komutlandırma için güvenli" olarak kaydeder, denetimi oluşturmak için Bileşen kategorileri, şu adımları izleyin:
  1. Proje menüsünde Ayarlar ' ı tıklatın.
  2. C++ sekmesini tıklatın ve sonra da aşağıdaki Önişlemci tanım tanımlayın:
    l_use_comcat
  3. <a0>Ayarlar</a0> iletişim kutusunu kapatmak için Tamam ' ı tıklatın ve sonra denetimi yeniden oluşturun.
Böylece bunu yerine ıobjectsafety uygulayan denetimi oluşturmak için <a0></a0>, önceki adımları, ancak L_USE_COMCAT L_IMPL_OBJECTSAFETY ile değiştirin.

Her iki Önişlemci simgeleri tanımlamak için geçerlidir. Bu simge bu projeye özgü inceleyin. Varsayılan olarak, her iki Önişlemci simgeleri proje <a1>Yapı</a1> ayarlarını tanımlayın.

Çalıştırmak için

Örnek Denetim oluşturulduktan ve başarıyla kaydettirildi sonra ınternet Explorer'ı başlatın ve örnek ile gelen Safectl.htm sayfayı açın.

Denetimin kendisini güvenli kaydetmek veya ıobjectsafety uygulamak üzere yapılandırıldı, denetimleri resim yazısı okumanız gereken "Başlatma için güvenli!" Denetimi tıklattığınızda, aşağıdaki iletiyi almalısınız:
ISTEDIĞIM komut dosyası oluşturma için güvenli olmalıdır!
Internet Explorer, yüksek güvenlik ayarı için ayarlı ise, ilişkili komut dosyası çalışmaz ve aşağıdaki iletiyi alırsınız:
Başlatma için güvenli DEĞIL!


Not Oluşturma ve bu örnek, farklı yapılandırma sınama, Web sayfasını tarayıcıda yenileme dikkat edin. Sayfayı yenilemeniz, önbelleğe alınan sürüm denetim yerine en son sürüme kullanıyor olabilirsiniz.

Referanslar

Güvenlik Apı'leri hakkında daha fazla bilgi için bkz: güvenliğini ActiveX SDK çevrimiçi belgelerinde API başvurusu.

Kod imzalama hakkında daha fazla bilgi için ActiveX SDK çevrimiçi belgelerinde "İmzalama ile Microsoft Authenticode teknolojisi" konusuna bakın.

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

Bir Bileşen Nesne Modeli (COM) uygulama hakkında daha fazla bilgi için MFC arabirim, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
141277Visual C++ kullanarak MFC uygulamadaki bir arabirim geçersiz kılmak için
Bir ActiveX denetimi geliştirmek ve bu Web üzerinde daà ° ã½tma hakkında ayrıntılı bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
Genel, MFC ActiveX denetimleri
http://msdn.microsoft.com/en-us/library/ms968497.aspx

Özellikler

Makale numarası: 164119 - Last Review: 26 Nisan 2007 Perşembe - Gözden geçirme: 5.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbdownload kbfile kbinfo kbsample KB164119 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:164119

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com