Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Controllare se un file è stato incluso o richiamato direttamente da browser

    Ciao a tutti,
    come da titolo: vorrei aggiungere un pò di sicurezza al sito che sto creando, in particolare vorrei evitare che alcuni file che includo dinamicamente possano essere richiamati direttamente da browser, scrivendone la loro relativa url. Vorrei che questi file fossero accessibili SOLO alla pagina che li deve effettivamente includere.
    C'è un modo, giusto?
    Grazie anticipatamente

  2. #2
    Un metodo abbastanza semplice (e indipendente dal web server) è definire un flag a 1 nei file che possono essere inclusi:
    Codice PHP:
    // Inizio di un file includibile
    $includibile true;
    ... 
    Nei file non includibili, fai un semplice controllo sul flag:
    Codice PHP:
    // Inizio di un file non includibile
    $includibile || die('File non richiamabile direttamente');
    ... 
    Ti eviti il parsing dell'URL di request, su cui non faccio molto affidamento.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    154
    Oppure con htaccess in cui scrivi:
    codice:
    Order allow,deny
    Deny from all
    Allow from localhost

  4. #4
    aaah ok, forse ho capito...quindi una roba del genere

    Codice PHP:
    <?php
        
    //FILE INDEX.PHP
        
    $arriviDallaIndex true;
        
        if(isset(
    $_GET['pagina']) && $_GET['pagina'] != "") {
            
    $arrayIncludibili = Array('ciao.php''ciao1.php''ciao2.php');
            
    $paginaDaIncludere $_GET['pagina'] . ".php";
            
            if( 
    in_array($paginaDaIncludere$arrayIncludibili) ) {
                include_once( 
    $paginaDaIncludere );
            }
        }
    ?>
    Codice PHP:
    <?php
        
    // FILE CIAO.PHP - CIAO1.PHP - CIAO2.PHP
        
        
    if( !$arriviDallaIndex ) die("Non puoi accedere a questa pagina");
        else {
            
    // output pagina
        
    }
    ?>
    Bella idea, semplice, non mi era minimamente passato per la testa di fare così
    Grazie raga

  5. #5
    Originariamente inviato da eliJS
    Oppure con htaccess in cui scrivi:
    codice:
    Order allow,deny
    Deny from all
    Allow from localhost
    Aspetta, la tua soluzione l'ho letta dopo...
    Cioè, facendo così rendo disponibile alcune pagine solo per richieste che arrivano dal localhost (e quindi dal sito stesso) giusto?
    E come faccio ad impostare questo "controllo" solo per alcuni file? Devo metterli in una cartella separata e applicare l'htaccess su quella cartella??

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 © 2024 vBulletin Solutions, Inc. All rights reserved.