2011-01-12 3 views
0

Есть ли способ, чтобы проверить реакцию скажет:Validate Facebook JavaScript ответ API

FB.api(
    { 
    method: 'fql.query', 
    query: 'SELECT name, pic FROM profile WHERE id= ' + FB.getSession().uid 
    }, 
    function(response) { 
    //... 
    } 
); 

Проверка куков для входа в системе достаточно легко, используя хэш MD5 и секретный ключ по сравнению с предоставленным параметром сига. Однако в случае вызовов api, что помешает кому-либо использовать firebug для изменения ответа? Очевидно, что это может быть сделано на задней стороне для получения конфиденциальной информации, но я хотел бы сохранить как можно больше пропускной способности и обратно до Facebook на конечных клиентах.

Любые мысли?

+1

Я ничего не могу придумать * вредно * пользователь мог бы сделать, кроме как разбить его опыт? – ifaour

+0

по большей части вы находитесь на месте. Однако есть несколько дополнительных деталей, таких как адрес электронной почты, который я бы хотел получить и сохранить для этого пользователя. – used2could

+1

для получения такой информации, я бы получил ее непосредственно со стороны сервера, имея в виду, что у меня есть разрешение «электронной почты»! – ifaour

ответ

1

Я не могу думать ни о чем вредных пользователь может сделать, кроме как ломать свой собственный опыт в вашем приложении, если вы не получаете эти входы (реакции) и их обработки/сохранения их в БД, например:

  1. Имеет поле ввода, в котором пользователь может обновить свой статус FB через него, и вы хотите сохранить его в свою собственную БД тоже?
    В этом случае вы/ДОЛЖНЫ выполнять обычные входные проверки (mysql_real_escape ..etc) в любом случае.
  2. Сохранение электронной почты пользователя?
    Вы уже можете получить почти всю информацию о пользователе, используя вызовы на стороне сервера, как только пользователь будет аутентифицирован и предоставит доступ к вашему приложению. Например, чтобы сохранить адрес электронной почты пользователя, вам не следует ждать, пока пользователь отправит отправлю вам, когда вы можете приобрести его, используя разрешение email.
0

Любая проверка, которую вы можете выполнить в JavaScript (1), была бы чем-то, что пользователь мог бы преодолеть с помощью небольшого количества JS.

Если вам необходимо убедиться, что связь с/от Facebook безопасна и не мешает ... затем сделайте это на сервере.

(1), например.

если вы имели validateFacebookResponse(resp); функцию ... конечному пользователю просто нужно повторно объявить функцию ...

function validateFacebookResponse(resp){ 
    return true;//always return true! 
} 

и любой «безопасности» у вас есть из окна.

+0

Scunliffe, я знаю, что вы имеете в виду относительно функции проверки на стороне клиента. То, что я имею в виду, это что-то вроде параметра «sig», который возвращается из facebook для ответа сеанса. Это контрольная сумма возвращаемых параметров и секретный ключ вашего приложения. Это вы подтвердили на сервере, потому что хотите сохранить секретный секрет. Я заметил, что другие вызовы api, однако, не содержат параметр «sig», поэтому я не могу проверить возвращаемые параметры. – used2could

+0

@ used2could - я немного смущен, так вы делаете эти звонки на сервере? где вы указываете URL/параметры при совершении вызова?Если это так, вам нечего бояться, если Facebook не будет взломан, но опять же, если они это сделают - ваша проверка не будет защищена в любом случае. – scunliffe

+0

Scunliffe, извините, я не уточнил. Часть проверки выполняется на сервере. Я полагал, что кто-то, у кого был опыт работы с facebook api, был бы знаком с процессом проверки. в основном я надеялся, что вызовы FB.api предоставят параметр подписи в ответе, как это делает FB.login. – used2could

Смежные вопросы