Все зависит от того, можно ли что-либо сделать не client-side, а server-side с сайтом человека, которому представляется услуга. ВКонтакт именно так и работает, если мне не изменяет память.
(Ну если быть полностью точным, то там два набора ключей, один для усложнения жизни тем, кто будет ломать, второй действительно секретный, который знает только серверные части).
Т.е. ситуация меняется, AJAX спрашивает не у вашего сайта, а у сайта, который потом спрашивает ваш (причем делает это либо много раз, либо после первого успеха ставит правильную сессионную куку и т.д.).
Т.е. если человек изменит что-либо на клиентской части, да что угодно, то серверная часть все равно откажется обрабатывать его запросы.
Взаимодействие между сайтом клиента и вашим сайтом может быть по любому протоколу, ведь его пользователь не может подделать.
На примере авторизации:
A — AJAX, S — сайт клиента, U — ваш сайт.
A -> S: авторизируй меня, вот мои данные (хоть сколько раз подделанные)
S -> U: тут кто-то хочет авторизоваться, вот его данные
U -> S: окей, данные нормальные
S -> A: вот тебе сессионная кука, работай дальше
Поскольку в такой схеме у злоумышленника нет контроля над данными между S и U он ничего критичного сделать не сможет.