Bir web sitesinde giriş doğrulaması için, kullanıcıya belirli bir alan için tam olarak hangi karakterlerin geçerli veya geçersiz olduğunu açıklamakla ilgili herhangi bir güvenlik endişesi var mı?
CWE-200: Bilginin İfşası, "bir saldırıda yararlı olabilecek, ancak normalde saldırgan tarafından kullanılamayan" bilgileri ifşa etmemeye çalışılması gerektiğini söylüyor. Spesifik bir örnek, bir sistemin yığın izlerini açığa çıkarmasını engellemek olabilir ( CWE-209: Bir Hata Mesajıyla Bilginin Açığa Çıkması tarafından ele alınmaktadır).
"Girdiğiniz metin geçersiz karakterler içeriyor" gibi hata mesajlarının belirsiz olması sağlanmalı mı?
İstemci tarafı kodundaki girdileri doğrulamak için kullanılan JavaScript gibi saldırganların görebileceği normal ifadelerin dahil edilmesi bir güvenlik açığı mıdır? Alternatif, sunucu tarafındaki girdileri doğrulamak, daha fazla arka uç iletişimi gerektireceğinden kullanılabilirliği bir şekilde azaltacaktır (örneğin, sitenin yanıt vermesine ve hataları daha yavaş görüntülemesine neden olabilir).
Yoksa bu, kullanıcı / saldırgan hata üretip üretmediklerini görmek için tekrar tekrar farklı karakterler göndererek hangi karakterlerin geçerli olduğunu belirleyebildiği için bir "belirsizlik yoluyla güvenlik" mi?
Bir saldırıyı potansiyel olarak yavaşlatmak için kullanıcı deneyimine ulaşmaya değer mi?
Anlayabildiğim kadarıyla, OWASP'nin Giriş Doğrulama Hile Sayfası ve Veri Doğrulama geliştirme kılavuzunun bu konuda yön vermediğini belirtmeliyim.
Edit 2020-01-17:
why'nin herhangi bir girdi doğrulaması yapması gerektiğine ilişkin birkaç soru (o zamandan beri silindiğine ilişkin yorum yazma çabasına girdiğim yanıtlar dahil) var.
Öncelikle, 21 ve 22. sayfalarda şifrelerle ilgili rehberlik sağlayan OWASP'nin Uygulama Güvenliği Doğrulama Standardı 'na işaret eden yorum için @Loek'e teşekkür ederiz: "Şifre oluşturma kurallarının karakter türlerine izin verilir. Büyük veya küçük harf, sayılar veya özel karakterler gerekmez. ".
Bir şifredeki karakterleri sınırlamanın genellikle kötü bir fikir olduğu konusunda hemfikir olabileceğimizi düşünüyorum ( @ Merchako'nun cevabına bakın). @emory'nin işaret ettiği gibi, bu muhtemelen zor ve hızlı bir kural olamaz (örneğin, başka birinin erişimi olsa bile uygulamanın güvenliğini sağlamak için daha kolay ikincil "PIN" kullanan birçok mobil uygulama gördüm Cihaza giriş yapmak için.) Bu soruyu sorduğumda aklımda şifreler yoktu ama bu, yorumların ve cevapların gittiği yön. Dolayısıyla, bu sorunun amaçları doğrultusunda şifresiz alanlar için olduğunu düşünelim.
Giriş doğrulama, enjeksiyon saldırılarını önlemek için web siteleri, web hizmetleri ve uygulamalar için "derinlemesine savunmanın" bir parçasıdır. OWASP tarafından belirtildiği gibi enjeksiyon saldırıları, "veri kaybına, bozulmasına veya yetkisiz taraflara ifşa edilmesine, sorumluluk kaybına veya erişimin reddedilmesine neden olabilir. Enjeksiyon bazen ana bilgisayarın tamamen ele geçirilmesine yol açabilir. İş etkisi, uygulama ve veriler. "
Daha ayrıntılı bilgi için OWASP'nin 1 numaralı güvenlik açığı olan A1 Enjeksiyonu ve CWE-20: Hatalı Giriş Doğrulaması bölümlerine bakın. İkisinin de girdi doğrulamanın tam bir savunma olmadığını, yazılım ürünleri için "derinlemesine savunma" nın bir katmanı olduğunu söylediklerini unutmayın.