Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100

    Come impedire la modifica manuale dell'url

    Ciao a tutti,

    pongo una domanda un po' particolare, c'è modo di controllare che i parametri passati in GET, non vengano modificati a mano da parte dell'utente?

    E' una domanda stupida ma al momento non mi viene in mente nulla...

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    non in maniera automatica... devi farti una procedura tua ma il modo c'è
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Ciao, i parametri passati mediante get vengono accodati alla querystring e quindi è possibile modificarli.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    Esatto è quello che ho pensato solo che non capisco una cosa...

    ho il seguente codice PHP

    Codice PHP:
    session_start();

    require (
    "../class/class.user.php");
    require (
    "../class/class.db.php");
    require (
    "function.php");

    global 
    $db;
    global 
    $data;
    global 
    $user;

    if (isset(
    $_POST['action'])) {
        
        switch( 
    $_POST['action']) {
            
            case 
    "login":     
                
                
    $data["code"] = checkValidUser($_POST['usr'],$_POST['psw']);
                
                if ( 
    $data["code"] < ) {    
                  echo 
    json_encode($data);
                  break;
                }
                
                
    $db = new DBO();
                
    $db->connetti("kbsalso");
                
                
    $query  "SELECT * FROM user WHERE user_account = '".trim($_POST['usr'])."' LIMIT 1";
                
    $result $db->estrai($db->query($query));

                foreach ( 
    $result as $res) {
            
                    if ( 
    $res["user_password"] == md5(trim($_POST['psw'])) ) {
                        
                        
    $user = new User($res["user_id"],$res["user_account"],$res["user_password"],$res["user_permission"] );
                        
                        
    $_SESSION['idu'] = $user->getIdu();
                        
                        
    $data["pagelink"] = "main.php?page=index&id=".$user->getTok();
                    
                    } else 
    $data['code'] = 2;
                
                }
                
              echo 
    json_encode($data);
              
                
    $db->disconnetti();
                
                break;
            
            default: 
    header("Location: index.php");    
        }
        
    } else 
    header("Location: index.php"); 
    Mentre la pagina main.php contiene quest'altro codice

    Codice PHP:

    /**********************************************/
    require ("varie/function.php");

         
    var_dump($_SESSION); 
    Solo che mi stampa NULL, e non capisco il perchè???
    Il redirect alla pagina main avviene grazie al seguente codice JS

    codice:
    $('form[name=formLogin]').submit(function() {	
    		$.post('varie/check.php',{
    					 usr: $('[name=usr]').val(), 
    					 psw: $('[name=psw]').val(), 
    					 action: $('[name=action]').val()
    					 }, 
    					 function(data) {
    						 						   
    						 switch(data.code) {
    						   
    							 case 1: 
    								 $('#loading').fadeIn().delay(3000).fadeOut();
    								 $('#error-usr').fadeOut().delay(3500).fadeIn();
    								 break;
    						   
    							 case 2: 
    							   $('#loading').fadeIn().delay(3000).fadeOut();
    								 $('#error-psw').fadeOut().delay(3500).fadeIn();
    								 break;
    								 
    							 case 0:
    							 case 3: 
    							   $('#loading').fadeIn().delay(3000).fadeOut();
    								 $('#error-usr').fadeOut().delay(3500).fadeIn();
    								 $('#error-psw').fadeOut().delay(3500).fadeIn();
    								 break;
    							 
    							 default: location.href = data.pagelink;
    						 } 
    					 },'json');
    		return false;
    	});
    E' come se non salvasse i valori nella sessione....

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    Originariamente inviato da dottwatson
    non in maniera automatica... devi farti una procedura tua ma il modo c'è
    Potresti darmi qualche dritta in più

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    l' idea, in linea di principio, è che tu crtei una pagina di interscambio dove TUTTI gli indirizzamenti passino da lì.

    immagina un NODO, che raccoglie i dati transitori (POSTe GET), crea un token per ogni metodo e lo salva in sessione con tutti i suoi dati all' interno.

    il NODO ti rimanda alla pagina destinataria e non analizzi più i dati originari ma vai a richiamare i token memorizzati nella sessione dal nodo.

    l' unica pecca è per i files caricati ($_FILES), mentre il vantaggio potrebbe essere un corretto controllo dei doppi invii
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.