Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 16 a 30 su 30
  1. #16
    Originariamente inviato da Fabio Heller
    Ciao,

    i file di inclusione non devo essere raggiungibili direttamente via browser.
    Inseriscili in una directory esterna alla documentRoot o protetta (attraverso i settaggi di apache) dall'accesso diretto http.

    Altra soluzione, mettere nei file da includere

    if(__FILE__ == $_SERVER['SCRIPT_FILENAME'])
    {
    exit('Vietato accedere direttamente al file') ;
    }
    Siccome insisti probabilmente sbaglio io.... allora ti richiedo informazioni.

    Io non ho accesso ad aree esterne alla mia document root, perche' sto usando altervista e non il mio server di casa.

    Come posso mettere i file al di fuori della document root su altervista?
    -_-"

  2. #17
    __FILE__

    ti rende il percorso assoluto di dove e' allocato il file in cui hai messo la stringa.

    http://it2.php.net/manual/it/languag...predefined.php


    $_SERVER['SCRIPT_FILENAME'])

    Ti rende il percorso assoluto e nome del file che sta eseguendo lo script

    http://it2.php.net/reserved.variables

    Quindi se __FILE__ e' uguale a $_SERVER['SCRIPT_FILENAME'])

    significa che la pagina e' stata chiamata direttamente nell'url e non da un'altro file e quindi ti butta fuori. Se e' diverso significa che quella pagina e' richiamata da altro file che include la pagina e la esegue.

    Unica eccezione sarebbe quella in cui lo script ti giri su server windows: __FILE__ ti renderebbe il percorso con backslashes

    c:\path\file

    invece di /path/file e l'uguaglianza andrebbe a farsi benedire.

    Puoi rimediare con:
    codice:
    $str = str_replace('\\\', '/', __FILE__);
    
    if($str == $_SERVER['SCRIPT_FILENAME']) {

    @scusa Fabio se ho tentato di interpretarti....



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #18
    Allora perdonate la mia ignoranza in materia di inclusioni

    Le ho sempre usate cosi' alla cazzo.

    Grazie a questa cosa, se funziona, posso evitare tutti i controlli nelle pagine php che includo...

    Il che tral'altro significa anche meno query al database (su altervista sono contate).
    -_-"

  4. #19
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    proprio quello che cercavo: è geniale... dovreste provarla.


    è non è nemmeno una yaris
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #20
    Grazie, niente male sta cosa.
    -_-"

  6. #21
    Alla fine ho usato questo:
    if ((__FILE__==$_SERVER['SCRIPT_FILENAME']) OR ($_SERVER['SCRIPT_FILENAME']!=$Index_Path) ) die ("Pussa via...!");

    All'inizio di tutte le pagine che includo per "montare" il sito.

    E pare funzionare alla grande.

    Ho anche 3 pagine che sono dei popup... e' possibile controllare anziche' "l'includer" il "parent" che apre il popup?

    C'e' una soluzione per mettere al sicuro anche queste 3 finestre di popup, oppure devo metterle al sicuro individualmente con delle query al database (login, nome, ecc).

    In alternativa... forse potrei farli dei finti popup... cioe' metterle all'interno della pagina principale e "mostrarle" in delle finestrelle aperte, per esempio, con javascript.

    Mai fatto ma magari posso provare... avete delle idee?
    -_-"

  7. #22
    Sì ha ragione Piero, dimenticavo che in WIN __FILE__
    restituisce un percorso con i backslash

    X l'ultima domanda di Nokao

    ti preoccupi un po' troppo e cmunque è assurdo fare dele query al db per controllare un'inclusione o un pop-up.

    Non puoi verificare il parent con PHP, visto che il rapporto di parentela tra finestre è tale solo per il browser (javascript).

    Potresti controllare il referrer ($_SERVER['HTTP_REFERER']) se non apri la finestra con javascript.
    Potresti inizializzare una variabile di sessione, con il nome della pagina che apre e verificare nella pagina aperta che questa esista e sia quella giusta...ma mi sembrano soluzioni un po' paranoiche

    Più semplicemente, nelle pagine che non vuoi siano raggiunte isolatamente, verifica di utilizzare solo le variabili che realmente ti servono e che queste abbiano un valore previsto.
    per favore NIENTE PVT TECNICI da sconosciuti

  8. #23
    Originariamente inviato da Fabio Heller
    ti preoccupi un po' troppo e cmunque è assurdo fare dele query al db per controllare un'inclusione o un pop-up.
    Dipende da cosa contengono....

    Se fai un sito in cui vuoi proteggere dei dati, e poi nei file (popup e inclusioni) che li estraggono dal database, si puo' accedere senza login....

    ... allora hai fatto un sito non sicuro
    -_-"

  9. #24
    Originariamente inviato da Nokao
    Dipende da cosa contengono....

    Se fai un sito in cui vuoi proteggere dei dati, e poi nei file (popup e inclusioni) che li estraggono dal database, si puo' accedere senza login....

    ... allora hai fatto un sito non sicuro
    Appoggio il paranoia....

    Se i dati sono cosi' preziosi ed i dubbi tanti, manda i dati per fax.

    Ma che razza di script hai fatto se puoi accedere al db senza login? Almeno la prima volta per identificarsi dovra' accedere al db senza essere autenticato... o no? e poi basta controllare lo user.

    L'indicazione del controllo cosi' banale ed efficente che ti e' stata data e spiegata, serve ad impedire l'accesso diretto da URL al file senza scomodare htaccess o altre cose. Ovvia la precauzione, dentro ci saranno i tuoi dati per il collegamento al server ed altre cose. I dati per accedere al db di lavoro NON sono scritti in alcun file, ma verranno digitati dallo user. Se lo user si abbona per scaricare un porno o leggere un giornale e poi passa username e pwd ad altre 1000 persone che sono in societa' ... altre 1000 persone leggeranno il giornale ecc... tu puoi solo controllare che se e' loggato uno non ne lasci loggare altri con lo stesso username e pwd.

    that's all


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #25
    Originariamente inviato da piero.mac
    Ma che razza di script hai fatto se puoi accedere al db senza login? Almeno la prima volta per identificarsi dovra' accedere al db senza essere autenticato... o no? e poi basta controllare lo user.
    Ho fatto uno script come tutti gli script di questo mondo.

    Ma se INCLUDO le pagine che estraggono, per esempio la lista degli utenti del database.

    E voglio che questa lista sia privata...

    QUEL file .php va protetto, altrimenti uno digitando il link del file .php chiamato "lista.php" Accede alla lista utenti e la vede, anche se non ha fatto alcun login.

    Infatti tutti i controlli li metto nell'index.php che include le varie pagine.

    Se non ti piace a me non me ne frega proprio niente

    Deve piacere a me.

    Per rendere un portale del genere sicuro avrei dovuto controllare il login ad ogni pagina che includevo, invece cosi' ho delegato tutto all'"index.php".

    Su altervista posso fare 1000 query all'ora quindi meno volte controllo il login meglio e'.
    -_-"

  11. #26
    Ma da quando tu apri una pagina e lei ti spara ipso facto tutti i record.... e' da manicomio.

    E' questo che a me non quaglia. Poi fai come ti pare... e' giusto e ovvio.


    bye..


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  12. #27
    Originariamente inviato da Nokao

    Su altervista posso fare 1000 query all'ora quindi meno volte controllo il login meglio e'.
    TU gliene fai fare una sola e poi inserisci il risultato in sessione .....

  13. #28
    Originariamente inviato da stefano3804
    TU gliene fai fare una sola e poi inserisci il risultato in sessione .....
    La sezione login e registrazione non l'ho fatta io...
    -_-"

  14. #29
    Originariamente inviato da Nokao


    Se non ti piace a me non me ne frega proprio niente

    Deve piacere a me.

    Qui ti stiamo dando dei consigli, mi pare sensati e dettati da quel po' di esperienza che abbiamo (e che mi sembra a te manchi).

    Il login si fa una volta, si mette il fatto che l'utente è loggato in sessione e poi si verifica la variaible di sessione nelle varia pagine. Non ci sono altri sistemi decenti.

    Fai una ricerca in Google e in freephp con "area riservata PHP" e simili.

    Poi sei libero di fare come vuoi, ovviamente
    per favore NIENTE PVT TECNICI da sconosciuti

  15. #30


    Io ho integrato phpBB (con il suo login in sessione) con un sito che sto facendo, e ho aggiunto delle funzionalita'.

    Ad esempio ho aggiunto una colonna alla tabella degli user chiamata "Potere", cosi' da poter permettere a diversi utenti di accedere a diverse pagine.

    E' proprio per quest'ultima funzionalita' che devo fare le query, e per mettere questa variabile nella sessione dovrei modificare il codice di phpBB.

    Siccome voglio evitare di farlo, ho semplicemente fatto una funzioncina che estrae con una query il potere di un utente (dato l'id utente che estraggo dalla sessione).

    Chiaro adesso?

    Per i vostri consigli, vi ringrazio molto.
    Specie per quelli di Fabio Heller grazie ai quali ho messo in sicurezza le pagine che fanno le query di estrazione dal database.
    -_-"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.