PHP Güvenli Giriş - İstemci tarafı seçenekleri?

5 Cevap php

Tamam şimdi kafam karıştı. Ben kimlik doğrulaması için CodeIgniter ile kullanmak için kütüphaneler SO kullanıcılardan tavsiye elde edilmiştir. Ben dx_auth ve simpleloginsecure (ben nedeniyle sözde güvenli karma ve küçük ayak izi ikinci kullanmak düşünüyorum) araştırdılar.

ANCAK, ne istemci tarafında şifresini karma hakkında? Ben kütüphanelerin belgelerde bu herhangi bir söz görmedim. Parolaları düz metin olarak yayınlanmıştır asla böylece olursa olsun bu kütüphaneleri ne kadar güvenli, bazı istemci tarafı şifreleme (js) olması gerekmez? Ya ben bir şey eksik ve bu kütüphaneler şekilde bu kapağı yok ...

Teşekkürler

Güncelleme: Aşağıda bir kaç cevaplar SSL öneririz. Ancak, ben bu php (CodeIgniter eklenti) kitaplıkları (Ben burada tamamen yanlış) SSL yerine olduğu izlenimi altında oldu? Yanılmıyorsam eğer, SSL olmadan bu başarmak güvenli bir yolu var mı? (Geçmişte bunu göndermeden önce parolayı şifrelemek için bir javascript md5 hash fonksiyonunu kullandık ... ama daha güvenli bir şey için umuyordum).

Update 2 - Tamam konsensüs Ben SSL kullanarak gerektiğini gibi öyle görünüyor. Bu durumda ise, karma her türlü gerçekleştirmek bütün o süslü php kimlik doğrulama kütüphaneleri nokta budur. SSL sunucu istemciden şifreleme ilgilenir, o nedir (kenara belki rol yetenekleri ekleyerek. Dx_auth vb) bu ​​kütüphaneleri kullanarak noktası? Bu sunucu / veritabanında güvenli veri depolama sağlamak için basitçe? (Ben vs, kredi kartları veya aşırı hassas bir şey yok, sadece kullanıcı adı .. stackoverflow bu şifre üzerinde çalışıyorum proje üzerinde verilerin duyarlılık düzeyini karşılaştırmak istiyorsunuz)

5 Cevap

Istemci tarafı verileri şifrelemek için, SSL gerekir.

Temelde ssl tarayıcılarla post değişkenleri, vb sonra ile şifrelenir ve sunucu tarafından diğer ucunda tekrar deşifre olan her oturumun başında şifreleme anahtarını gönderir.

Bu karma algoritması ortaya çıkaracağı JS şifreleme aslında, sistem daha az güvenli hale.

UPDATE:

parolayı karma birisi zaten sitenizi ya da veritabanına erişim sağlaması kesmek durumunda, tüm şifreleri düz metin olarak görüntülenebilir olmadığını istemci ve sunucu arasında snooped olmaktan korumak değil, anlamına gelmez. Birçok kişi birden fazla site için aynı şifreyi kullanmak gibi bu özellikle önemlidir.

CodeIgniter hakkında tek bir nokta bilmeden, ben senin seçenek olacağını düşünüyorum:

  1. JavaScript atlamak ve teslim oluyor önce parola hash var. Bu bile mümkün mü?

  2. SSL bağlantısını kullanın.

Ayrıca, size iletilmesi konum ne düşünmek zorundayız. Hayatı tehdit edici bir hassas bilgiler olmadıkça, kendinize sorun - Bu gerçekten iletimi için karma olması gerekiyor?

Birisi kendi bilgisayarınızda bir keylogger veya diğer kötü amaçlı yazılım varsa Ve nihayet, bu istemci tarafında zaten anlamsız karma verecek.

Saldırgan hemen yararlı bilgiler olmaz çünkü - bu bilgilerin depolandığı veritabanı tehlikeye hale gelirse, o zaman hiçbir büyük hasar olduğunu böylece hassas bilgilerin karma noktasıdır.

Sitenizdeki tüm istekler hala saldırılarını yeniden savunmasız çünkü istemci tarafında sadece parola karma anlamsızdır. Trafiğini görebilirsiniz bir saldırganın isteği bir kullanıcı adı ve parola karma görürdünüz - trivially tekrarlanmış olabilir ve saldırgan kokladı oldu talepte kullanıcının kimliğini kabul olur.

Sonra düz metin değerleri göndererek otomatik olarak şifrelenir ve kokladı olamaz çünkü SSL etkinleştirilmesi, en iyi seçenektir. Ayrıca, kullanıcıların veri geçerli bir kaynaktan geldiğini güvenebilirsiniz.

Alternatifler, ancak vardır. SSL istemiyorsanız da bir challenge-response kimlik doğrulama şemasını kullanabilirsiniz, ancak bu da bazı sakıncaları vardır. Gerçekten sitede ne yaptığını bağlıdır.

Istemci tarafında şifrelemek için hiçbir avantajı yoktur. SSL kullanarak değilseniz, o zaman veri ne olursa olsun ele alınabilir. Yani md5 demek ile parola hash bile, md5 hash hala ele sonra, düz metin olarak gönderilir, ve daha sonra üçüncü şahıs tarafından geri oturum açma sayfasına ilan edilebilir. Tabii onlar ham şifreyi bilmiyor olabilir, ama yine de erişebilirsiniz. Eğer güvenlik konusunda endişeleriniz varsa, bir kendinden imzalı sertifika yapmak, ya da güvenilen bir sertifika için bir RapidSSL satıcıdan 10 $ ödemek ya.

Tarayıcı ve sunucu sizin için tüm şifre şifreleme halletsin. . Try {- Bunu yapmak için, güvenli bir bağlantı (protokol sonra, örneğin https://www.example.com Sen güvenli bağlantıları kabul etmek kurulum sunucu gerekir, https olacak kullandığınızdan emin olun [(2)]} bazı ipuçları.