Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Sicurezza e PHP

  1. #1
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36

    Sicurezza e PHP

    Ciao a tutti,
    tramite servizio di statistiche (php-stats) mi sono accorto che ho parecchi accessi moooolto strani al sito internet che curo e siccome non riesco a capire bene né cosa rappresentano né come bloccarli vi descrivo velocemente la situazione sperando in un consiglio.

    Il sito che curo, www.caiorbassano.it possiede una pagina di base skin.php, all'interno della quale vengono caricate le pagine che vengono via via richieste tramite i menù. Per fare ciò non ho adottato i vecchi frames, ovviamente, ma mi sono dedicato al passaggio di valori tramite variabili PHP.

    nel corpo centrale di skin.php viene così caricata la variabile $pageload che rimanda al rispettivo link fisico ove si trova la pagina che sarà in definitiva incorporata in skin.php.

    Ora, gli accessi "strani" che ho rilevato sono di questo tipo:
    http://www.caiorbassano.it/shared/sk...82/index.html?

    Mi devo preoccupare di qualche forma strana di ponte o flood? Come posso ovviarla e bloccarla?

    Grazie.
    Marco

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    sono tentativi di trovare qualche vulnerabilità nei tuoi script e da lì al web server e/o sistema operativo su cui gira tutto.

  3. #3
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36
    Ho provveduto a creare una sorta di "gate" facendo una include ad inizio pagina di skin.php in cui ho inserito un'altra pagina ove creo un ciclo if elseif che va ad analizzare tutte le parole chiave $pageload che ho utilizzato, compresa la variabile NULL.

    Ho terminato lo script con un
    Codice PHP:
    ...
    } else { 
    echo 
    "DENIED!"
    header("location: link al commissariatodips");
    exit; 
    }; 
    Secondo voi può essere sufficiente a scoraggiare ulteriori tentativi o è un palliativo ed esistono tecniche più raffinate?


    Grazie, Marco

  4. #4
    Piuttosto che una serie infinita di if/elseif, io ti consiglierei di usare uno switch, sempre non prima di avere effettuato dei controlli sulle variabili passate via GET... variabili di cui a priori sai che ti devi aspettare solo alcuni valori.

    Per capirci.
    Codice PHP:
    // recuperi la variabile dalla URL
    // se non c'è imposti il valore a stirnga vuota
    (!isset($_GET['pageload'])) ? $pageload "" $pageload $_GET['pageload'];

    /* 
    Se sai che pageload può assumere solo tre parametri
    effettui un controllo su quelli che conosci per certo
    se non è nessuno dei tre valori, allora imposti la variabile
    ad un valore che tornerà utile nello SWITCH
    */

    if ($pageload != "" AND $pageload !="valore1" AND $pageload !="valore2") {
       
    $pageload "hack";
    }

    switch (
    $pageload) {
       case  
    "valore1":
         include (
    "caso_valore1.php");
       break;
       case  
    "valore2":
         include (
    "caso_valore2.php");
       break;
       case  
    "hack":
         include (
    "alert_hacking.php");
       break;
       default:
         include (
    "caso_default.php");
       break;

    Spero di essermi spiegato meglio con il codice.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    inoltre non puoi finire con:

    echo "DENIED!";
    header("location: link al commissariatodips");

    perchè l'header non può essere eseguito se lo script ha mandato un output...e comunque non avrebbe nemmeno senso perchè un echo con immediato redirect non verrebbe letto da nessuno...

  6. #6
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36
    @alcio74:
    Ok per il controllo dei $_GET, stupidamente non ci avevo pensato
    mi sfugge tuttavia il funzionamento della funzione switch... comunque l'occasione mi serve per impararla andandomi a documentare bene... per ora applico il codice che mi hai gentilmente postato... diciamo che i $pageload che considero sono in tutto una decina.

    @freeman74:
    concordo per l'echo... tuttavia il redirect al sito www.commissariatodips.it funziona eccome ed è più eloquente del mio DENIED!


    Grazie ancora molte.

    Marco

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    a me hanno sempre dato errore... :master:

  8. #8
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36
    Mah, ho modificato la pagina mettendo questo codice:

    Codice PHP:
    (!isset($_REQUEST['pageload'])) ? $pageload "" $pageload $_REQUEST['pageload']; 
    if (
    $pageload != "" AND $pageload !="valore1" AND $pageload !="valore2" AND $pageload !="valore3") {
    header("location: il link"); 
    exit; 

    Provare per credere:
    http://www.caiorbassano.it/shared/sk...luso nel ciclo


    Marco

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    scusa marcoK che dovrei vedere?

  10. #10
    Non ho controllato il link, ma ti dico subito: proprio per una questione di sicurezza, il recupero delle variabili con $_REQUEST è sempre sconsigliato!

    Per lo switch, ti posso dire che può essere usato come una sorta di IF/ELSE/ELSEIF complesso e molto più leggibile.
    Studiatelo bene perché io lo trovo utilissimo.

    Per quello che riguarda il redirect, io prima di farlo verso un sito esterno aspetterei un attimo.
    Cercherei piuttosto di creare un messaggio apposito per i miei utenti per avvertirli che qualcosa nelle loro azioni non è andato a buon fine.... e non è detto che debba per forza essere un tentiativo di hacking.
    Per esempio, un utente un po' esperto, per navigare una galleria fotografica, piuttosto che mettersi a premere il bottone "AVANTI", potrebbe incrementarare il numeretto della pagina nella URL.
    Metti che inserisca un numero che non esiste, oppure erroneamente una lettera, verrebbe rediretto ad un sito esterno senza neanche saperlo.
    Il tuo sito potrebbe perdere di usabilità e quindi di feeling per i tuoi utenti.
    Quindi, vaglia bene tutte le ipotesi!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.