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

    include dinamico? e sicurezza

    Salve a tutti.
    Avrei una richiesta da niubbo, ma di php ci capisco poco.
    Non so se ho scritto bene il titolo del posto, ma io ho questa perplessità.
    Mi hanno dato un sito fatto così:
    <?php isset($_GET["pagina"]) ? $pagina=$_GET["pagina"] : $pagina="home";?>

    e i relativi link sono così:
    <a href="index.php?pagina=htm/nome_pagina">

    Leggendo di qua e di lò ho il sospetto della sicurezza, che qualcuno possa caricare "COSE SUE" sul server di questo sito.
    E' possibile? Come fare per rimediare a ciò?

    Grazie mille
    Bisogna aver pazienza con gli uomini

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    non è di certo la cosa più sicura del mondo....dovresti fare dei controlli su $_GET["pagina"] per assicurarti che il file esista, che sia un file che risiede in una determinata cartella, .... io ti consiglio di cambiare il modo in cui è strutturato il sito!
    Inoltre, aggiungo, che non tutti i PHP sono settati al supporto di inclusioni con path assoluto (quindi da server esterni) ma in ogni caso non è un modo elegante per costruire i link!

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    quindi potrei fare io una prova per vedere se il server mi permette di caricare dall'esterno.
    Per quanto riguarda i controlli sul GEt dove posso trovare materiale a riguaro? Oppure è possibile un picoclo esempio?

    Grazie milla
    Bisogna aver pazienza con gli uomini

  4. #4
    Per i controlli guarda le funzioni per il filesystem tipo http://it.php.net/function.file-exists e le istruzioni correlate.

    Con PHP è molto semplice fare questo tipo di controlli

  5. #5
    grazie mille.
    vedremo cosa riuscirò a fare.

    Buona giornata a tutti
    Bisogna aver pazienza con gli uomini

  6. #6
    Io invece ti sconsiglio proprio di fare un include diretto.
    Usa dei collegamenti fittizi!!!!!
    Ti porto un esempio.
    Se dalla pagina che usi come modulo di base (index.php nel tuo caso), vuoi fare il redirect a 3 sotto-pagine, prevedi un controllo sui valori passati via GET e includi successivamente grazie ad un controllo SWITCH.

    Metti che la pagina INDEX.PHP possa includere la homepage, la pagina dei contatti e, che ne so, la pagina del chi siamo.

    Definisci di base che il parametro passato via GET possa avere solo 3 valori, per cui home, contatti e chi_siamo e fai quel tipo di controllo.

    Per cui...
    Codice PHP:
    <?php
    isset($_GET["pagina"]) ? $pagina=$_GET["pagina"] : $pagina="";

    if(
    $pagina  != "" && $pagina != "home" && $pagina != "contatti" && $pagina != "chi_siamo") {$pagina ""}

    switch(
    $pagina) {
     case 
    "home":
       include(
    "percorso/file_home.php");
     break;
     case 
    "chi_siamo":
       include(
    "percorso/file_chi_siamo.php");
     break;
     case 
    "contatti":
       include(
    "percorso/file_contatti.php");
     break;

     default:
       include(
    "percorso/file_home.php");
     break;

    }
    ?>
    Con questo metodo, sei sicuro che solamente alcuni parametri passati via GET generano un redirect e/o un include.

    <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.