Allora io ho fatto in questo modo... secondo voi può andar bene??

Nella pagina dove vado ad inserire unsername e password che sta su aruba,
creo una random string di lunghezza 10 caratteri



Codice PHP:

function random_string($length){
    
$string "";

    
// genera una stringa casuale che ha lunghezza
    // uguale al multiplo di 32 successivo a $length
    
for ($i 0$i <= ($length/32); $i++)
        
$string .= md5(time()+rand(0,99));
    
// indice di partenza limite
    
$max_start_index = (32*$i)-$length;

    
// seleziona la stringa, utilizzando come indice iniziale
    // un valore tra 0 e $max_start_point
    
$random_string substr($stringrand(0$max_start_index), $length);

    return 
$random_string;
}

$random_string random_string(10);
$_SESSION['stringa']=$random_string;
$_SESSION['ip']=$_SERVER['REMOTE_ADDR']; 

quindi faccio form inviando uername e password, e in hidden la stringa random e l'ip dell'utente all'altro server OK??

A questo punto sul server cosa faccio...

Codice PHP:

//mi recupero questi dati inviati 
$usr=$_POST['usr'];
$pwd=$_POST['pwd'];
$str=$_POST['stringa'];
$ip=$_POST['ip'];

// faccio la connessione al db non aruba...


$link mysql_connect('localhost''root''root')
or die(
'Could not connect: ' mysql_error());
//echo 'Connected successfully';
mysql_select_db('database') or die('Could not select database');



// e controllo username e password
$query "SELECT * FROM iscritti where username='".$usr."' and password='".$pwd."'";
$result mysql_query($query) or die('Query failed: ' mysql_error());
$row=mysql_fetch_array($result);
$cf=$row["cf"];

//A questo punto se username e password sono esatti cioè se il codice fiscale è pieno, visto //che è un campo obbligatorio, ritorno sul server aruba alla pagina ricerca.php altrimenti //ritorno all'index.php da dove sono partito, con un errore.

if(isset($cf)){
    
$segreta="£$%&=8()/&!56";
    
$mycode=$str $segreta $ip;
    
$mystrmd5=MD5($mycode);
    
header("location:[url]http://www.serveraruba.com/test/ricerca.php?code=[/url]" $mystrmd5.$cf);
}else{
    
header("location:[url]http://www.serveraruba.com/test/index.php?errore=1[/url]");    
}    


//come si vede se sono autenticato gli mando in get alla pagina un' hash che è composto
//dalla stringa che ho inviato, da una password decisa da me e dall'ip dell'utente che ho //ricevuto in più attaccato gli invioo il codice fiscale in chiaro. 
Quando ricevo i dati sulla pagina ricerca.php che si trova su aruba, faccio come segue...

Codice PHP:
session_start();

//ricevo il codice che comprende hash + codice fiscale.
$codeAUT_cf=$_GET["code"];



//Mi risetto anche sul server aruba la stessa password
$segreta="£$%&=8()/&!56";

//Mi recupero dalla sessione la stringa creata prima di inviare il tutto e l'ip dell'utente
$str=$_SESSION['stringa'];
$ip=$_SESSION['ip'];

// e mi ricreo  un hash allo stesso modo
$codice=$str $segreta $ip;
$mycodicemd5=MD5($codice);


//Mi estraggo dalla stringa ricevuta solo l'hash per confrontarli
$codeAUT substr($codeAUT_cf032);

// se sono uguali sono autenticato e mi prendo il mio codice fiscale se no.. mi da errore.
if($codeAUT==$mycodicemd5){
    echo 
"<H3>AUT OK!!!</H3>";
    
$codice_fiscale substr($codeAUT_cf, -16);
    echo 
"ECHO CODICE FISCALE:::::" $codice_fiscale "
"
;
    
}else{
echo 
"<H3>Errore!!!!!!!</H3>";

Come la vedete questa operazione..... credo che una certa sicurezza ci sia o no???
Almeno credo di aver seguito il tuo consiglio filippo o dicevi diversamente?

Inoltre se così secondo voi potrebbe andar bene, ci potrebbe essere il modo per cifrare anche il codice fiscale preso dal db... in modo da inviare una stringa che all'apparenza sia solo di numeri e lettere casuali.... e poi decifrarlo una volta ricevuto sul server aruba..

Grazie di qualsiasi suggeritmento
Giuseppe