MRW.it Forum
  • Home
  • Forum
  • Fare Web
  • PHP

Includere File da altro server

  • Creatore Discussione Creatore Discussione GoshMaledetto
  • Data di inizio Data di inizio 15 Gen 2013
GoshMaledetto

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 15 Gen 2013
  • #1
Ciao ragazzi volevo creare un file con delle funzioni php che utilizzo spesso esempio validazione mail visualizzazione data ecc. questo file risiederà sul server del mio sito ma ovviamente vorrei poterlo utilizzare anche sui siti dei miei clienti in modo che se devo modificare qualcosa in automatico mi modifica tutti i siti che gestisco. quale funzione php devo utilizzare per includerlo? basta un
PHP:
include "http://www.mio_sito.com/file.php"
o devo usare qualche altra funzione?
 
Ad
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 15 Gen 2013
  • #2
La soluzione più veloce è quella di ricavare il codice remoto e di eseguirlo direttamente dove ti serve, anche se è sempre meglio utilizzare una path locale, perché nel caso che il tuo sito non andasse o che il file venga rimosso non andranno anche i progetti dei tuoi clienti

Esempio
PHP:
$php = file_get_contents('http://sito.com/file.txt');

eval($php);

Prova::ciao();

file.txt
Codice:
class Prova{

    public static function ciao(){
         echo 'Funziona lol';
     }

}
 
alessandro1997

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 15 Gen 2013
  • #3
Non è assolutamente una soluzione accettabile. Se vuoi distribuire e usare delle tue librerie mettile sotto controllo di versione (leggi questo manuale), crea un account su GitHub e aggiungile ai tuoi progetti come sottomoduli.
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 15 Gen 2013
  • #4
momento momento momento xD mi devo leggere il manuale perche sto git non lo conosco e non so che dire grazie delle info adesso provo e vi dico
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 15 Gen 2013
  • #5
alessandro1997 ha scritto:
Non è assolutamente una soluzione accettabile. Se vuoi distribuire e usare delle tue librerie mettile sotto controllo di versione (leggi questo manuale), crea un account su GitHub e aggiungile ai tuoi progetti come sottomoduli.
Clicca per allargare...

scusa alessandro ma non ho ben capito a cosa mi puo servire sto git. ho letto delle guide ( in italiano ) ma non sono bene riuscito a capire i vantaggi. Vero condivido e posso confrontarmi con programmatori di tutto il mondo,posso recuperare vecchie versioni ma non ho capito come puo aiutarmi questa cosa...poi sicuro mi sono perso qualcosa
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 15 Gen 2013
  • #6
Git è un sistema di controllo di versione e con la tua domanda non c'entra granché. Ma GitHub è un sito Web dove puoi caricare tutti i tuoi progetti Git (comprese dunque le librerie che userai nei siti), per poterli poi recuperare da qualunque posizione. Potrai includere le librerie nei siti dei tuoi clienti e poi, quando le aggiornerai, basterà scaricare la nuova versione con un comando. Git farà tutto automaticamente.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 15 Gen 2013
  • #7
Propongo un'altra soluzione possibile (senza complicarsi la vita con documentazioni esterne ernacchi)

Abilitando nella configurazione allow_url_include è possibile fare un piccolo sistema di gestione remota
(ti consiglio di tenerlo sempre disabilitato se non richiami pagine inerenti ai tuoi siti)

Esempio
PHP:
if(include('http://sito.com/getFile.php?project=sito1&file=file.php&auth=mypassword'))
    Prova::ciao();

getFile.php remoto
PHP:
define('PASSWORD','mypassword');
define('PROJECT_DIR','Projects');

if(!empty($_GET['auth']) && !empty($_GET['file']) && !empty($_GET['project'])){
    $path = PROJECT_DIR.'/'.$_GET['project'].'/'.$_GET['file'];
            if($_GET['auth']==PASSWORD && file_exists($path))
                echo file_get_contents($path);
}

Projects/sito1/file.php
PHP:
class Prova{

      public static function ciao(){
          echo 'Funziona lol';
      }
}

(questa è una base, ovviamente migliorabile aggiungendo più controlli e a seconda delle tue esigenze)
 
Ultima modifica: 15 Gen 2013

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 15 Gen 2013
  • #8
ooook grazie ragazzi se avroulteriori dubbi mi farò sentire
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 15 Gen 2013
  • #9
Includere un file da remoto significa che:
  • l'esecuzione dell'applicazione è notevolmente rallentata, perché ogni volta lo script deve connettersi e scaricare i dati;
  • un utente malintenzionato che riesce ad accedere al server ospitante il file potrebbe modificarlo per far eseguire codice arbitrariamente;
  • un utente malintenzionato potrebbe scaricare il file sfruttando una qualche falla nel tuo sistema, ottenendo così informazioni sulla tua infrastruttura;
  • un utente malintenzionato potrebbe eseguire codice arbitrario tramite RFI;
Questa soluzione non è mai stata adottata perché, evidentemente, ci sono dei validi motivi.

Guarda anche qui:
  • http://stackoverflow.com/questions/1158348/including-a-remote-file-in-php
  • http://stackoverflow.com/questions/8744156/including-a-remote-php-file-as-a-resource

Se ricordo bene a partire da PHP 5.2 la direttiva allow_url_include è disabilitata di default proprio per ragioni di sicurezza.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 15 Gen 2013
  • #10
Infatti non è uno dei migliori ma semplicemente una possibile soluzione per progetti privati

l'esecuzione dell'applicazione è notevolmente rallentata, perché ogni volta lo script deve connettersi e scaricare i dati;
Clicca per allargare...
Dipende da quanto è esteso l'output ricavato e come viene elaborato

un utente malintenzionato che riesce ad accedere al server ospitante il file potrebbe modificarlo per far eseguire codice arbitrariamente;
Clicca per allargare...
Questo dipende dai controlli che vengono effettuati e da altri fattori di vulnerabilità che permettono di accederci

un utente malintenzionato potrebbe scaricare il file sfruttando una qualche falla nel tuo sistema, ottenendo così informazioni sulla tua infrastruttura
Clicca per allargare...
Idem per questo

un utente malintenzionato potrebbe eseguire codice arbitrario tramite RFI;
Clicca per allargare...
E anche per questo

Anche una semplice query puo far saltare l'intero sito se non è sicura, ma non per questo non si puo utilizzare un database.

Basta fare molti controlli e utilizzarlo solamente dove si è sicuri sennò ovviamente è meglio tenerlo disabilitato
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 15 Gen 2013
  • #11
ehm mi state confondendo O_O
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 15 Gen 2013
  • #12
Nefyt ha scritto:
Dipende da quanto è esteso l'output ricavato e come viene elaborato
Clicca per allargare...
In parte, e in parte dalla latenza della connessione.

Nefyt ha scritto:
Questo dipende dai controlli che vengono effettuati e da altri fattori di vulnerabilità che permettono di accederci
Clicca per allargare...
Fattori del tutto imprevedibili: il PC di uno sviluppatore infetto da spyware o chissà che altro, e improvvisamente tutti i siti dei clienti smettono di funzionare o, peggio ancora, fungono da veicolo per la distribuzione di software dannoso. Non è un evento per niente raro.

Qualche altro articolo che scoraggia questa tecnica:
  • http://phpsec.org/projects/phpsecinfo/tests/allow_url_include.html
  • http://blog.php-security.org/archives/45-PHP-5.2.0-and-allow_url_include.html
  • http://wiki.dreamhost.com/Allow_url_include

L'ultimo articolo porta alla luce anche un altro problema che non avevo individuato: se per qualche motivo il tuo script non dovesse riuscire a raggiungere il server ospitante il file, smetterà di funzionare.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 15 Gen 2013
  • #13
alessandro1997 ha scritto:
In parte, e in parte dalla latenza della connessione.


Fattori del tutto imprevedibili: il PC di uno sviluppatore infetto da spyware o chissà che altro, e improvvisamente tutti i siti dei clienti smettono di funzionare o, peggio ancora, fungono da veicolo per la distribuzione di software dannoso. Non è un evento per niente raro.

Qualche altro articolo che scoraggia questa tecnica:
  • http://phpsec.org/projects/phpsecinfo/tests/allow_url_include.html
  • http://blog.php-security.org/archives/45-PHP-5.2.0-and-allow_url_include.html
  • http://wiki.dreamhost.com/Allow_url_include

L'ultimo articolo porta alla luce anche un altro problema che non avevo individuato: se per qualche motivo il tuo script non dovesse riuscire a raggiungere il server ospitante il file, smetterà di funzionare.
Clicca per allargare...
Ripeto, non è delle migliori, ma è possibile fare anche cosi per piccoli progetti con siti sicuri.
Gli spyware o altri software malevoli simili ci sono se l'utente è un utonto, sennò è facilmente evitabile.

Comunque se avesse solo lati negativi sarebbe già stata tolta, io ho solo fatto vedere che c'è anche quella possibilità.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 15 Gen 2013
  • #14
Purtroppo la presenza di lati negativi non è qualcosa da tenere in considerazione nell'ecosistema PHP. Ci sono state diverse feature che presentavano solo lati negativi (register_globals e magic_quotes_gpc solo per dirne alcune) e non sono state rimosse per lungo tempo. Nello specifico nessuna delle due che ho citato è stata ancora tolta (register_globals è stata rimossa nella 5.4 che ancora non è usata da nessuno).
 
Ultima modifica: 15 Gen 2013
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 15 Gen 2013
  • #15
alessandro1997 ha scritto:
Purtroppo la presenza di lati negativi non è qualcosa da tenere in considerazione nell'ecosistema PHP. Ci sono state diverse feature che presentavano solo lati negativi (register_globals e magic_quotes_gpc solo per dirne alcune) e non sono state rimosse per lungo tempo. Nello specifico nessuna delle due che ho citato sono ancora state tolte.
Clicca per allargare...
Sono state tolte dalla 5.4 entrambe mi pare, inoltre quelle appartengono alla vecchia generazione(procedurale e only mysql).

Comunque per quanto sia criticata (allow_url_include), non la trovo cosi pericolosa, forse è l'abitudine di molti a non fare controlli ad averla resa tale, d'altronde non sarebbe ancora cosi diffusa l'sql injection se ciò che ho detto non fosse vero.
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
  • 16 Gen 2013
  • #16
scusate gladiatori quindi io che faccio?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 16 Gen 2013
  • #17
Se decidi di usare allow_url_include prendi atto di adottare una tecnica mai vista prima in nessuna applicazione PHP seria.
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

P
Includere file php in altro file php, evitando l'html del primo...
  • PHPMan
  • 4 Feb 2015
  • PHP
Risposte
0
Visite
2K
PHP 4 Feb 2015
PHPMan
P
L
includere file asp da altro server
  • luveria
  • 13 Ott 2008
  • Classic ASP
Risposte
2
Visite
2K
Classic ASP 13 Ott 2008
luveria
L
I
asp | includere un file, indirizzo depositato in un db
  • IvanID
  • 9 Feb 2024
  • Classic ASP
Risposte
0
Visite
4K
Classic ASP 9 Feb 2024
IvanID
I
L
includere file inc.*.php in automatico
  • luigi777
  • 15 Ott 2019
  • PHP
Risposte
1
Visite
2K
PHP 16 Ott 2019
marino51
M
[PHP] Includere file esterno
  • maliba
  • 3 Nov 2016
  • PHP
Risposte
0
Visite
1K
PHP 3 Nov 2016
maliba
M
Includere file HTML/TXT su script php
  • localhost.nicola
  • 29 Apr 2016
  • PHP
Risposte
3
Visite
2K
PHP 29 Apr 2016
localhost.nicola
C
Includere file
  • colomber
  • 12 Lug 2015
  • Javascript
Risposte
2
Visite
2K
Javascript 15 Lug 2015
colomber
C
A
creazione file js da includere in un documento html
  • alfo18
  • 28 Mag 2012
  • Javascript
Risposte
6
Visite
15K
Javascript 30 Ago 2013
coqueiro
C
V
Usa la libreria "phpgraphlib.php" problemi nell'includere altri file
  • vitelli
  • 24 Mag 2012
  • PHP
Risposte
2
Visite
4K
PHP 27 Mag 2012
alessandro1997
includere file scelto casualmente da array
  • nim
  • 11 Ott 2011
  • PHP
Risposte
10
Visite
1K
PHP 12 Ott 2011
borgo italia
B
includere file xml in file php
  • Bruce5000
  • 5 Mag 2010
  • PHP
Risposte
1
Visite
1K
PHP 5 Mag 2010
Eliox
R
Includere elementi array fra apici
  • Riccardo Contu
  • 25 Set 2020
  • PHP
Risposte
1
Visite
1K
PHP 25 Set 2020
macus_adi
[WordPress] [Woocommerce] Ritiro in zona: includere servizio aggiuntivo optional
  • felino
  • 12 Lug 2017
  • WordPress
Risposte
0
Visite
2K
WordPress 12 Lug 2017
felino
F
includere parte html in index.php
  • Fabiomail
  • 9 Apr 2017
  • PHP
Risposte
5
Visite
6K
PHP 10 Apr 2017
Fabiomail
F
M
[PHP] Includere solo il risultato di una variabile
  • mko
  • 19 Mar 2017
  • PHP
Risposte
2
Visite
2K
PHP 22 Mar 2017
borgo italia
S
Includere in App Ibrida informazioni da Wikipedia
  • SsaLaroLana
  • 15 Set 2015
  • jQuery
Risposte
8
Visite
2K
jQuery 20 Set 2015
SsaLaroLana
S
J
Includere css nel Child-Theme
  • jok3r90
  • 13 Gen 2015
  • WordPress
Risposte
1
Visite
1K
WordPress 23 Gen 2015
felino
G
Includere script altro sito
  • Giogiosw
  • 7 Feb 2014
  • PHP
Risposte
2
Visite
1K
PHP 7 Feb 2014
giamma
M
includere pagina con script in un'altra
  • mauro1108
  • 21 Ott 2013
  • PHP
Risposte
2
Visite
2K
PHP 3 Nov 2013
criric
A
includere form sito esterno nel proprio
  • Alessio Pinna
  • 13 Lug 2013
  • PHP
Risposte
1
Visite
1K
PHP 13 Lug 2013
Alessio Pinna
A
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?