Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Include e Sicurezza

  1. #1
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314

    Include e Sicurezza

    Salve,

    Io utilizzavo il seguente codice per caricare pagine php in DIV

    Codice PHP:
    <div id="menuo">
                [*][
    url="index.php?menu=chisiamo"]Chi Siamo[/url][*][url="index.php?menu=dovesiamo"]Dove Siamo[/url][*][url="index.php?menu=staff"]Lo Staff[/url][*][url="index.php?menu=contatti"]Contatti[/url]
                </
    div>
        </
    div>
        <
    div id="colsx">
            <
    div id="menuv">
                <
    ul>[*][url="index.php"]Home[/url][*][url="index.php?menu=scuola"]La Scuola[/url][*][url="index.php?menu=menu"]I Menu[/url][*][url="index.php?menu=gallery"]Gallery[/url][*][url="index.php?menu=partners"]Partners[/url][*][url="index.php?menu=onweb"]On Web[/url]
                
                
            </
    div
    Codice PHP:
    <div id="coldx">
            <div id="content" name="content">
        
                <?php
                    
    switch (@$_GET[menu])
                    {
                        case 
    'chisiamo': echo "About Us";
                        break;
                        case 
    'dovesiamo': include('public/ita/dovesiamo.php');
                        break;
                      case 
    'staff': include('public/ita/staff.php');
                        break;
                        case 
    'contatti': include('public/ita/contatti.php');
                        break;
                        case 
    'scuola': include('public/ita/scuola.php');
                        break;
                        case 
    'menu':
                          switch(@
    $_GET[tipo])
                                {
                                case 
    'crea': include('public/ita/creamenu.php');
                                break;
                                case 
    'fissi': include('public/ita/menufissi.php');
                                break;
                            default: include(
    'public/ita/menu.php');
                                }
                                
                        break;
                        case 
    'gallery': include('public/ita/gallery.php');
                        break;
                        case 
    'partners': include('public/ita/partners.php');
                        break;
                        case 
    'onweb': include('public/ita/onweb.php');
                        break;
                        case 
    '404': include('404.php');
                        break;
                        default: include(
    'public/ita/home.php');
                    }
                  
                
    ?>
            </div>
    In più in alcune delle pagine ho dei form che vorrei dessero il risultato nel div stesso.
    Ma mi hanno detto che non è sicuro e che così "è facilmente buttabile giù il sito".

    Qualcuno sa indicarmi una possibile soluzione al problema

    Grazie Daniele

  2. #2
    Ti hanno detto male, hai usato un approccio a white list che non da' problemi di sicurezza.

  3. #3
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314
    Sono un pò ignorante in materia..

    Mi puoi spiegare brevemente che cosa vuol dire white list ??


    Grazie e Buona Domenica Daniele

  4. #4
    White list significa che tu hai una lista scritta da te di file validi da includere, non usi direttamente il valore passato tramite get come in

    include($_GET['page']);

    che E' un problema di sicurezza.

  5. #5
    L'importante è che non dia all'utente malintenzionato la possibilità di includerti una pagina che non sia nella lista da te scelta.
    Essendo un caseselect/switch con condizione 'default', e essendo ogni pagina corrispondente ad una stringa identificativa (e non a un nome file), uno al massimo potrà selezionare o una delle pagine da te scelte, oppure finire nella condizione di default.

    Uso lo stesso approccio e mi trovo molto bene.
    Puoi farti anche una lista delle pagina come record di una tabella e gestirtele ancora meglio.

    E' molto versatile e sicuro come metodo

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.