Ben PHP app oturum kaçırıldı ediliyor düşünüyorsun?

3 Cevap php

Ben kayıtlı kullanıcılar (geçerli Passord ile) giriş sağlar ve kendi kullanıcı adınıza dayalı bir oturumu kurar bir php site var. Ancak ben Thisis kaçırıldı ediliyor ve ben orada koymadı benim sunucuda "yeni" dosyalar buldum eminim. Sitemin SQL enjeksiyon ve XSS için tüm kullanıcı girişi temizler ama bu oluyor tutar. Herkes bu çözmek konusunda herhangi bir fikir var mı?

3 Cevap

Bir oturum çerezi kaçırma bir saldırganın sunucu üzerinde yeni dosyaları oluşturmak için izin vermemelidir. Bunu yapabileceğini tüm doğrulanmış bir kullanıcının oturumuna erişim verilir. Bu up kodu olacak ve / veya sitenin webroot rasgele dosya yükleme izin verecek sunucunun yapılandırma olur.

Uzaktan uzlaşma vurur denetlemek için, vb şüpheli dosyaları (searches.php, 7.php.jpg) ve dosya oluşturma kez olsun .., o zaman etrafında neler olup bittiğini görmek için sunucunuzun günlükleri ile tarak. Eğer hit kalanı ile birlikte oturum kimliği giriş yapıyorsanız, bu oturumun yaşamı boyunca iki veya daha fazla farklı IP den kullanılan olacak gibi oturumu, kaçırıldı eğer, trivially görebiliyordu. Bu özgün kullanıcı bir ISP kaydedilir, sonra aniden tamamen farklı bir ISP atlamak için çıktı, özellikle belli olurdu.

Ve tabii ki, nasıl seans uygulanır? Çerezler? (Gizli form alanları ve sorgu dizeleri oturumu geçen) PHP trans_sid? bir şey bir bağlantı paylaşımı sadece hareket sizin siteniz oturum kimliği iletir, ve sitenizde herhangi bir dış bağlantıları oturum kimliği HTTP referer sırıtmak olacak gibi trans_sid, kaçırma özellikle savunmasızdır.

PHP uzmanları ile geldi çözüm formları, have a look at the idea here at net-tutes her sunulması ile benzersiz anahtarlar / belirteçleri kullanmaktır.

Don't forget have a look at the PHP Security Guide. . Bu XSS, Form Spoofing, SQL Injection, oturum gaspına, oturum sabitleme ve daha fazlasını içeren konuları kapsar.

Her zaman, örneğin int veya sayılardan önce intval fonksiyonunu ve dize değerleri için mysql_real_escape_string işlevini kullanmak, sorgularda uygun veri türlerini kullanmak, unutmayın. Örnek:

$my_num = (int) $_POST['some_number'];
$my_string = mysql_real_escape_string($_POST['some_string']);

You may also use the prepend statements for your queries.

Popular Project To Secure PHP Applications:

Ben önce var ve 'cookie' tahmin etmek kolay olduğunu söylerim.

Bazı siteler, kullanıcı günlükleri, sadece çerez ve kimlik doğrulama kodu sadece bir çerez varlığını denetler oluşturun.

Ben kayıt ve siteye giriş ve daha sonra açık çerez kesip sadece benim kullanıcı kimliği saklamak fark Şimdi eğer, o zaman ben başka bir kullanıcı kimliği ve voila değeri işleyebilirsiniz!

Siz anladınız.