PHP Güvenli parola listesi

4 Cevap php

Ben kullanıcıları gibi dizinde PHP dosyasında küçük ölçekli (azami 20 kullanıcı) app (onlar hakkında sonunda daha fazla bilgi) için parola listesini depolamak düşünüyordum public_html_root/system/config/

<?php if($calledByApp !== true) die();
  $pwds['username1'] = 'hispassword';
  $pwds['username2'] = 'herpassword';
  $pwds['username3'] = 'anotheroned';
?>

Şimdi. hispassword aslında sürümünü hashed

$hashedpasword = sha1($password.sha1($salt));

Root yani index.php, bu yüzden biz bu yolu güvenli söyleyebiliriz - dosyası dahil olup olmadığını bu şekilde, bu giriş noktasından başlayarak üzerine kurulu olduğu, $calledByApp denetler. Bu doğrudan tarayıcı denir - bu değil PHP dosyası olarak, metin dosyası olarak görev almazsınız - ve $calledByApp (null veya {[dönecektir beri, aynı zamanda ölecek 4)]}.

Ayrıca, başka bir kullanıcı saklanıyorsa / dosya yeniden alır, silinen, bu nedenle tüm kullanıcılara yansıtır. Ve bu dosyayı dahil sonra biz oldukça dizideki tüm kullanıcıların, bu yüzden ararsanız

if (is_string($pwds[$sanitized_username]) 
&& ($pwds[$sanitized_username] === $sanitized_sha1_userpassword))

Biz giriş yapacağız.

Benim soru: Bu güvenli enough mi?

Açıklama: - max 20 kullanıcıları için bir başka tablo DB kullanıcıları için biraz overkill gibi görünüyor. Kullanıcı is gerçek, bu DB ile bir şey olmaz eğer bu kontrol etmez iken Ayrıca, - çok eklenmiştir güvenlik gibi görünüyor.

4 Cevap

Hayır - bu gerçekten kötü bir fikir olduğunu.

By making your souce code files writeable you open a whole avenue for attacking your system. Embedding data into source code is a messy practice - not least because it will not scale. What happens if the file is locked for an update when a script tries to include it? What happens when the connection to the browser is lost part way through writing the file?

Eğer sadece hiç kullanıcıların çok küçük bir sayı ve eşzamanlılık düşük seviyede olacak oldukça emin değilseniz o kadar abetter çözüm, kullanıcı başına bir dosya içeren, inkar tüm http erişimi olan, ayrı bir dizin var olacaktır (isterseniz ya da bir karma) karma şifrenizi içeren kullanıcı adı ile adlandırılmış.

C.

Nedense mod_php bir hıçkırık varsa o Uninterpreted dosyayı gösteren httpd neden olabilir; Bunu düzeltmek için belge kök dışında komut saklayın.

Ben yerine yerine herhangi bir nedenle başarısız değil PHP yorumlayıcısı güvenmek belge kökünün dışında bu dosyayı yer olacaktır.

Bir veritabanında şifrelenmiş parolaları saklamak için her zaman daha güvenlidir.

Eğer bir veritabanı kullanıyorsanız o zaman ben orada kullanıcı verilerini saklamak istiyorsunuz. Eğer değilse o zaman ben birini kullanmaya başlamak için bakmak istiyorum.