|
|
Yayınlandı 8.07.2023 22:05:07
|
|
|
|

Gereksinimler: Kaynak kodunu ASP.NET MVC'de çıkararak istek formundaki potansiyel tehlikeli verileri doğrulamak için alın. Basitçe söylemek gerekirse, istenen verinin çapraz site betik (XSS) içeriğine sahip olduğunu doğrular,XSS MVC'de varsayılan olarak engellenmiştir。
Çapraz site betik yazma (XSS), bazı web uygulamalarında bulunan bir güvenlik açığıdır. XSS saldırıları, saldırganların, diğer kullanıcıların izlediği web sayfalarına istemci tarafı betikleri enjekte etmesini sağlar. Saldırganlar, aynı köken politikaları gibi erişim kontrollerini aşmak için çapraz site betik açığını kullanabilir. ValidateInput: Cookies (Cookie, Form ve QueryString) özellikleri üzerinden erişilen koleksiyonların doğrulanmasını sağlar. meliHttpRequestSınıf, Cookies özellik formu üzerinden QueryString'e erişen bir istek koleksiyonunda doğrulamanın yapılıp yapılmadığını izlemek için giriş doğrulama bayrağını kullanır.
public void ValidateInput() { Her istek için bunu birden fazla kez aramak mantıklı değil. Ayrıca, onay bastırıldıysa, şimdi ameliyat yok. if (ValidateInputWasCalled || RequestValidationSuppressed) { dönmek; }
_Bayrak. set(hasValidateInputBeenCalled);
Bu, bazı XSS (çapraz site betikleme) saldırılarını (ASURT 122278) önlemek için yapılmıştır _Bayrak. set(needToValidateQueryString); _Bayrak. set(needToValidateForm); _Bayrak. Set(needToValidCookies); _Bayrak. set(needToValidatePostedFiles); _Bayrak. set(needToValidateRawUrl); _Bayrak. Set(needToValidatePath); _Bayrak. set(needToValidatePathInfo); _Bayrak. set(needToValideHeaders); } Belge:Bağlantı girişi görünür.
Potansiyel olarak tehlikeli verileri doğrulayın:HttpRequest -> ValidateString -> CrossSiteScriptingValidation.IsDangerousString, aşağıdaki şekilde gösterildiği gibi:
Kaynak kodu adresi:
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Kaynak kodunu projenize kopyalayın ve aşağıdaki şekilde test edin:
Kaynak:
Gerçekten tehlikeli içerik almak istiyorsanız, Request.Unvalidated.Form kullanabilirsiniz.
(Son)
|
Önceki:ASP.NET MVC, tüm arayüz adreslerini yansıtma yoluyla alırÖnümüzdeki:.NET/C#, veritabanı bağlantılarını karşılaştırmak için SqlConnectionStringBuilder kullanır
|