Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

PHP: include con variabile da URL

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 4:19 pm

Salve a tutti,
mi sto cimentando con un po' di PHP, ma ho un problema e mi servirebbe, per favore, una mano.
Tutto chiaro su come funziona l'include
Codice: Seleziona tutto
<?php
include("fissi/sidebar.inc");
?>

ma sorge un problema se tento di fare cose un po' più complesse.
Io avrei bisogno che il file incluso dipenda dall'url, e quindi, da quel che ho capito, dovrei usare la variabile GET. Ho applicato quanto sono riuscito a capire scrivendo in una pagina altrimenti funzionante
Codice: Seleziona tutto
<div id="content">
<?php
$pg=$_GET['pg'];
?>
<?php
include("contenuti/.$_GET['pg'].inc");
?>
</div>

Risultato? Pagina bianca ed un report di errore
error_log ha scritto:[19-Mar-2010 00:04:58] PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/perfared/public_html/sito_dona/pagina.php on line 25

dove la linea 25 è proprio
Codice: Seleziona tutto
include("contenuti/.$_GET['pg'].inc");

Dove sbaglio?
Grazie a tutti
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda ste_95 » ven mar 19, 2010 4:33 pm

Attento: per concatenare stringhe e variabili devi ogni volta chiudere il blocco di stringa con i doppi apici e quindi usare il punto per legarlo alla variabile che desideri. Quindi, in pratica:

Codice: Seleziona tutto
include("contenuti/".$_GET['pg']."inc");
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 5:04 pm

Grazie! Ora almeno si vede la pagina! Peccato che anziché includere il file ciccio.inc, dove ciccio è il valore prelevato dalla variabile GET, mi includa il file ciccioinc [acc2] . Non è che nella tua sapienza di PHP sapresti indicarmi come risolvere questo piccolo inconveniente?
Grazie
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe


Re: PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 5:25 pm

Ok, questa era banale, mi sono risposto da solo
Codice: Seleziona tutto
include("contenuti/".$_GET['pg'].".inc");

Altro problema: devo fare in modo che se ".$_GET['pg'].".inc non esiste il visitatore venga rimandato ad una pagina a mia scelta, come posso fare?
'n altro problema ancora: il sito così è sicuro o corro il rischio di attacchi da parte di malintenzionati/burloni? Non che ci sia la possibilità che questo sito venga attaccato, ma per fare un lavoro fatto bene [;)] .
Grazie ancora
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda ste_95 » ven mar 19, 2010 6:12 pm

Fred ha scritto:Altro problema: devo fare in modo che se ".$_GET['pg'].".inc non esiste il visitatore venga rimandato ad una pagina a mia scelta, come posso fare?

Codice: Seleziona tutto
if(!isset($_GET['pg']) OR $_GET['pg'] == '') {
echo "<script type='text/javascript'> window.location.replace('LATUAPAGINA'); </script>";


Fred ha scritto:'n altro problema ancora: il sito così è sicuro o corro il rischio di attacchi da parte di malintenzionati/burloni? Non che ci sia la possibilità che questo sito venga attaccato, ma per fare un lavoro fatto bene [;)] .
Grazie ancora

Non dovrebbe, dato che includi solo pagine nel tuo dominio. A ogni modo, qualche guida di base per PHP me la leggerei [;)]
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 6:40 pm

Letta più di una, ma quella variabile mi aveva messo in crisi [:D]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 7:17 pm

Correzione al volo per i posteri: nell'ultimo script manca la chiusura della parentesi graffa.
Grazie a tutti per l'aiuto che mi avete dato.
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda Fred » ven mar 19, 2010 8:05 pm

Ste, non uccidermi, ma il redrirect funziona solo se la variabile non assume valore, se ne assume uno sbagliato non avviene il redirect [acc2]
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda ste_95 » ven mar 19, 2010 8:41 pm

Fred ha scritto:Ste, non uccidermi, ma il redrirect funziona solo se la variabile non assume valore, se ne assume uno sbagliato non avviene il redirect

Non avevo allora capito bene la tua intenzione. In questo caso, devi controllare che il file che ti viene richiesto sia presente nella cartella che usi. Per farlo, devi utilizzare la funziona is_file.
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda Fred » sab mar 20, 2010 3:29 pm

Ok, grazie della dritta!
Per i posteri: ecco come ho risolto:
Codice: Seleziona tutto
<?php
// Prelevo la variabile
$pg=$_GET['pg'];
// Verifico se la variabile prelevata non è stata settata, è stata settata vuota o se il file a cui fa riferimento non esiste
if(!isset($_GET['pg']) OR $_GET['pg'] == '' OR !is_file("contenuti/".$_GET['pg'].".inc")) {
// Ed in questi casi rimando ad una pagina di errore
echo "<script type='text/javascript'> window.location.replace('ERRORI/404.html'); </script>";
}
// Altrimenti
else {
// Includo il file richiesto
include("contenuti/".$_GET['pg'].".inc");
}
?>

Grazie a Ste per l'aiuto fornitomi!
[ciao]
Asus M3N78SE;AMD Athlon 64X2 5200+@5400;2 GB DDR2;NVIDIA GeForce 9500GT;Windows 7 Pro 64bit;
AcerASPIRE5230;Windows 7 Pro 64bit
Skype: nellopc90
Avatar utente
Fred
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3623
Iscritto il: mer apr 27, 2005 4:13 pm
Località: Urbe

Re: PHP: include con variabile da URL

Messaggioda ste_95 » sab mar 20, 2010 4:47 pm

[ciao]
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda dararag » gio apr 01, 2010 11:25 am

Mi spiace ripescare il post, ma è importante che ti ricordi di non inserire upload di immagini, o almeno di cancellare i loro dati exif prima di farlo, perché inserendo del codice php nei commenti exif dell'immagine e poi includendola in una pagina web, sfruttando quella vulnerabilità aperta dal tuo codice, si può fare praticamente qualunque cosa
Maledette aziende produttrici, l'unico telefilm interessante degli ultimi tempi l'hanno interrotto alla decima puntata... e chi voleva sapere la fine?
Avatar utente
dararag
Silver Member
Silver Member
 
Messaggi: 1116
Iscritto il: mar gen 22, 2008 8:57 pm
Località: Casoria

Re: PHP: include con variabile da URL

Messaggioda ste_95 » gio apr 01, 2010 6:31 pm

dararag ha scritto:Mi spiace ripescare il post, ma è importante che ti ricordi di non inserire upload di immagini, o almeno di cancellare i loro dati exif prima di farlo, perché inserendo del codice php nei commenti exif dell'immagine e poi includendola in una pagina web, sfruttando quella vulnerabilità aperta dal tuo codice, si può fare praticamente qualunque cosa

Esiste qualcosa che lo provi, come un Proof of Concept o un exploit, qualche riga di codice o altro, oppure sono supposizioni? perché mi interessa... [:)]
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda dararag » gio apr 01, 2010 9:42 pm

io lo lessi su un vecchio numero di hacker journal, però basta fare un esperimento e vedrai che funziona, comunque, provo a cercare qualcosa di più ufficiale
EDIT:ecco una pagina di un blog dove se ne parla, inoltre, sempre nella pagina, viene linkato un documento in inglese che, parlando di upload sicuro di file, parla anche di questa tecnica: http://www.matteocarli.com/2007/06/nascondere-codice-php-allinterno-di-immagini.html
Maledette aziende produttrici, l'unico telefilm interessante degli ultimi tempi l'hanno interrotto alla decima puntata... e chi voleva sapere la fine?
Avatar utente
dararag
Silver Member
Silver Member
 
Messaggi: 1116
Iscritto il: mar gen 22, 2008 8:57 pm
Località: Casoria

Re: PHP: include con variabile da URL

Messaggioda ste_95 » sab apr 03, 2010 5:16 pm

dararag ha scritto:io lo lessi su un vecchio numero di hacker journal, però basta fare un esperimento e vedrai che funziona, comunque, provo a cercare qualcosa di più ufficiale
EDIT:ecco una pagina di un blog dove se ne parla, inoltre, sempre nella pagina, viene linkato un documento in inglese che, parlando di upload sicuro di file, parla anche di questa tecnica: http://www.matteocarli.com/2007/06/nascondere-codice-php-allinterno-di-immagini.html

Mi sembra una cosa così complessa dal punto di vista del rischio che non valga la pena di perderci del tempo dietro... [std]
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Re: PHP: include con variabile da URL

Messaggioda dararag » dom apr 04, 2010 10:05 am

personalmente non ci vedo nulla di difficile, anzi, basta caricare tramite un sistema di upload del sito o tramite uno dei tanti buchi di sicurezza che ci potrebbero essere un'immagine a cui hai prima cancellato tutti i dati exif e la firma del rumore, ed in cui hai poi inserito il codice php, ed infine: pagina.php?include=miaimmagine.jpg(o anche .php)
Maledette aziende produttrici, l'unico telefilm interessante degli ultimi tempi l'hanno interrotto alla decima puntata... e chi voleva sapere la fine?
Avatar utente
dararag
Silver Member
Silver Member
 
Messaggi: 1116
Iscritto il: mar gen 22, 2008 8:57 pm
Località: Casoria


Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti

cron
Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising