Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371

    Urgente: problema include

    La index.php di un sito da me realizzato è strutturata come segue

    <?php

    $pagina='inc_middle2.php';
    /*$pag='';*/

    if (isset ($_COOKIE['accesso'])) {
    if (isset($_GET['pag'])) // Il link cliccato ha passato le variabili?
    {
    $pag = 'inc_' . $_GET['pag'] . '.php'; // ..se si`, il box centrale diventa la pagina selezionata
    }
    if (!file_exists ($pag)) // La pagina non esiste?
    {
    $pag = 'error.php'; // ..se si`, il box centrale diventa la pagina di errore
    }

    }


    $stile = 'firefox.css';

    if (strstr ($_SERVER["HTTP_USER_AGENT"], "MSIE 5")) { $stile = 'explo5.css';}
    if (strstr ($_SERVER["HTTP_USER_AGENT"], "MSIE 6")) { $stile = 'explo.css';}


    $tpl = implode("",file("top.htm"));
    $tpl = str_replace("{fogliodistile}", $stile, $tpl);


    /*stuttura del sito*/
    include "topphp.php";
    echo "$tpl";
    include "top2.php";
    include "middlel.php";

    if (isset ($_COOKIE['accesso'])) { include "$pag"; } else { include "$pagina"; }

    include "middler.php";
    include "down.php";

    Lo staff che gestisce il dominio ove gira il webserver sul quale è presente questo sito mi ha contattato dicendo che sono stati vittima di spam e malfunzionamenti al web sever stesso causa cross scripting, ovvero la index.php richiama e include pagine esterne passando variabili via URL.QUlacuno ha passato come variabili i nomi di pagine di siti esterni facendo in modo di caricarli all'interno del mio sito.
    Ora io ho aggiunto un controllo if file_exist per controllare se la pagina caricata è effettivamente presente in locale. Secondo voi è sufficiente questa modifica ad impedire accessi esterni tramite url? Oppure che voi sappiate si riesce ad eludere anche questo controllo. In tal caso infatti dovrei rivedere l'intero sito. Non vorrei però avere problemi con chi gestisce il web server. Tanto per capirci non sono stato io a causare danni. L'ha fatto qualcuno dall'esterno ma sembra che comunque la colpa sia mia perchè ho lasciato una porta aperta (diciamo così)..

    GRAZIE A TUTTI!
    L'incubo peggiore è non poter più sognare...

  2. #2

    Re: Urgente: problema include

    Ora io ho aggiunto un controllo if file_exist per controllare se la pagina caricata è effettivamente presente in locale. Secondo voi è sufficiente questa modifica ad impedire accessi esterni tramite url?
    Si' dovrebbe essere sufficiente, visto che la funzione controlla il file localmente. Ad ogni modo, per avere una sicurezza totale, e se le pagine non sono troppe, ti consiglio un bello switch che limita i possibili casi alle sole pagine che inserisci tu. Alla fine ovviamente come default ci metti la pagina di errore.

    Tanto per capirci non sono stato io a causare danni. L'ha fatto qualcuno dall'esterno ma sembra che comunque la colpa sia mia perchè ho lasciato una porta aperta (diciamo così)..
    Purtroppo la colpa e' tua, perche' hai appunto lasciato una falla aperta che e' stata sfruttata da terze parti. Non credo cmq che abbiano usato il tuo sito per chissa' quali scopi fraudolenti... anche a me era successo qualche anno fa, ma hanno semplicemente aperto una loro pagina tramite funzione di include mal costruita su un sito che avevo fatto, mandato qualche migliaio di email di spam tramite il server di posta del mio dominio, che poi ha bloccato il tutto e mi ha avvertito. Niente di preoccupante.

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Visto che effettivamente file_exists prende in considerazione solo file sin path relativi (quindi in locale rispetto al server su cui viene eseguito), direi che è una buona soluzione.

    Tuttavia io sconsiglio, proprio per questioni di struttura, di usare un metodo del genere per la generazione di contenuti nella stessa pagina. Pero' non sapendo che tipologia di sito sia, magari quella è la soluzione migliore.

    Col check che hai inserito non dovresti più avere problemi di injections indesiderate.


  4. #4
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371
    Grazie a tutti.

    Ho strutturato il sito in questo modo poichè mi chiedono continui aggiornamenti di stile e le pagine sono parecchie, pertanto mi è molto più comodo creare un sito a "blocchi" nel quale solo il contenuto della pagina centrale vari.

    Ancora GRAZIE!!!

    CIAO!
    L'incubo peggiore è non poter più sognare...

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.