Bu, doğrudan IIS çekirdek düzeyinde engellenir. Bir test olarak IIS'deki her modülü çıkardım , böylece statik bir sayfa işleyicisi bile yoktu ve hala 400 hata mesajını görüntüledi.
IIS ile bu sorunu çözmenin mümkün olduğuna inanmıyorum. Bahsettiğiniz kayıt defteri ayarları, diğer sınırlı karakter türleri içindir. Bu işlevselliği değiştirmek için bir kol görmedim.
Amacınız bundan kaçınmak mı? Saldırı yüzeyinizi daha geniş bir şekilde açıyor ve eksik URL kaçış dizilerini engelleme sonucunda yasal bir ziyaretçinin kaybolduğunu hayal edemiyorum.
Güncelleme2:
İşte bu konuda üç harika bağlantı. Hem Nazim Lala hem de IIS ekibinden Wade Hilmo, sorunuzun tartışılması nedeniyle bu konuda blog yazdılar. Ayrıca Scott Hanselman .NET içinde querystring kısmında büyük bir yazı var:
Güncelleme:
Yetkili bir yanıt almak için IIS ekibinin bir üyesiyle görüştüm. RFC 1738'e göre% değerinin güvensiz bir karakter olarak kabul edildiğini belirtti ( http://www.ietf.org/rfc/rfc1738.txt ).
İlgili metin:
güvensiz:
Karakterler çeşitli nedenlerden dolayı güvensiz olabilir. Uzay karakteri güvensizdir, çünkü önemli boşluklar kaybolabilir ve URL'ler kopyalandığında veya kelime işlemci programlarının işlenmesine maruz kaldığında veya yazılırken önemsiz alanlar eklenebilir. "<" Ve ">" karakterleri güvenli değildir, çünkü URL'lerin çevresinde serbest metin olarak sınırlayıcılar olarak kullanılırlar; tırnak işareti ("" ") bazı sistemlerde URL'leri sınırlamak için kullanılır." # "karakteri güvenli değildir ve her zaman kodlanmalıdır; çünkü World Wide Web'de ve diğer sistemlerde bir URL'yi bir parça / bağlantıdan ayırmak için kullanılır tanımlayıcı o arkasından gelebilecek. diğer karakterlerin kodlanması için kullanılır, çünkü karakter "%" güvensiz. Ağ geçitleri ve diğer taşıma aracılarının bazen bu karakterleri değiştirdiği bilinen diğer karakterler güvenli değildir. Bu karakterler "{", "}", "|", "\", "^", "~", "[", "]" ve "` ".
Güvenli olmayan tüm karakterler her zaman bir URL içinde kodlanmalıdır. Örneğin, "#" karakteri, normalde parça veya bağlantı tanımlayıcılarıyla ilgilenmeyen sistemlerde bile URL'ler içinde kodlanmalıdır, böylece URL bunları kullanan başka bir sisteme kopyalanırsa, URL kodlaması.
IIS, proaktif olarak bunu temel düzeyde engeller, saldırı yüzeylerini en aza indirmek için proaktif bir güvenlik önlemi.