Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [ Variabile e $_POST ] Dubbio sulla sicurezza sui controlli.

    Buongiorno a tutti,

    mi è sorto un dubbio.

    Avendo uno script di questo tipo:
    Codice PHP:
    <?php

    if (isset($_POST['invia'])) {

      
    $nome $_POST['nome'];

    }
    ?>
    In quale dei due modi è più sicuro effettuare il controllo dell'input?

    Controllo su $_POST in variabile
    Codice PHP:
    <?php

    if (isset($_POST['invia'])) {

      
    $nome $_POST['nome'];

      if (!
    preg_match('/ --istruzioni--/'$nome)) {

         echo 
    "Altolà!";

      }
    }
    ?>

    Controllo su $_POST in variabile messo dopo controllo su $_POST stesso
    Codice PHP:
    <?php

    if (isset($_POST['invia'])) {

      if (!
    preg_match('/ --istruzioni--/'$_POST['nome'])) {

       echo 
    "Altolà!";

      } else {

            
    $nome $_POST['nome'];
     
     }
    }
    ?>





    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    qualcosa tipo
    Codice PHP:
    $nome = (condizione1 && condizione2 && ... && condizioneN)? $_POST['var'] : null
    credo sia più leggibile e veloce da elaborare... poi dipende dal tipo di controlli che devi fare. In linea di massima è cmq sconsigliabile usare gli if annidati

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie mille oronze, ne terrò conto.

    Ma riguardo alla mia impostazione, quale delle due è preferibile...la seconda vero?

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    a livello di sicurezza sono identiche, verificare il $_POST o metterlo dentro una variabile per poi verificarlo è la stessa identica cosa ... ovviamnete se stiamo parlando di controlli tramite script PHP, se la variabile la devi passare a una query allora è un altro discorso, ma per come hai scritto tu che devi solo passarla alla funzione preg_match, io direi che passargli il $_POST o una variabile tua è la stessa identica cosa.



    P.S. se nella soluzione 1 non metti un die ovviamente vai avanti comunque dopo che stampi l'altolà
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie las!

    Si nel mio caso non c'è database quindi allora potrebbe andare.

    E grazie per l'accorgimento del die O_O ..mi era sfuggito!

    Ma..riflettendo..perchè a questo punto non fare così...

    Codice PHP:
    <?php

    if(isset($_POST['invia'])) {

      if (
    $_POST['nome'] == "sbagliato") {

      die(
    "Altolà!");

      } else {

         
    $nome $_POST['nome'];

      }

    }
    ?>
    Fatto 30..faccio 31. ( detto locale )

    No?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    ..confusione..dimenticavo che dopo l'echo ho exit.

    Grazie per le dritte!


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.