-
Sicurezza di un file php
Ciao a tutti, è da un po' di tempo che sto sviluppanto un mio cms per la gestione di un blog. Il mio problema è il seguente: per scelta non uso database MySQL ma salvo i dati necessari su file php del tipo:
Codice PHP:
<?php
$dato1="blabla";
$dato2="blablabla";
?>
Questi file sono poi inclusi in altri pagine php che ne sfrutta le informazioni.
la mia domanda è: questi file sono sicuri?
Un utente esterno (chiunque tranne me) anche conoscendone l'url, può risalire alle informazioni oppure no? Se sì qual'è il modo migliore di procedere? immagino che si potrebbe risolvere il sistema con un file htaccess, ma sono poco esperto in materia!
Grazie a tutti!
Buona serata!
-
Se nulla è mostrato a schermo (non c'è echo o print) nulla potrà essere ottenuto da un eventuale curioso.
Per maggior sicurezza, se proprio lo desideri, puoi definire una variabile e fare una condizione nel caso in cui venga richiesto il file.
Esempio: index.php include db.php?
Definisci una variabile dentro index.php
Codice PHP:
$mostra = "si";
include('db.php');
quindi in db.php metterai:
Codice PHP:
if ($mostra !== "si"'){
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: ./404.php");}
$dato1="blabla";
$dato2="blablabla";
Così facendo, chi cercherà di visualizzare db.php, verrà reindirizzato ad un'eventuale pagina di errore :wink:
-
Innanzitutto grazie per la risposta!
Ok la tua prima affermazione mi rincuora parecchio!
Domanda: ciò che hai detto è vero su altervista o è vero in generale? (è un cms, chissà in che server andrà a finire!).
La soluzione è senz'altro ingegnosa, ma se uno fosse in grado di risalire alle variabili di db.php, potrebbe risalire anche a quelle di index.php, sbaglio?
Comunque se siamo sicuri che così va già bene, il problema non si pone! :)
-
Se il server supporta il php, vale in generale (se non lo interpreta e lo passa come testo allora sarebbe un problema).
Anche risalisse a quelle dell'index.php (nel caso in cui le pubblicassi ad esempio) sarebbe comunque impossibile ottenere il contenuto di db.php (insomma, a mio parere, il problema non si pone - almeno, non su quest'aspetto) :wink:
-
Grazie ancora per la risposta!
Premettendo che il problema non si pone, io intendevo che visto che chiunque può eseguire il download del cms (e quindi vedere il contenuto della pagina index.php), magari poi potesse fare una cosa tipo:
Codice PHP:
<?php
$mostra="si"; //variabile scoperta scaricando il cms
include("http://gabriballets.altervista.org/cms/db.php");
echo $password; //sa che questa variabile esiste e ne cerca il valore
Ma se, come dici te, avere php sul server implica il non poter fare inclusioni come quella sopra, allora sono a posto!