Det jag läst mig till /sett med tokens är alltså att du har ett krav på att en token ska skickas med i din post.
Denna token sätts aningen som en ett hidden form field eller som en cookie, på den sida som användaren requestar för att få formuläret.
Detta hindrar ju att nån annan part antingen bara postar rätt in, eller en cross-site.
Men du har ju ett mycket mer delikat problem. Har ingen som helst idé på hur man ska hindra användaren från att då bara ta en token du skickat med och sen göra en egen post i t ex Fiddler.
Jag vet att t ex blocket håller på med massa sneaky shit med sitt API.
Varje api-anrop från iOS-appen skickar med en hash, har man inte en korrekt hash så blir det reject.
Detta funkar ju dock eftersom hashen kalkyleras i appen, och då jag ej har tillgång till källkoden till appen så blir det svårt att lista ut vad det är som görs.
Men motsvarande i en browser kommer ju inte heller funka eftersom du då måste göra det i t ex javascript och då har ju användarna tillgång till källkoden.
Blocket kör även med en token när man ska "kontakta" en annons.
<input type="hidden" name="ik" value="5317799f52c5c6da38572ad7e24eb593e682acac"/>
Det där finns med i deras formulär, försöker man göra en post mot ett korrekt annonsnummer fast utan rätt "ik" så blir det reject.
Men det hindrar ju ingen (jag gjorde det då jag byggde en egen app då jag inte gillar deras ) som först hämtar ner deras formulär, parsar ut "korrekt" "ik" för den annonsen och sen bara bifogar den i min egna post
Ska bli intressant att se vad folk har att komma med
Edit:
http://www.asp.net/web-api/overview/security/preventing-cross...
Där har du läsning om det som går att "slå på" automagiskt i .net MVC