Inceleme nasıl Visual ınterdev CSSI güvenlik açığı kod oluşturulmuş

Makale çevirileri Makale çevirileri
Makale numarası: 253120 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

Aşağıdaki makalede nasıl belirleneceği ve CSSI (komut dosyası çalıştırma güvenlik konuları siteler arası) için açık olan doğru Visual ınterdev uygulamaları anlatılır. Doğru geçerliliği biçimlendirilmiş veya yalnızca bir giriş uygulamanız gerçekleştirilen saldırılara karşı savunmasız hale getirir.

Bu makalede, Visual ınterdev tasarım zamanı denetimleri (DTC) ve kod kitaplığı odaklanır. ASP kodu ile ilgili genel yönergeler için lütfen aşağıdaki Knowledge Base makalesine bakın:
253119ASP kodu inceleme CSSI güvenlik açığı nasıl

Daha fazla bilgi

Bazı kodun üretmediğinden otomatik olarak Visual ınterdev DTC benzersiz zorluklarından geliştiricilerine var. Bir uygulama geliştiricisi belirli oluşturulan komut dosyası nesne uygulaması ile veya nasıl en iyi yönelik tüm güvenlik açıkları olmayabilirler. Bu makalede, çeşitli DTC ile tüm bilinen sorunları içerir ve bu güvenlik açıkları adresleme olası seçenekler de yer almaktadır.

Sorunlar, belirli iki kategoriye ayrılır:
  1. Bir veritabanı ve veritabanı verilerini görüntülemek için komut dosyası bir DTC, kullanıcıların giriş içerir.
  2. Görüntülemek için komut dosyası bir DTC veya istemci tarafından gönderilen verileri kullanın.
Her iki durumda da, uygun doğrulama ve çıkış değerlerini kodlama engelleyen bir DTC tabanlı sayfa CSSI bir saldırıda kullanılan.

Herhangi bir bilgi olarak alan bir DTC yöntemini kullanırken sağlanan kullanıcı bilgilerini kullanarak, değer ayarlandı (örneğin, .getCaption .getText, .Value), DTC sonuç dizesi HTMLEncoded değildir. Ayrıca, veritabanı alanlara bağlı olan bazı DTC, kodlama olmadan veritabanından ham bilgileri görüntüler. Örneğin, HTMLEncode bu değerleri tarayıcıda görüntülerken gerekir. Örneğin:
Response.Write Server.HTMLEncode(Textbox1.value)
				
URL'nin bir parçası olarak kullanılacak verileri ise URLEncode yerine kullanmanız gerekir. Örneğin:
Response.Write "<A HREF=http://webserver/webapplication/page.asp?data=" & Server.URLEncode(Textbox1.value) & ">Click here!</A>"
				
entrusted komut dosyası kodu karakterlerini kodlamak için birden fazla yolu olduğundan, tarayıcının sayfayı işler için karakter açık olarak ayarlamanız gerekir. Bu işlemi belgenizin <head>etiketleri arasında bir istemci tarafı <meta>etiketi ekleyerek yapabilirsiniz. Örneğin,:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset= ISO-LATIN-1">
				
Bu da ASP'DEN Response.Charset özelli?ini kullanarak yapılabilir:

<% Response.Charset= "ISO-LATIN-1" %>
				


Sık kullanılan bazı örnekler aşağıda verilmektedir:

Bu tabloyu kapaBu tabloyu aç
GörüntülemeÖrnek kod
DTC, bir düğme değeri
Response.Write Button1.Value()
CheckBox bir DTC resim yazısı
Response.Write CheckBox1.getCaption()
DTC, bir etiket, resim yazısı
Response.Write Label1.getCaption()
ListBox bir DTC metin
Response.Write Listbox1.getText()
Değer bir OptionGroup DTC
Response.Write OptionGroup1.getValue()
Bir TextBox DTC değeri
Response.Write Textbox1.Value()


Bu örnek için olası çözümler şunlardır:

Bu tabloyu kapaBu tabloyu aç
GörüntülemeÖrnek kod
DTC, bir düğme değeri
Response.Write Server.HTMLEncode(Button1.Value())
CheckBox bir DTC resim yazısı
Response.Write Server.HTMLEncode(CheckBox1.getCaption())
DTC, bir etiket, resim yazısı
Response.Write Server.HTMLEncode(Label1.getCaption())
ListBox bir DTC metin
Response.Write Server.HTMLEncode(Listbox1.getText())
Değer bir OptionGroup DTC
Response.Write Server.HTMLEncode(OptionGroup1.getValue())
Bir TextBox DTC değeri
Response.Write Server.HTMLEncode(Textbox1.Value())


Kılavuz DTC bir veritabanından HTMLEncode değerleri yapar. Veritabanınızın kullanıcı giriş (örneğin, bir konuk defteri) alırsa, HTMLEncode çıkışınız gerekir. Bu tıklatarak yapılabilir Kılavuz özellik iletişim kutusunda, <a1>veri</a1> sekmesinde yazarak:
=Server.HTMLEncode([fieldname])
				
burada AlanAdı o sütun için görüntülenen her alanın adıdır. Çoğu DTC otomatik olarak HTMLEncode verileri bir görüntülerken veritabanından; bazı yapın. Bu denetimleri yapmalısınız ek kod istemciye ç?kt? HTMLEncoded doğru olduğundan emin olmak için kullanın.

Not: DTC, sunucuya yuvarlak gezilerinde sırasında durumlarını korumak için gerekli mantık genellikle otomatik olarak uygular. Bilgileri Textbox.asp komut dosyası kitaplığını sayfası sunucuya doğru tripped yuvarlak olduğunda TextBox DTC durumunda, HTMLEncodes metin içeriği denetimin durum sürdürme işlemi kutu.

Referanslar

Daha fazla bilgi için aşağıdaki gelen Computer Acil Durum yanıt ekibi (CERT) Carnegie Mellon University'deki danışma belgesine bakın:
http://www.cert.org/advisories/CA-2000-02.html
Lütfen daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalelerinden bakın:
252985Nasıl yapılır: Web uygulamalar? için siteler arası komut dosyası çalıştırma güvenlik konuları engelle
253119Inceleme ASP kodu CSSI güvenlik açığı için nasıl
253121Inceleme MTS/ASP kodu CSSI güvenlik açığı için nasıl
253117Siteler arası komut dosyası çalıştırma güvenlik sorunları, önleme ınternet Explorer ve Outlook Express

Özellikler

Makale numarası: 253120 - Last Review: 13 Şubat 2014 Perşembe - Gözden geçirme: 1.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual InterDev 6.0 Standard Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbcssi kbctrl kbhowto kbsecurity kbsecvulnerability KB253120 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:253120

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