2011-11-21 3 views
2

내 앱에 친구를 초대하려면 내가 아는 한 유일한 방법은 JS.DK와 FB.ui 및 apprequests 대화 상자를 사용하는 것입니다. 괜찮아.JS SDK apprequest security

시나리오에 대해 생각해 봅시다 - 내 FB 게임을 통해 사용자는 친구를 초대하고 친구들에게 일부 항목을 부여 할 수 있습니다. 레벨, 이름, 무작위 등을 기준으로합니다. 대화 상자를 호출하는 동안 사용할 수있는 데이터 매개 변수가 있습니다. 그것은 어떤 종류의 물건이 주어질 것인가에 대한 정보를 저장할 수있는 곳과 같습니다. 하지만 사용자가이 데이터를 변조하지 못하게하는 요인은 무엇입니까? 물론 암호화를 시도해 볼 수는 있지만 여전히 사용자가 볼 수있는 변수가 있습니다. 내가 빠진 것이 있습니까? 주어진 시나리오가 안전한 방식으로 어떻게 해결 될 수 있습니까?

답변

1

전송할 매개 변수로 코드를 설정할 수 있습니다. 코드는 특정 사용자에 대해 서버/데이터베이스에 저장합니다. 그런 다음 요청을 사용하면 사용자에게 할당 된 코드가 있는지 확인하십시오. 그들이하지 않으면, 당신은 그것이 변조되었다는 것을 알고 있습니다.

+0

다시 한번 말하지만, request_id는 JavaScript 또는 다른 것으로 전달되어야합니다. 훼손 될 또 다른 곳. 아마 FB와 같이 (hmac-sha256을 사용하여) 서명하면이 문제를 해결할 수 있습니다 .. – M4ks

+0

네 ...하지만 서버에 저장했다면 위조 된 것과 비교할 수 없습니다. – Abby

0

@Abby가 정확합니다. 데이터베이스에 요청 데이터를 저장합니다. JS SDK의 apprequest 기능에는 초대에 대한 정보가 포함 된 콜백이 있습니다. 사용자가 초대를 수락하면 데이터를 저장하고 상호 참조하십시오. 사용자가 자바 스크립트 수준의 데이터를 조작 할 수는 있지만 데이터베이스의 데이터를 위조 할 수는 없습니다. :)