Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Sicurezza sull'inclusione file dipendente da GET

    Apro questa discussione a seguito della lettura di queste due

    una

    due

    in particolare nella seconda viene postato il seguente codice

    Codice PHP:
    <?php 
    $valid_actions 
    = array('Dashboard''Forum''Login''Store'); 
    $default_action 'Dashboard'

    $action = isset($_GET['action']) && in_array($_GET['action'], $valid_actions) ? $_GET['action'] : $default_action
    $path dirname(__FILE__) . "/Actions/$action.action.php"
    if (!
    is_readable($path)) { 
      die(
    'Error'); 

    ?>
    allora io parto dal presupposto che in ingresso ho sempre una variabile di tipo get.

    ora nell'esempio riportato si fa uso di un array per controllare se il valore postato è tra quelli ammessi. ma la cosa, non può essere sostituita da un semplice switch?

    in pratica la pagina da visualizzare viene stabilita dallo switch in quanto, non ci sono alternative

    ad esempio

    Codice PHP:
    <?PHP
    switch($variabilePassata)
    {
     case 
    "1":
     
    $pagina ="1.php"
     
    break
    deafult :
    $pagina="home.php"
    }
    ?>
    penso che anche in questo modo, qualsiasi valore un maleintenzionato passi, si è certi di visualizzare solo le pagine desiderate

    che ne pensate?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2

    Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    ora nell'esempio riportato si fa uso di un array per controllare se il valore postato è tra quelli ammessi. ma la cosa, non può essere sostituita da un semplice switch?
    Certo, ma poi se vuoi aggiungere una nuova pagina devi andare a modificare il codice. Nell'esempio riportato invece è sufficiente aggiungere un elemento all'array.

    Originariamente inviato da ciro78
    penso che anche in questo modo, qualsiasi valore un maleintenzionato passi, si è certi di visualizzare solo le pagine desiderate
    Lo stesso vale per l'esempio riportato.

  3. #3
    la differenza tra i due metodi e' solo nello stile di programmazione e non coinvolge la sicurezza.
    tra le due, se devo dire la verita', mi piace di piu' quella che prevede i valori ammessi in un array: la trovo piu' compatta ed elegante, oltre che rispecchiare il concetto di "raccolta di valori consentiti" (mentre lo switch/case suggerisce, come approccio logico, comportamenti diversi per valori diversi)

    questione di opinioni eh

    ciao
    danno

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    Certo, ma poi se vuoi aggiungere una nuova pagina devi andare a modificare il codice. Nell'esempio riportato invece è sufficiente aggiungere un elemento all'array.
    ah ok. l'importante è che il metodo che uso io non vada ad inficiare la sicurezza dell'applicazione a questo punto.

    sinceramente uso switch proprio come elemento riassuntivo. inoltre, il metodo switch mi permette anche di indicare un nome di pagina che sia diverso da quello passato mediante la variabile get.

    in ogni caso grazie per le conferme

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5

    Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    sinceramente uso switch proprio come elemento riassuntivo.
    E un array non è un elemento riassuntivo migliore?

    Originariamente inviato da ciro78
    inoltre, il metodo switch mi permette anche di indicare un nome di pagina che sia diverso da quello passato mediante la variabile get.
    Anche questo può essere ottenuto con un array associativo.

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    E un array non è un elemento riassuntivo migliore?
    diciamo che letteralmente lo è. si scrivono meno righe di codice. ma dal punto di vista ..visivo uno switch lo preferisco

    Anche questo può essere ottenuto con un array associativo.
    così come è scritto il codice non lo si può realizzare. bisogna aggiungere altri elementi
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7

    Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    diciamo che letteralmente lo è. si scrivono meno righe di codice. ma dal punto di vista ..visivo uno switch lo preferisco
    IMHO è una scelta architetturale pessima e per nulla scalabile.

    Originariamente inviato da ciro78
    così come è scritto il codice non lo si può realizzare. bisogna aggiungere altri elementi
    Si, molti altri elementi ...

    Codice PHP:
    <?php
    $valid_actions 
    = array('Dashboard' => 'dashboard.php''Forum' => 'phpbb.php''Login' => 'login.php''Store' => 'ecommerce.php');
    $default_action 'Dashboard';

    $action = isset($_GET['action']) && isset($valid_actions[$_GET['action']]) ? $_GET['action'] : $default_action;
    $path dirname(__FILE__) . '/Actions/' $valid_actions[$action];
    if (!
    is_readable($path)) {
      die(
    'Error');
    }
    ?>

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    IMHO è una scelta architetturale pessima e per nulla scalabile.
    perchè dici che non è scalabile? è estremamente facile togliere o aggiungere elementi.
    bisognerebbe solo fare un paragone in termini di tempi di esecuzionie degli script


    Si, molti altri elementi ...

    Codice PHP:
    <?php
    $valid_actions 
    = array('Dashboard' => 'dashboard.php''Forum' => 'phpbb.php''Login' => 'login.php''Store' => 'ecommerce.php');
    $default_action 'Dashboard';

    $action = isset($_GET['action']) && isset($valid_actions[$_GET['action']]) ? $_GET['action'] : $default_action;
    $path dirname(__FILE__) . '/Actions/' $valid_actions[$action];
    if (!
    is_readable($path)) {
      die(
    'Error');
    }
    ?>
    non ho detto nè molti nè pochi. solo che lo script che inzialmente era, non era sufficiente per lo scopo.di conseguenza occorreva modificarlo con altro codice.


    ciao e buona domenica
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9

    Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    perchè dici che non è scalabile?
    Semplicemente, perchè non lo è. Dover intervenire sulla logica applicativa ogni volta che va aggiunta una nuova pagina lo rende NON scalabile. Tutto questo, ovviamente, senza contare dell'inutile incremento di complessità del codice mano a mano che aumentano le pagine.

    Originariamente inviato da ciro78
    è estremamente facile togliere o aggiungere elementi.
    Senza modificare il codice?

    Originariamente inviato da ciro78
    non ho detto nè molti nè pochi. solo che lo script che inzialmente era, non era sufficiente per lo scopo.di conseguenza occorreva modificarlo con altro codice.
    E secondo te questo si risolverebbe usando uno switch che richiede una modifica dello script OGNI VOLTA che si desidera aggiungere una nuova pagina?

  10. #10
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    Semplicemente, perchè non lo è. Dover intervenire sulla logica applicativa ogni volta che va aggiunta una nuova pagina lo rende NON scalabile. Tutto questo, ovviamente, senza contare dell'inutile incremento di complessità del codice mano a mano che aumentano le pagine.
    non mi pare che si interviene sulla logica dell'applicativo. si tratta semplicemente di aggiungere una opzione così come accade nel caso di un array

    Senza modificare il codice?
    ma aggiungere un casevalore) non mi sembra così mostruosamente diverso da aggiungere ad un array una chiave e un valore

    E secondo te questo si risolverebbe usando uno switch che richiede una modifica dello script OGNI VOLTA che si desidera aggiungere una nuova pagina?
    mi sembra eccessivo definire una modifica dello script in termini di come lo intendi o, perlomeno, da come ne dai impressione.

    si tratta di aggiunegre un case + una assegnazione di variabile

    inoltre al momento il tuo script non permette di diversificare le pagine. mi spiego.
    se voglio utilizzare un determinato javascript o richiedere l'inclusione di altro codice in base al tipo di pagina, a me basta settare una variabile in più nella condizione. tu che fai?

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.