Я понимаю, что это очень старая статья, но я подумал, что было бы полезно добавить простую, безопасную практику для решения этой проблемы в будущих реализациях.
Добавьте на страницу произвольный токен доступа API, связанный с сеансом. При желании вы можете обновлять токен при каждом запросе, если хотите предотвратить непреднамеренную двойную отправку и т. Д.
На страницу
token = get random string, 8 to N characters long,
hashing if you desire greater security
store token in session
write some html
embed the code in a script tag:
var api_token = '<? echo code; ?>';
append api_token to all SOAP/JSONP requests
when the request returns, replace api_token with the new token
В службе
read api_token
look for api_token in session
if token does not exist, exit
else, continue ...
generate new token
store token in session
append token to response
Эта базовая стратегия хороша для защиты запросов на обслуживание и проверки щелчков по ссылкам. То есть, вы можете с высокой степенью уверенности убедиться, что delete.aspx? Id = 123 произошел от manage.aspx или чего-то другого, а не от чьей-то ленты FB, Twitter, службы коротких URL-адресов и т. Д. ..