Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Delucidazione sulla sicurezza

    Ciao!
    Ho un dilemma che mi affligge da un po'.
    Mi è capitato spesso di creare pagine php dove cliccando un link si viene mandati alla pagina eliminarecord.php?id=3 atta ad eliminare un record nel database.
    Secondo voi è sconsigliabile utilizzare tale sistema poichè l' utente volendo può cambiare il valore nella querystring e può quindi eliminare un altro record?
    Sarebbe più opportuno fare un controllo mettendo in sessione l' id del record da cancellare?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sarebbe opportuno verificare se chi sta richiedendo l'eliminazione ha l'autorizzazione a farlo.
    Se per esempio si trattasse di un post, verificherei che a richiedere la cancellazione sia un admin o, se gli è permesso, l'utente che lo ha creato.
    Quindi se un utente prova a cancellare il record 3 e verificando a chi appartiene, prima dell'effettiva cancellazione, risulta appartenere ad un altro utente, mostri un messaggio d'errore e il record non lo cancelli.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Fossi in te non permetterei a chiunque di cancellare qualcosa. Lascerei questo compito agli admin (ovviamente dopo autenticazione)
    Altrimenti puoi mettere l'id dell'utente in sessione per consentirgli di cancellare i suoi soli messaggi. Comunque nella tabella aggiungerei un campo con un id casuale (composto da molti caratteri) difficile da indovinare e che rimpiazzerebbe l'id normale nella query string.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Grazie ragazzi, i record li devono poter eliminare anche se non sono degli admin
    In effetti non ho fatto il controllo se quell' utente può eliminare tale record, quindi come è ora volendo un utente può eliminare anche i record di un altro utente. Diciamo che per ora non è un grosso problema, questa cosa gira su una vpn e la usano tra colleghi che non sanno manco cos' è un ID ;-)
    Però in futuro ragionerò diversamente. Grazie tante

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E' appunto perché non sanno quello che fanno che devi preoccuparti.
    Non sapendo che roba è un id gli potrebbe venire in mente di vedere che succede se cambiano "quel numerino".

    E' prima di tutto dagli utOnti che devi metterti al riparo, chi sa cosa sta facendo deve essere un mal'intenzionato per far danno, uno che non sa cosa sta facendo invece lo fa incoscientemente.

  6. #6
    Verissimo. Mi va di c**o che è strutturato in frames e la querystring non è visibile a meno che non si faccia tasto destro apri in un' altra scheda...

  7. #7
    ma se si loggano non ti costa tanto mettere in un file comune nell'amministrazione tipo
    <?php
    session_start(); ecc e includerlo in tutte le pagine, anche io amministro un sito dove vado solo io però visto che costa poco metterlo, oppure non ho capito il problema
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da nivasio Visualizza il messaggio
    ma se si loggano non ti costa tanto mettere in un file comune nell'amministrazione tipo
    <?php
    session_start(); ecc e includerlo in tutte le pagine, anche io amministro un sito dove vado solo io però visto che costa poco metterlo, oppure non ho capito il problema
    Il problema è che attualmente se mi loggo io posso cancellare anche i tuoi post solo cambiando l'id nella query string.
    Non c'è controllo sul proprietario del record che si sta cancellando dal db, tutti possono cancellare tutto, anche se regolarmente loggati.

  9. #9
    Cmq tutto sommato basta che modifico la query e metto che deve eliminare la riga con quell' ID e che il campo id_username abbia lo stesso valore della sessione ID che creo al momento del login...poi se cambia il numerino e elimina un altro record si arrangerà un po' no?

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Certo, avendo ognuno la possibilità di eliminare i propri record, se eliminano quello sbagliato son fatti loro, basta che non possano eliminare quelli degli altri.

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.