Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    metodo post - incomprensione

    salve a tutti. ho letto della documentazione a riguardo ma nessuna che abbia specificato nel dettaglio quello che mi lascia perplesso.

    allora, se devo spedire dei dati tramite get, essi verranno visualizzati nella barra degli indirizzi. da quì (volendo) un utente potrebbe modificarli a piacere e richiamare qualsiasi dato (es. ?nomeutente=marco invece che ?nomeutente=paolo).

    ora, se spedisco tramite post (mi interessa infatti lo "spedire dati", non riceverli), essi sono presenti (per esempio) nel form/modulo della pagina. quello che mi chiedo è :

    un utente potrebbe (magari per sfruttare una vulnerabilità) cambiare quei dati e spedire altre informazioni tramite post? o quello che è settato nei moduli della pagina è intoccabile?

    aspetto delucidazioni a riguardo!

    cordiali saluti \o

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    anche con post puoi spedire "dati diversi",
    ma dall'altra parte (lo script che riceve e elabora) fa solo quello
    per cui è stato istruito.
    le vulnerabilità possono riguardare l'interzione col DB,
    ovvero la parte "scritta male" nella connessione SQL

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ok. ho fatto un form per inviare determinati dati se un utente è admin nel sito, altri se un utente non è utente (in poche parole..anche se la cosa è più complessa). se mi dici che i dati possono essere modificati, dovrò aggiungere tutti i vari controlli ai dati che invio.

    visto che avrò la necessità di controllare tali controlli, sapresti dirmi in che modo posso modificare i dati spediti tramite post?

    grazie per l'aiuto!

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    bisogna capire meglio cosa devi fare.

    solitamente il controllo si fa alla ricezione.

    i controlli sul form sono molto limitati (al client) e non sono "garantiti"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    allora :

    gestisco un sito per operare sulle tracklist di live musicali.
    la pagina di visualizzazione della tracklist è richiamabile tramite index.php?status=view&trackid=1257090437 (dove trackid è il numero della tracklist a cui voglio accedere. quì glielo passo tramite get. se un utente prova a modificarlo ed esso non corrisponde a una pagina oppure non ha i permessi per visualizzarla, non potrà accedere a tale pagina).
    all'interno del sito ci son delle tracklist "private", accessibili solo a determinati utenti. se un utente non è abilitato a visualizzare tali tracklist, non può visualizzarle (però può visualizzare quelle non private).

    una volta all'interno, c'è un link a /index.php?status=edit (per modificarla) tramite form :
    codice:
      
    <form method="post" name="editt" action="./index.php?status=edit">
    <input type="hidden" value="<?=$_GET['trackid']?>" name="trackid" />
    </form>
    e quì che doveva avvenire il trucco (o almeno, pensavo fosse un trucco) : non far visualizzare la pagina richiamando semplicemente la /index.php?status=edit, ma dovendo assolutamente passare per la pagina di visualizzazione (se chiamo semplicemente la edit, non posso estrapolare il parametro $_POST['trackid'] lato server, perchè mancherebbe)

    visto quello che hai detto, io potrei richiamare la pagina di visualizzazione di una tracklist non privata, modificare i parametri del form puntando a una tracklist privata e accedendo tramite il form. come potrei fare tale cosa? (è appunto quello che mi serve, modificare parametri lato client che verranno spediti tramite post).

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    sempre che abbia capito bene il problema...

    fai un controllo sulla presenza del valore trackid,
    se non c'è: butti fuori, o fai un redirect, o mostri un messaggio

    NOTA:

    per postare codice usa il tag CODE (tasto #)
    in caso di codice php usa il tag PHP (tasto PHP)

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ah è # per il code. scusa ma non lo sapevo hehe.

    si esatto, è quello che "dovrò" fare (anche se supponevo di poter evitare tutto questo).

    la mia domanda quindi resta : lasciando intatta questa configurazione e mettendo il controllo sul valore di trackid in post, devo fare delle prove in cui appunto l'utente aggiri il form e cambi i dati nel post : come si fà?

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    in assoluto non puoi: un utente esperto te lo invia comunque.

    ma a te non interessa, credo.
    farai sempre un controllo sull'autenticazione, no?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ripeto : il controllo sul campo (visto che mi hai detto sia modificabile anche spedendo in post) lo devo fare si, per forza.

    ora però devo controllare che questo controllo (scusa il giro di parole) sia corretto (magari sbaglio a fare un if o una sintassi, può succedere ).

    una volta fatto il controllo devo controllare () che il controllo funzioni, e l'unico metodo è modificare i dati in post (cosa che un utente appunto "esperto" potrebbe fare) e verificare la correttezza del redirect.

    ci siamo fin quì? perchè forse mi spiego male io....

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,782
    un controllo lato client sarebbe inutile quanto macchinoso e facilmente aggirabile.

    parliamo di dati che si trovano sul client,
    quindi non hai più un vero controllo.
    ce l'hai alla ricezione.

    perché "devi farlo"?

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.