[bglug] Ajax, php e protezione del codice

Enrico Bacis enrico.bacis@gmail.com
Ven 16 Set 2016 08:08:34 CEST


Altra cosa per quando parli della pagina"figlia", questa non è una pagina
che fa praticamente solo da interfaccia per il db e che permette modifiche
prendendo i parametri di GET o POST vero?

Perché altrimenti SQL injection lo hai per forza :)

Come dice Alberto anche io ti consiglio di usare un framework php e usare
le loro classi e metodi per interfacciarti con il db.

Ciao
Enrico

On Sep 16, 2016 00:24, "Alberto Bonacina" <bonacina.alberto@gmail.com>
wrote:

> Il 15 settembre 2016 23:09, Roberto Santini
> <roberto.santini89@gmail.com> ha scritto:
>
> > Ogni pagina PHP fa uso di Javascript/jQuery e
> > carica/elabora dati da database attraverso altre pagine PHP più semplici.
>
> Ma i parametri di connessione al db, per esempio, sono scritti in file
> js o in un file di config in PHP?
>
> > Tuttavia, per ora, nulla impedisce ad uno un po sgamato di aprire
> > direttamente la pagina PHP 'semplice' (chiamiamola figlia), quella che ha
> > accesso diretto al db, a prescindere dalla 'madre', dunque può
> > creare/modificare record.
>
> Scusa Roberto ma non ho capito questa parte... se uno utente aprisse
> la pagina renderizzata nel browser supponiamo la index.php non
> potrebbe vedere il codice php che ha generato quella pagina ma solo il
> suo risultato. Non ho sinceramente capito come potrebbe andare a
> leggere i singoli file php...
> Sinceramente mi preoccuperei più del codice javascript che non di
> quello php, quello è veramente in chiaro essendo eseguito lato
> "client" e non server come invece lo sarebbe quello php.
>
> se crei un file php con scritto
>
> ---------------------8-------------
> <?php
> echo "<h1>hello world"</h1>";
> ?>
> ---------------------8-------------
>
> e poi apri quella pagina dal browser quello che vedi nel sorgente della
> pagina è
>
> -----------------8<---------
> <html><head></head><body><h1>hello world</h1></body></html>
> -----------------8<----------
>
> anche supponendo di fare un wget di quella pagina ottieni comunque
>
> -----------------8<---------
> <h1>hello world</h1>
> -----------------8<---------
>
> ma non sai l'effettivo codice php che l'ha eseguito...
>
> > 1) potrei, ad ogni chiamata ajax, passare al file php una sorta di
> password
> > per poter essere eseguito; in questo modo le due pagine sono legate ma il
> > file javascript rimane leggibile, dunque anche la password. Ho letto in
> giro
> > che offuscare il codice non è la cosa migliore.
> > 2) potrei creare una variabile di sessione e ne verifico l'esistenza
> nella
> > pagina figlia prima di continuare l'esecuzione.
>
> Supponendo di utilizzare password, creazione di hash, qualsiasi cosa
> lato client (javascript, jquery) per come detto prima possono essere
> lette. Quello che puoi fare è utilizzare una variabile di sessione
> ottenuta per esempio tramite login, e poi utilizzare sempre quella per
> eseguire/controllare le chiamate lato server, oppure sfruttare i
> cookie del browser e poi andare a leggere quel cookie che hai settato
> per verificare che sia stata fatta un'autenticazione.
>
> Oppure dato che usi php, spero non "puro" ma magari qualche framework,
> potresti avere già a disposizione dei metodi per creare delle
> sessioni, passare dai parametri in post con anche degli hash con
> codice lato server, in modo che non sia comunque intercettabile per un
> utente che guarda semplicemente la tua pagina nel browser...
>
> Spero di esserti stato d'aiuto.
>
> --
> Bonacina Alberto
> Website: www.albertobonacina.com
>
> --
> Sito BgLUG: http://www.bglug.it
> Mailing list: http://lists.linux.it/listinfo/bglug
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/bglug/attachments/20160916/43b3f132/attachment.html>


Maggiori informazioni sulla lista bglug