2011-10-29 3 views
2

JavaScript SDK를 사용하면 사용자 동의가있는 게시물을 게시 할 수 있습니다. 그것은 클라이언트 측에서 전적으로 끝날 수 있기 때문에 누군가가 "그림", "링크", "캡션"및 "설명"과 같은 필드를 변경하여 응용 프로그램 대신 벽에 무언가를 게시하는 것을 방지 할 수 있습니까? 현상금에 대한피드 게시 보안

편집 :

자랑은 온라인 게임을 포함한 모든 게임의 필수적인 부분입니다. 내 웹 게임에서 사용자가 Facebook에서 자랑스럽게 이기고 싶어하지만, 일부 게시물을 위조하여 내 응용 프로그램을 통해 보낼 수 없도록하려면 실제로 우승하지 않고 자랑 할 수 있어야합니다. 내가 실제로 허용 한 경우에만 응용 프로그램을 통해 무언가를 게시 할 수 있습니다 (일부 인증 된 서버 측 API를 사용하여이를 보장 할 수있는 방법을 상상할 수 있음).

Facebook의 Feed Dialog을 사용하면 개발자가 벽에 무언가를 게시 할 것인지 묻는 메시지를 사용자에게 표시 할 수 있으며 사용자의 경력에 ​​맞는 스토리를 게시하는 데 사용할 수 있습니다. 문제는 그 API가 전적으로 클라이언트 측이며 Javascript SDK를 통해 또는 URL을 단조하여 사용할 수 있다는 것입니다.

문제는 내가 기존 응용 프로그램에 대한 그러한 요청을 위조 할 수 없습니다이다
https://www.facebook.com/dialog/feed? 
    app_id=123050457758183& 
    link=https://developers.facebook.com/docs/reference/dialogs/& 
    picture=http://fbrell.com/f8.jpg& 
    name=Facebook%20Dialogs& 
    caption=Reference%20Documentation& 
    description=Using%20Dialogs%20to%20interact%20with%20users.& 
    redirect_uri=http://www.example.com/response 

, :이 주어진 예처럼, URL에서 바로 필드를 작성하여 내 응용 프로그램의 이름에 게시물을 위조 할 수 있었다 Robot Unicorn Attack : Evolution입니다. 따라서 1) 1)이 애플리케이션에 대한 요청을 만드는 방법을 알지 못하고 여전히 가능하며 안전하지 못하거나 2) Facebook API의 클라이언트 측 공격을 차단하는 것이 가능하며, 내 응용 프로그램에서이 작업을 수행하는 방법.

그래서 현상금 지급을 위해 적절한 신청서를 제출할 것입니다. 1) 일부 신청서를 대신하여 게시물을 위조하는 것이 항상 가능하다는 일부 증거가 있습니다.이를 통해 내가 원하는 것을 게시 할 수있는 방법이 필요합니다. Robot Unicorn Attack : Evolution을 대신하여, 또는 2) 사용자가 내 응용 프로그램을 대신하여 피드 게시물을 위조하지 못하도록하는 방식으로 서버 측 정보 만 제공하지 않고 더 이상 할 수 없습니다.

+0

에 대화 팝업 볼을 치고 "이 게시물을 위조하는 것이 가능하다는 것을 몇 가지 증거"- 요 u는 이미 그것을 증명했습니다 – zerkms

+0

"사용자가 내 응용 프로그램 대신 피드 게시물을 위조하지 못하게하는 방법"- 응용 프로그램을 대신하여 게시하려면 정의에 의해 숨길 수없는 응용 프로그램 ID 만 있으면됩니다. 따라서 응용 프로그램을 보유하고있는 사람이라면 누구나 대신 게시 할 수 있습니다. – zerkms

+0

로봇 유니콘 공격 : Evolution을 대신해 게시하려고하면 "잘못된 요청"이 표시됩니다. 왜 내가 내 게임에서 그것을 할 수는 있지만 인기있는 게임에서는 할 수없는 이유는 무엇입니까? – lvella

답변

2

당신이 로봇 유니콘 공격 대신에 무엇을 게시 할 경우

0) 앱을 추가했는지 확인하십시오 : 진화를 다음을 수행합니다.크롬을 사용

1), (이 URL을 열기 개발자 도구

3을 캔버스 페이지의 내용)

2)의 iframe이 위의 양식 태그의 동작을 검사하여 위치한 https://s.adultswim.com/games3/fb-game-files/robotunicornattackevolution-sec/index.html로 이동) 콘솔에서이 붙여 넣기 :

FB.ui({ 
    method: 'feed', 
    name: 'There is no security', 
    link: 'https://developers.facebook.com/docs/reference/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'I can post whatever i want', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    }); 

4)를 입력하고 페이지

0

1)은 대신 일부 응용 프로그램에 게시물을 위조하고, 그에 의해 나는 로봇 유니콘 공격 대신 원하는 무엇이든 게시 할 수있는 방법을 필요로 항상 가능하다는 것을 몇 가지 증거 : 진화,

이미 완료하셨습니다. 자기 증명을 유지하십시오. 따라서 입증되었습니다.

2) 나는 더 이상 서버 측에게 정보 만하지 않고 그것을 할 수있는 방법으로, 내 응용 프로그램 대신 피드 게시물을 위조하지 못하도록하는 방법.

피드 게시물은 숨길 수없는 애플리케이션 ID입니다. 따라서 신청서를 가지고있는 한 누구든지 대신 신청할 수 있습니다. (나에 따라.)

관련 문제