2010-02-24 28 views
5

Tabii ki javascript'e erişimim yok. CS Web Geliştirme kurslarının çoğunda sunucu tarafında doğrulama hakkında biraz bilgi veriliyor ve javascript kullanıma sunulduğunda sunucu tarafı doğrulama işlemi pencereden dışarı atılıyor.Web formlarında parolaları javascript olmadan nasıl kodlarım?

İstemci tarafı asla güvenli bir yer olmadığı için javascript'e güvenmemeyi seçiyorum. Ben böyle şeyler için hem istemci hem de sunucu tarafı kodunu yazma alışkanlığına girdim. Ancak, isteğe bağlı AJAX'i olan bir web uygulaması için, birinin javascript'i devre dışı bırakılmışsa şifrenin düz metin üzerinden gönderilmesini istemiyorum.

Bir catch-22 durumu soruyor olabileceğimi fark ettim, bu yüzden şunu sormama izin ver: güvenebileceğimiz zaman kullanıcılarımızın parolalarının aynı ağdaki kötü niyetli kullanıcılardan (yeterli) güvenli olacağını nasıl bilebiliriz? sunucu tarafı komut dosyasıdır. Giriş sayfasından ilk istekte, tarayıcının bir veri alanını şifrelemesi için herhangi bir yol var mı?

+0

+1, müşterilerinizle ilgili hassas paranoya için ... =) –

+0

Evet, kabul edildi. Tarayıcıdan herhangi bir veriye asla güvenmeyin. Bir kullanıcı istediği zaman değiştirebilir. Javascript'i yeniden tanımla veya tamamen kapat. Veya kendi sitenizdeki bir sayfanın verilerini sizinkine gönderin. Javascript kontrolleri, kullanıcıya daha akıcı bir UI deneyimi sunmak için SOLELY, kötü verileri işaretlemek için sunucuya bir gezi kaydetme. Ancak, yine de tüm çekleri sunucuda tekrarlamanız GEREKİR. – Cheekysoft

cevap

4

SSL Bu sorunu çözüyor. Kayıt için, şifreler asla "şifrelenmiş" veya "kodlanmış" olmamalıdır; bu, CWE-257'un açık bir ihlali olan "Kod Çözme" veya "Şifre Çözme" yöntemini kullanır. Parolalar karma olmalı, SHA-256 mükemmel bir seçimdir, ancak bu yalnızca iletim için değil, yalnızca iletim içindir. Sırları aktardığınızda, yanlış giden şeylerin uzun bir listesi vardır, SSL bu sorunları çözmek için en iyi seçimdir.

trafiği dinleyebilir Saldırgan daha sonra da oturum kimliğini görebilir ve hemen kullanmak mümkün olacaksa

, bu yüzden onun bir tartışma konusu. Kimliği doğrulanmış oturumu korumak için SSL kullanmanız gerekir.

+0

Yani ne alıyorum: Bir kullanıcı bir siteye giriş yapmalı ve herhangi bir kişiyi dinlemeyi istemiyorsa, giriş yaptıktan sonra olanlar da dahil olmak üzere her sayfa için SSL kullanın. Bu sitenin http: // ve https: // olduğu nasıl? Kötü alıştırma mı? Yoksa başka bir kavramı özlüyorum mu? – sdellysse

+0

Haklısınız, hiçbir şey bir saldırganın trafik koklayarak bir stackoverflow oturumu ele geçirmesini durduramıyor. Açık bir kablosuz bağlantı kullanarak bir kafede bir sıcak chi yudumlarken ve kaçırılmış oturumunuz var. Çoğu geliştirici bunu anlamıyor, ancak bankofamerica.com gibi herhangi bir çevrimiçi bankacılık portalına bakarsanız, kimliği doğrulanmış tüm oturumları ssl ile korurlar. – rook

+0

Oturum açma işleminizi gerçekleştiren birinin en iyisi uzaktır ve giriş için OpenID kullanırsanız, o site kimlik doğrulamasından sorumludur (benim durumumda karma olan HTTP Digest ile yapılır). Birisi, stackoverflow oturumunuzu koklama olasılığını eklemek için, bu becerilere sahip olan çoğu kişi, hesabınızda yığın akışına dikkat etmeyecek veya hesabınızı alt edemeyecek. –

3

Kolay çözüm SSL'dir.

0

Digest HTTP Authentication'u da kullanabilirsiniz.

+0

HTTP Özet, form tabanlı bir girişe izin vermiyor. –

+0

Bunu çılgın gibi arıyordum. Burada bir soru sordum ama sanırım cevabı yanlış anladım.Bu yüzden, şifreleme denemelerinden herhangi birini aramayı ve hendeleyip SSL'ye geçmeyi bırakabilir miyim? – Jigzat

2

Sanırım birkaç kavram karıştırıyorsunuz. Tarayıcı, bireysel alanları şifrelemez. İstemci tarafı komut dosyası oluşturma, sunucu tarafı kodlama ve AJAX, dinlemelere karşı savunmak anlamına gelmez.

Diğerlerinin söylediğine göre, SSL verileri şifreleyen teknolojidir. Alanlar ve komut dosyaları dahil olmak üzere tüm istek ve yanıt, SSL oturumunda bulunur.

+0

Bu doğru, yanlış şeyleri karıştırıyordum. Bu cevapları okuduktan sonra, SSL'nin her şeyi şifrelediğini ya da çok fazla kullanılmayacağını mükemmel bir anlam ifade ediyor. Sanırım ağaçların ormanını kaçırıyordum. – sdellysse

İlgili konular