Günlüğe kaydetme başarısız oturum açma girişimleri şifreleri gösteriyor


38

Web günlüğümde başarısız oturum açma girişimlerini şöyle bir mesajla günlüğe kaydetmeye başladım

Failed login attempt by qntmfred

Bu kütüklerin bir kısmının neye benzediğini fark ettim

Failed login attempt by qntmfredmypassword

Bazı kullanıcıların kullanıcı adlarını ve şifrelerini kullanıcı adı alanına yazdıkları için başarısız bir giriş yaptıklarını tahmin ediyorum. Parolalar veritabanında saklanır, ancak eğer bir şekilde db tehlikeye girerse, bu günlük mesajları, bir saldırganın, böyle bir giriş yapmış olmanın en düşük yüzdesi olan kişilerin parolalarını bulmalarının bir yolu olabilir.

Bununla baş etmenin daha iyi bir yolu var mı? Bu ihtimal için endişelenmeli miyim?


14
Evet, endişelenmelisin.
FoolishSeth


4
UX ve güvenliği geçtiğinden beri ilginç bir soru. Michael'ın bağlantılarından birinde belirtildiği gibi, çoğu vakayı Javascript (istemci tarafı) kullanarak önleyebilirsiniz. Şifre alanı boşken Giriş düğmesini devre dışı bırakın. Javascript'i olmayan kullanıcılar, bu durumda düğme devre dışı bırakılmayacağından giriş ekranını bu şekilde kullanabilirler.
MSalters

Yanıtlar:


65

Bu şekilde dene:

Kullanıcı adı varsa, "giriş yapma girişimi başarısız" ile giriş yapın username. Değilse, "IP ile giriş başarısız" girişini yapın 123.45.67.89. Bu, yanlışlıkla kayıtlarda şifre gösterme sorunuyla ilgilenmelidir.


14
Ayrıca boş bir şifre olup olmadığını kontrol edebilir ve bu durumda uygun bir hatayla başarısız olabilirsiniz.
Mike Weller

Kullanıcı adını yazdırmak OP'nin tanımladığı sorun. Bazen başarısız bir oturum açma kullanıcının [sekme] tuşunu kullanmaması ve hem kullanıcı adını hem de parolayı kullanıcı adı alanına hızlıca girmesi ve enter tuşuna basması nedeniyle oluşur. Öneriniz bu konuyu ele almıyor.
BZink

7
@ BZink: Evet öyle. Eğer kullanıcı adı mevcutsa , bu şekilde kaydedin. Kullanıcının yaptığı şey yanlışlıkla kullanıcı adına parolayı eklerse, ortaya çıkan dize neredeyse kesinlikle geçerli bir kullanıcı adı da olmaz.
Mason Wheeler

12

Neden böyle bir kullanıcı adının veritabanında olup olmadığını kontrol etmiyorsunuz? Bu size 2 olası sonuç verecektir.

  1. Kullanıcı doğru bir kullanıcı adı girdi. O zaman şimdi ne giriş yaptığınızı kolayca kaydedebilirsiniz.

  2. Kullanıcı şifresini kullanıcı adı alanına girdiği için kullanıcı adı geçersiz. Tanımlanamayan bir kullanıcı tarafından girişimin başarısız olduğunu söyleyen bir günlük girişi girin.

Ve elbette ip, tarih ve neyi yazmamak için fazladan bir alana sahip olabilirsiniz.


3
Neden # 2'deki log girişine bir kullanıcı adı karma eklemiyorsunuz? Bu parolayı gizler, ancak aynı zamanda aynı kimliği belirsiz kullanıcı tarafından birden fazla deneme yapılıp yapılmadığını belirlemek için günlüklere bakan birinin izin vermesine izin verir.
emory

Kullanıcı adını içeren bir kayıt yoksa, yanlış yaptıkları açıktır, bu yüzden sorun gidermede hala faydalıdır.
JeffO

2
@emory, kullanıcı yanlışlıkla girildiyse, kullanıcı adıyla birlikte parola oluştururlar, dizenin yalnızca kullanıcı adı bölümünü çıkarmanın uygun bir yolu yoktur. Ve art arda giren birileri kendi kullanıcı adı alanına şifre girmiş olma ihtimalinin çok düşük olduğunu düşünüyorum. Bu, yaptığınız "bir kez kapalı" hatadır. Elimizden gelenin en iyisini yapar, ancak farkında olmadan yapmayı sürdürecek kadar aptal olan birinin olduğundan şüpheliyim: D
galdikas

@galdikas Kullanıcı adından herhangi bir şey çıkarmanıza gerek yoktur. Mesela ben 'parola' şifresi olan kullanıcıyım. 'Userpassword' ile giriş yapıyorum ve hash fonksiyonunuz 'userpassword' değerini 17 ile eşleştiriyor.
emory

1
@galdikas Muhtemelen birkaç defadan fazla yapmaya devam edecek aptal ya da ısrarcı kimse yoktur, ancak binlerce kez yapacak kadar aptal ve ısrarcı senaryolar vardır. Farkı bilmek istemez miydin?
emory

1

hususlar:

  1. Bunun ne zaman gerçekleştiğini, kullanıcı adını yanlış yazan birinin aksine olduğunu tespit edebiliyor musunuz? Yanlış yazılmış kullanıcı adlarını günlüğe kaydetmek, destek amaçları için yararlı olabilir, yani "neden oturum açamıyorum" sorusunu yanıtlayarak "kullanıcı adınızı yanlış yazdınız, nokta olmamalıdır" veya "Önde gelen bir kolonunuz var" sonra boşluk - kesip yapıştırdın mı ". Az sayıda yüksek ücretli kullanıcıya sahipseniz (yani başka bir sosyal paylaşım sitesi değil), muhtemelen bu tür bir destek sağlamanız gerekecektir.

  2. Birisi bunu yapması gereken uygun eylem nedir? Kullanıcı adları, bilgisayar korsanlığı girişimlerinin bir göstergesi olabilir. Kullanıcı adının listenizde görünmemesi, onun ne olduğunu bilmenize gerek olmadığı anlamına gelmez. Bununla birlikte, bunun ciddi bir endişe kaynağı olduğunu düşünüyorsanız ve kimin şifresi olduğunu tespit edebiliyorsanız, bu gerçekleştikten sonra kullanıcının şifresini değiştirmesini isteyebilirsiniz.

  3. Endüstri uygulamaları nedir? Endüstri uygulaması kullanıcı adı alanını günlüğe kaydeder ancak şifre alanını girmez. Bunu yapmaktan kovulma ihtimaliniz yok.

Olağandışı düşünceleriniz olmadığı sürece, endüstri uygulamalarını takip etmenizi ve ne olursa olsun kullanıcı adı alanını kaydetmenizi öneririm. Bunun yetersiz olduğunu düşünüyorsanız zorunlu şifre değişikliklerini 2. öneri olarak düşünün.


1

Sadece güvende olmak için, mevcut uygulamamda oturum açmak, oturum açma veya şifre sıfırlama yöntemlerine iletilen parametreleri saklamaz. İşlem kaydı çağrısı bunu kontrol eden isteğe bağlı bir parametreye sahiptir; true olarak ayarlandığında saklanan parametreler nesnesinin yerine geçer [Redacted]. Tabii, bu yüzden biraz veri kaçırdım, ancak IP adreslerini aldım ve düz metinde hassas bir şey alma riskini almamayı tercih ederim.

Bu tür bir şeyi gerçekten günlüğe kaydetmek istiyorsanız, bir giriş yapma girişimini kaydederken, kullanıcı adınız ile neye sahip olduğunuzu gösteren bir adla eşleşen bir adı olan kullanıcılar için veritabanını kontrol etmenizi ve yalnızca bir eşleşmeniz varsa saklamanızı öneririm. Aksi takdirde, sadece "bilinmeyen kullanıcı" olarak saklarsınız. Bu değerin değeri olup olmadığını kontrol etmek hoşunuza gidebilir, ancak her zaman [User] [Şifre] ve [UserPas] [kılıç] gibi kombinasyonlar alma riski vardır, bu durumda IP'ye karşı kontrol edebilir ve yanlışlıkla birisinin şifresinin başlangıcını açıkta yanlışlıkla sakladınız. Mümkün olası ama-[User] bunu genişletmek olabilir [Şifre] ve [userPassword] [??], bu durumda "Kullanıcı tarafından Başarılı login" ardından "userPassword tarafından başarısız login" görmek ve çıkarabiliriz tümKullanıcının şifresi. Genel olarak, güvenli olmak için, oturum açma başarılı olmadıkça, kullanıcı adlarını kaydetmemeyi söylerim.

Eklemek için düzenleyin:

İnsanların başarısız oturum açma girişimleri için kullanıcı adını kaydetmek için gönderdikleri argümanların çoğu, bence, diğer yöntemlerle daha iyi ele alınmaktadır.

Örneğin, bir müşterinin "neden giriş yapamıyorum?" Diye sorduğunda, oturum açan kullanıcı adlarının yazım işaretlerini belirtmenize izin vereceği söylenir. Bu doğrudur, ancak şifreleri yakalama riskine de değmez; Bunu, başarısızlık durumunda kullanıcıyı tekrar giriş formuna yönlendirerek, kullanıcı adı alanını vurgulayarak ve kendileri için görebilecekleri şekilde yazdıklarıyla tekrar doldurarak yapardım.

Başka bir argüman hack girişimlerini tanımlamanıza izin vermesiydi; Bir kullanıcı adına karşı bir hata dizisi, bir şifreyi zorla girmeye çalışmak olabilir. Bunu, kullanıcılar tablosunda bir oturum açma bu kullanıcıyla eşleşen bir kullanıcı adıyla her başarısızlığa uğradığında artan bir artışla "BadLogins" sütununa sahip olarak yapardım ve başarılı bir oturum açma işleminde sıfıra sıfırlanır; x son girişinizden bu yana başarısız giriş denemesi "ve girişimlerin onlardan olmadığını düşünmeleri durumunda ne yapmaları gerektiği konusunda tavsiyede bulunmak. Gerçekten kapsamlı olmak istiyorsanız, başarılı oturum açtıktan sonra bile BadLogins sütununun son değerini depolayan başka bir sütuna ve / veya bu sütunun en yüksek değerine sahip bir sütuna ve / veya bir sütuna sahip olabilirsiniz. Bu hesabın sahip olduğu toplam başarısız oturum açma sayısını saklar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.