Premetto che non sono un esperto di sicurezza e l'idea da me proposta mi e' venuta in mente perche' sto affrontando lo stesso probema.
Ho dei web service e voglio essere sicuro che vengano chiamati da client certificati.
Quindi prendila con le pinze e anzi se qualcuno che ha gia affrontato la cosa e ha qualche suggerimento ben venga.
la questione e' che tu invochi una pagina facendo una richiesta.
Se tu fai un hash della richiesta + parola segreta e qualcuno te la sniffa puo ripetere la richiesta quante volte vuole.
La mia proposta era quella di fare un hash di
time()+ip+parola segreta.
e inviare time e hash.
L'applicazione server fara' una hash di
time ricevuto+$_SERVER['REMOTE_ADDR']+parola segreta
da confrontare con l'hash inviato inoltre ritenere accettabile il time ricevuto solo entro certi limiti di tempo.
Cosi sei sicuro che quell'ip e' certificato in quel momento e puoi eseguire lo script.
In teoria non dovrebbe essere possibile fregare il web service non conoscendo la parola segreta.
Puo andare ?
Andrea