PROZONE powered by Tophost
  Home   Forum   Regolamento Help Login Registrati   *
Statistiche
Utenti
Utenti Totali: 1707
Ultimo utente: xal
Statistiche
Posts Totali: 29470
Topics Totali: 3404
Online Oggi: 51
Presenze Massime Online: 559
(23 Luglio 2008, 14:24:28)
Utenti Online
Utenti: 0
Visitatori: 51
Totale: 51
Siti amici
Design & Multimedia

Dire e Fare il blog che ti aiuta

Wordpress
Pagine: [1]
 
Autore Topic: Wrapper Php X Accesso A Db  (Letto 2061 volte)
doGmaI
Utente Attivo
****
Posts: 280


Wrapper Php X Accesso A Db
« il: 29 Gennaio 2007, 22:10:27 »

In questi giorni mi è sorta sta strana idea...

Partendo dal presupposto che non è possibile (in genere) per un'applicazione che gira su un pc client (gioco, programma, o altro) accedere al DB hostato su un server[1] (come può essere tophost. aruba, o qualsiasi altro hosting vi venga in mente), ho cercato di immaginare una possibile soluzione.

Così mi è venuta questa idea (un po' emulando i vari programmini che permettono di spedire gli sms dai siti delle varie compagnie).

Si potrebbe realizzare una pagina php apposita che accede al DB in questione e fare in modo che l'applicazione client invece di tentare di accedere al DB direttamente chiami questa pagina a cui verrà passata la stringa SQL[2]
Questa pagina a sua volta, risiedendo sul server web, non dovrebbe avere problemi ad accedere al DB.

Questa soluzione potrebbe avere diversi vantaggi
1° nell'applicazione client non saranno mai memorizzati nome utente e password per accedere al db
2° non ci sono comandi SQL veri e proprio che viaggiano su internet
3° ogni client, anche con IP dinamino può accedere al DB di un server, permettendo di realizzare una specie di P2P, avendo a disposizione un server per qualsiasi protocollo quando in realtà il protocollo non c'è

Ma ovviamente ci sarebbero anche diversi svantaggi
1° overhead dovuto alla pagina PHP per query altrimenti molto semplici
2° complessità nella realizzazione dell'applicazione client
[e probabilmente altri che ora non mi vengono in mente]

A qualcuno è mai capitato di realizzare una cosa del genere?
Io sono in procinto di iniziare un programmino che sfrutti questa modalità, e mi chiedevo se magari c'era qualcuno che aveva già avuto esperienza in merito, giusto per avere qualche consiglio (magari qualcuno ci ha provato e sa che non è fattibile come soluzione...)

[1] ovviamente non vanno considerati server appositamente pensati per questo scopo
[2] meglio ancora, invece di usare SQL pure, crearsi una specie di metalinguaggio con comandi personalizzati che poi la pagina interpreta e traduce correttamente
Loggato

Diavolo_Rosso
Utente Avanzato
*****
Posts: 816


Wrapper Php X Accesso A Db
« Risposta #1 il: 29 Gennaio 2007, 22:29:28 »

Citazione
chiami questa pagina a cui verrà passata la stringa SQL[2]
Questa pagina a sua volta, risiedendo sul server web, non dovrebbe avere problemi ad accedere al DB.
mai sentito parlare di SQL Injection?  :rolleyes:

il passaggio diretto di stringhe SQL non lo si fa neanche sui siti normali e tu lo vorresti fare addirittura con applicazioni esterne?


poi ci si lamenta che i siti vanno lenti e che ci sono i server imputtanati :rolleyes:  
Loggato

doGmaI
Utente Attivo
****
Posts: 280


Wrapper Php X Accesso A Db
« Risposta #2 il: 29 Gennaio 2007, 22:38:27 »

Citazione
Citazione
chiami questa pagina a cui verrà passata la stringa SQL[2]
Questa pagina a sua volta, risiedendo sul server web, non dovrebbe avere problemi ad accedere al DB.
mai sentito parlare di SQL Injection?  :rolleyes:

il passaggio diretto di stringhe SQL non lo si fa neanche sui siti normali e tu lo vorresti fare addirittura con applicazioni esterne?


poi ci si lamenta che i siti vanno lenti e che ci sono i server imputtanati :rolleyes:
Citazione
[2] meglio ancora, invece di usare SQL pure, crearsi una specie di metalinguaggio con comandi personalizzati che poi la pagina interpreta e traduce correttamente
Loggato

lacellula
Moderatore
*
Posts: 1 138


Wrapper Php X Accesso A Db
« Risposta #3 il: 29 Gennaio 2007, 23:23:06 »

Esiste già un "wrapper", anche se il termine è improprio imho.

http://sqlmanager.net/products/mysql/manager/download

Le sue funzioni di base sono molto limitate ma con un pò di pazienza mi sembrava fosse possibile sistemare il codice per essere più versatile. L'ho provato tempo addietro, solo per curiosità, e poi non ho fatto nulla con tale prodotto.

Io ho dei forti dubbi sulla reale funzionalità del metodo che tu proponi, anche per quanto riguarda gli svantaggi.

Citazione
2° complessità nella realizzazione dell'applicazione client
Non concordo pienamente, anzi facendo una classe il codice potrebbe essere più pulito. Il problema, imho, sta nel fatto che un conto è far transitare dei dati dentro una LAN/SAN un conto e far passare dei dati attraverso Internet. Ti immagini fare:

Codice:
SELECT * FROM utenti LIMIT 10000;

ed aspettare che Tiscali / Alice / Tele2 lascia fluire il risultato?
Loggato

doGmaI
Utente Attivo
****
Posts: 280


Wrapper Php X Accesso A Db
« Risposta #4 il: 29 Gennaio 2007, 23:32:52 »

Citazione
Esiste già un "wrapper", anche se il termine è improprio imho.
...
ed aspettare che Tiscali / Alice / Tele2 lascia fluire il risultato?
Dell'esistenza del wrapper non ne ero a conoscenza

Per quanto riguarda la tua obiezione sulla quantità di dati concordo pienamente.
Non l'ho sottolineato io, ma ovviamente ho pensato anche a questo.
Per quanto mi riguarda, l'applicazione che andrei a realizzare, non farebbe mai una select di questo tipo.
Al più sarebbero query complesse con join, left join e simili, ma cmq per ritornare sempre un solo record (in casi estremi due), quindi dire che il traffico generato (e di conseguenza l'attesa) sarebbe cmq accettabile (chiaramente le prestazioni non saranno paragonabili a quelle di un server mysql disponibile senza "accrocchi" per l'accesso da esterno)
Loggato

lacellula
Moderatore
*
Posts: 1 138


Wrapper Php X Accesso A Db
« Risposta #5 il: 30 Gennaio 2007, 09:54:42 »

Secondo me, allora, si potrebbe fare così. Si fa un piccolo script in PHP che accetta via $_POST o $_GET una query la quale andrebbe, ovviamente, controllata. Contestualmente si passa un numero casuale ed una eventuale chiave di sicurezza. Se la struttura del db è conosciuta, nel senso che si sanno già i campi e le tabelle si potrebbe creare, come output, un file XML contenente i record e scriverlo dentro un file chiamato come la variabile numerica. Ad esempio:

Codice:
http://www.miosito.com/sql_connector.php?rand=123456789&sec_key=ciao&query=SELECT * FROM foobar

Lo script esegue la query e crea un XML chiamato 123456789.xml, il quale verrà letto dal programma.

La prima obiezione è "Ma come faccio a dire al programma quando leggere il file XML?". Si potrebbe aspettare un tot di millisecondi, tempo più che ragionevole su un server normale, ma spesso insufficiente per server "being busy". Allora si mette alla fine dello script, quando il file è creato, un richiamo fsock_open che punta verso una porta aperta del programma stesso. Una sorta di comunicazione asincrona tra il client ed il connector.

La seconda obiezione è "Quanti files devo spendere sul webserver. Dopo 1000 queries avrò 1000 files". Anche qui si potrebbe fare in due modi: 1) Una volta che il client ha ricevuto i dati manda, tramite fsock oppure tramite GET o POST una richiesta di cancellazione del files oppure si potrebbe fare un cronjob (ovviamente su sistemi GNU/Linux) che ogni giorno cancella tutti i files.
« Ultima modifica: 30 Gennaio 2007, 09:55:46 da lacellula » Loggato

effe8
Coordinatore
*
Posts: 837


Wrapper Php X Accesso A Db
« Risposta #6 il: 30 Gennaio 2007, 10:14:44 »

Tempo fa feci delle prove con EMS SQL Manager, un programma che gira sotto windows e di cui esiste la versione gratuita.

EMS SQL Manager permette di collegarsi al proprio database attraverso un file PHP che fa da ponte di collegamento. Tale file non contiene dati sensibili. Questo genere di collegamento si chiama "tunneling".

Il termine "tunneling" si riferisce a un insieme di tecniche per cui un protocollo viene incapsulato in un protocollo dello stesso livello o di livello superiore per realizzare configurazioni particolari. Il "tunneling" viene ad esempio utilizzato per bypassare il firewall e questo si ottiene deviando il traffico di una porta (che magari e' chiusa) verso un'altra porta aperta.

Nel nostro caso il piccolo file PHP fornito con EMS SQL Manager preleva i dati mysql dalla porta 3306 e li invia attraverso la porta 80.


Questo e' il sito di EMS SQL Manager da cui si puo' prelevare gratuitamente la versione "lite" che tra le caratteristiche annovera "Access to MySQL Server through HTTP protocol", ossia il collegamento a server MySQL attraverso il protocollo HTTP (porta 80):
http://www.sqlmanager.net/en/products/mysql/manager/matrix


Questo e' un vecchio thread dove parlammo della cosa:
http://www.prozone.it/forum/index.php?showtopic=512




Buona giornata a tutti.
« Ultima modifica: 30 Gennaio 2007, 10:54:32 da effe8 » Loggato

doGmaI
Utente Attivo
****
Posts: 280


Wrapper Php X Accesso A Db
« Risposta #7 il: 30 Gennaio 2007, 20:15:01 »

Citazione
Tempo fa feci delle prove con EMS SQL Manager, un programma che gira sotto windows e di cui esiste la versione gratuita.
[cut]
Buona giornata a tutti.
Interessante...

Non avevo pensato a qualcosa di così completo, ma evidentemente non è nemmeno un'idea così rara Wow

grazie F8
« Ultima modifica: 30 Gennaio 2007, 20:15:39 da doGmaI » Loggato

effe8
Coordinatore
*
Posts: 837


Wrapper Php X Accesso A Db
« Risposta #8 il: 30 Gennaio 2007, 22:07:58 »

Citazione
...
Non avevo pensato a qualcosa di così completo, ma evidentemente non è nemmeno un'idea così rara Wow

grazie F8
Di nulla, e mi raccomando, si scrive "F8", ma si pronuncia "effe8". Occhiolino
« Ultima modifica: 30 Gennaio 2007, 22:08:47 da effe8 » Loggato

Pagine: [1]
 
 
Salta a:  

Oggetto Iniziato da Risposte Visto Ultimo Post
Il modulo mi fa arrabbiare! puma512 2 2574 Ultimo Post 8 Febbraio 2009, 23:09:42
da puma512
ERRORE 500 PERSISTENTE « 1 2 » Dausto 26 7183 Ultimo Post 11 Settembre 2007, 19:30:13
da Tophost
Guida A Mod_rewrite (parte 3) SuperSavio 12 16558 Ultimo Post 29 Marzo 2007, 22:12:19
da lacellula
[FLAME] I motivi per cui ho lasciato tophost e guerra tra utenti « 1 2 3 » evilsocket 44 10083 Ultimo Post 10 Febbraio 2009, 15:36:05
da Matrix86
MKPortal C « 1 2 » Darknico 16 8814 Ultimo Post 15 Giugno 2008, 18:05:12
da Darknico
Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia

TinyPortal v0.9.8 © Bloc
XHTML 1.0 Valido! CSS Valido!


Ultima visita di Google a questa pagina 19 Luglio 2010, 03:48:58