php: sabitleme duyarlı sayfası işlevleri

3 Cevap php

Ben PHP için yeni kulüpler ve güvenlik etrafında başımı almak için çalışıyoruz.

Ben bazı idari görevlere erişim sağlayan bir yönetici sayfası var. Şu anda, bazı tohum veri ile veritabanı tablolarını yeniden doldurmanız sağlar.

Yönetici sayfasına erişmek için, önce giriş yapmanız gerekmektedir. Şu anda giriş (yakında olacak) https bitmedi.

Eğer kimlik doğrulaması ise, bir belirteç $ _SESSION içine yazılır. Her yönetici sayfasında, belirteç kontrol edilir. Eğer yanlışsa, sayfa açma sayfasına yönlendirilir.

Benim soru:

Bu PHP aşağı hassas idari görevleri "kilitlemek" için doğru yolu nedir? $ _SESSION Değişkeni içinde bir değer denetleme? Ben daha ne yapmam gerekiyor?

3 Cevap

Bu oldukça fazla bunu yapmak için standart bir yol. , Kullanıcı veritabanı / parola dosyasında / diğer bazı kimlik doğrulama karşı veri kullanıcının kimliğini bir oturum değişkeni kimlik durumunu saklamak ve oturum değişkeni düzgün kullanıcı yetkilendirme gerektiren bir eylem yapmak için girişimleri her zaman ayarlı olup olmadığını kontrol edin nihayet.

Eğer bir kontrol daha ince taneli düzeyi gerekiyorsa tabanlı rol Access Control Lists içine bakmak olabilir. Bu şekilde, kimliği doğrulanmış kullanıcılar bunları verdik rolüne dayalı uygulama belirli bölümlerine erişim izni ya da reddedilir. Bu normal parola kimlik doğrulama üstüne ek bir güvenlik önlemidir.

Eğer tek bir kullanıcı var ise, örneğin admin ACL olsa overkill.

Oturum kimlikleri genellikle çerez olarak istemci tarafı saklanır. Birisi çerez çaldı, onlar oturumunu yönlendirebilirsiniz. Eğer giriş için güvenli bir bağlantı kullanmak bile, daha sonra, teminatsız istekleri tel üzerinden gönderecek, ve herhangi bir XSS açıkları ne olursa olsun şifreli iletişimin oturum tanımlama yakalamak için kullanılabilir. session_set_cookie_params çerez gönderilen sayfaların alt etki alanı ve yol sınırlamak için kullanın.

Sen kaçırma algılamak olmayan spoofable müşteri veri kullanmayı deneyebilirsiniz. Eğer sadece bu tür veriler hakkında protokolü üzerinden kontrol, yok çünkü kendi IP sızdırma sırasında bir saldırganın bir kör saldırı yapabilir olsa, uzak IP. Ancak, bu geçerli bir kullanıcı olarak aynı NAT arkasında korsanlarına karşı korumak ve vekalet istekleri ile sorunları var değildir.

HTTP ile bir şey çalışmak mümkün olabilir digest access authentication. Bu bir meydan okuma-yanıt kimlik doğrulama protokolü bulunuyor ve böylece protokol seviyesinde şifreleme olmaksızın çalışmak üzere tasarlanmıştır. Ancak, bilinen zayıflıklarını olan MD5, dayalı. Meydan okuma hayatı göz önüne alındığında, bu bir sorun olmayabilir. Digest auth a man-in-the-middle saldırıya açıktır.