Güvenli veritabanı oturum değişkenlerini içerir

2 Cevap

when I connect to my database I include('connect.php') the document to connect. Now I want to do it a bit more safe. Is it possible to check that the one that want to include the connect.php is from my domain. Like:

if($_SERVER["HTTP_REFERER"] == "mydomain.com"){
    $link = mysql_connect("localhost","user","password"); 
    mysql_select_db("dbname");
}

Bu mümkün ise, nasıl ben $_SERVER["HTTP_REFERER"] == mydomain.com, zaman $_SERVER["HTTP_REFERER"] dönebilirsiniz kontrol edebilirim mydomain.com/page.php?

2 Cevap

Bu PHP içinde çözülecek bir sorun değildir. Biri sadece böyle içerme dosyası varsa, sunucu güvenliği zaten berbat edilir. Bu yetkisiz kullanıcılar / süreçlerle dosya girilmesini önlemek için çiğ PHP dosyaları ve işletim sistemi güvenlik ve kullanıcı ayarları iş porsiyon önlemek için web sunucusunun işidir. Birisi dahil edebilmek için dosyaya yeterli erişim alırsa, onlar sadece okumak, sen dosyaya koymak güvenlik önlemleri vaka hiçbiri idam edileceği için yeterli erişimi vardır.

Özetle: Merak etmeyin. :)

EDIT:

Böyle bir şey:

RewriteEngine On
RewriteRule ^connect.php /index.php [R]

İşte bu konu hakkında myriad of questions bakmak, sert senin ayrıntılar ile değişebilir.

Eğer geriye doğru yapıyor ettik gibi geliyor bana.

Sabitlemek için kolay yolu connect.php (web kök dışında) bir klasör yukarı taşımak ve include('../connect.php') yerine include('connect.php') içinde kullanmaktır. Sadece bunu ve (en azından, connect.php ile ilgili) güvendeyiz.

HTTP_REFERER güvenlik ile ilgisi yoktur. Bu sadece bir Database connection error yerine denetimi başarısız olursa istenen sayfayı almak için ziyaretçi neden olacaktır denetleniyor. O her zaman başarısız olur:

  1. Biri başka bir sitede bir link takip sitenize gelir (Google ve işbirliği de dahil olmak üzere.)
  2. Biri bir tarayıcı yer imi sitenizin tıklayarak geliyor
  3. Biri doğrudan adres çubuğuna adresini yazarak sitenize geliyor

Her nasılsa bu isteyebilirsiniz bir şey olduğuna inanmıyorum.