Burada bazı seçenekler vardır:
1 - (this one teklifler radyoaktif çürüme dayalı birinden döker) gerçek bir RNG bir dökümü indirin ve bunu kullanın, sadece aynı okumaya devam etmediğinden emin olun nn bayt. Bir tür tıknaz, ama bir seçenek.
2 - mt_rand()
geri Güz (Ayrıca çirkin, ama ben bu işi gördüm) - Var PHP
3 (ÇİRKİN) kendi adına /dev/urandom
okur şey yürütün:
for ($i = 0; $i < $count/8; $i++) {
$output .= dechex(mt_rand(0, 0x7fffffff));
}
Tüm seçenekler maalesef tıkalı ve çirkin. Yapılacak en iyi şey, open_basedir
ile uğraşmak zorunda olmadığınızdan emin olabilirsiniz. Yine de, bu özel sıkıntı etrafında çalışılabilir.
Nihayet - barındırıcınızı uçmak için muhtemel ama bir deneyin belki değmez: Sen bunu okuyabilmek için ev dizininde urandom
sağlamak için ev sahibi sorabilir
. çalıştırmak için onlara sormak sonra, size kullanıcılar için daha iyi güvenlik sağlayabilir böylece rasgele sayı üretmek için urandom erişmesi gereken söyle: Ev dizininde
mknod urandom c 1 9
. Sadece kendi sunucumda denedim, işe yarıyor (ama kök senin için bunu yapmalı). Sistemin sözde rasgele sayı üretecini kullanmanıza engel olmak için no no'lu pratik bir sebebi vardır, aksi takdirde PHP'den başka bir şeyle yapabilirsiniz. Bu, aslında sizin için PHP veya vhost yapılandırmasında istisnalar gerektirmediğinden, urandom
'a erişmenize izin vermenin en kolay yoludur. /dev/random
/dev/random
'a erişimi engellemek makul bir şeydir, çünkü /dev/random
mevcut (yeni) sistem entropisi ile doldurulmalıdır ve düşük trafik sunucularında sık sık meydana gelebilecekse önemli şeylerin okumanın engellenmesine neden olabilir.Bununla birlikte, /dev/urandom
, bir kez tükendiğinde iç entropi havuzunu yeniden kullandığı için hiçbir zaman engellenmeyecektir, bu yüzden daha az kaliteli bir kaynaktır.
Not
Ben open_basedir
ait kötü biridir fikri demiyorum, ama çok iyi kodu kırar. Klasik bir chroot
çok daha iyi, ancak daha zor, bu yüzden gerçek bir chroot yapmaktan çok daha fazla open_basedir
'a giriyorsunuz. En azından, herhangi bir program bir sunucuda null
, zero
ve urandom
aygıtlarına erişebilmelidir.
Gerçekten güzel bir açıklama. – elliotrock