Normal kullanıcı etkinliği possiblility dışına gitmek doğrulama denetimlerini yapmak gerekir?

5 Cevap php

Ben son zamanlarda çok formu güvenlik düşünüyordum Hey guys. Enjeksiyonu önlemek için (Eğer uygun mysqli biçimlendirme kullandığınız sürece) Ben form girdi bir sayı ise, bir sayı bekliyoruz olmadığını kontrol ya da durumda onu kaçmak için zaman ve tekrar tekrar söylendi.

Güvenlik kontrolleri yapılır 1.After, ben ek mantık kontrolleri yapmak gerekir? Örneğin, kullanıcı kendi sayfasına bakıyor eğer benim kullanıcı arabirimi form göstermek değil, olsa bile kullanıcı, örneğin onları-kendini bir arkadaş isteği gönderiyor.

5 Cevap

Tabii. Doğrulama bütün mesele düzgün bekliyorsanız ne dışında girişini ele almaktır. Kullanıcılar beklenen ne verdiyse, sen doğrulamak zorunda olmazdı. Sizin kullanıcı size kesinlikle bir şey atmak olabilir varsaymak gerekir. Belirtildiği gibi, onlar manuel HTTP isteklerini kullanarak tarayıcıyı tamamen atlayabilir. Hep savunmaya kodlayın.

HTML veya JavaScript yapılacak şey sizin HTTP sunucusu verileri doğrudan yayınlamaktan birisi önlemek için yeterli değildir. Yani "kullanıcı girişi" olarak tarayıcı (hatta çerezleri!) Tarafından gönderilen bir şey ve tedavi buna göre koru.

Form istek ve sunucu hiçbir fikri yok devam o zaman, bana, kendime bir arkadaş isteği göndermek için Fiddler koşuyorum, ben sadece bir kesme noktası ayarlayabilirsiniz, bir POST değişkeni değiştirmek izin vermiyor olsa bile çünkü.

Aslında, bu büyük bir göz açma egzersiz. Eğer gitmek download Fiddler Eğer tarayıcı gönderir ya da web sitesi ile aldığı her şeyi izleyebilirsiniz. Tarayıcı tarafından gönderilen şey dolaylı güvenilir olmamalıdır.

Evet gerekir. Bazı sitenin URL bir model fark ve daha sonra url kopyalanmış ama sitesi atlayarak giriş / erişim kontrolü bazı kısıtlamayı aşmak için bazı parçası değişti değil mi? Eğer sitenizin çok buna duyarlı olmak ister misiniz?

Of course.

Sen girişi doğrulamak yeterince gidemez. Buna göre çöp ve plan gibi davranın. Eğer her şey düzgün çalışmak istiyorsanız emin everything denetler emin olun.

Bir keresinde bazı ünlü CS adam (emin değilim, bir C yazar?) Duydum iyi bir açıklama "internet üzerinde erken 90 'şer bazı zaman internet üzerinde iyi girmemek başlamış gibi gitti. Sıralandıran fikri üzerine kurulmuş Herhangi şeması kötülük (o kadar çok var çünkü) "başarısız olmaya mahkumdur.

Gibi kötü şeyler IE fonksiyonları tarif etmeyin - isSQLcommand(), isJavaScript(), compilesToBinaryandRuns(). Bu kara listeye denir ve bunu yaparken kendinizi egzoz ve orada senden daha akıllı ve daha kötü birileri her zaman vardır.

Bunun yerine whitelisting odaklanmak. Enumerate the good, ve liste sadece gerçekleşmesini bekleyebilirsiniz şeyler. Erkek / bayan seçenekleri ile bir select HTML elemanı var?

if (selectInput == 'male' || selectInput == 'female'){
    //proceed
}
else {
    //dump the user data and start over
}

EDIT

Bu Marcus Ranum, bir güvenlik uzmanı oldu:

http://www.ranum.com/security/computer_security/editorials/dumb/