Se stai cercando idee sulla sicurezza per i servizi web REST, guarda le specifiche OpenAuth che descrivono "l'handshake".
link
La creazione di servizi Web conformi agli standard di OpenAuth è probabilmente uno dei modi più sicuri in cui ciò può essere fatto. Può darti idee sull'autenticazione, strategie di autorizzazione.
Quello che segue è un esempio tratto dall'intestazione Autorizzazione in GET o POST:
Authorization: OAuth
oauth_consumer_key="xxxxxxxxxxxx",
oauth_token="xxxxxxxxxxxx",
oauth_nonce="xxxxxxxxxxxx",
oauth_timestamp="1184242096",
oauth_signature_method="HMAC-SHA1",
oauth_version="1.0",
oauth_signature="xxxxxxxxxxxxxxxxxx"
Non ho intenzione di entrare in tutti i dettagli di OpenAuth ma essenzialmente permette a un client di fornire una chiave utente che identifica il client, un token che identifica l'utente e una firma che rappresenta i byte codificati Base64 della crittografia firma per verificare che la richiesta non sia stata alterata o alterata durante il trasporto.
Costruire la stringa di firma di solito implica la combinazione codificata per cento dell'intera richiesta, i parametri, così come la chiave del consumatore, il token, il nonce e un segreto del consumatore che il cliente dovrebbe tenere al sicuro. Una volta che questa stringa di firma è stata creata e codificata per cento, può essere crittografata e quei byte crittografati possono essere costruiti in una stringa codificata Base64 inclusa nell'intestazione Autorizzazione.
Se esegui questa operazione su SSL, questo è senza dubbio uno dei modi più sicuri per gestire l'autenticazione / l'autorizzazione di un servizio web basato su REST.