2012-12-14 2 views
2

사람들이 게임을 제출하고 호스트 할 수있는 간단한 html5 게임 아케이드를 만들고 싶습니다.HTML5 게임 아케이드 - 보안

게임은 브라우저에서 직접 실행됩니다. 콘텐츠가로드되면 서버에 액세스하지 않습니다. 오래된 학교의 플래시 아케이드 사이트 (Miniclip 등)와 매우 비슷합니다. 그것은 싱글 플레이어가 아닙니다.

내가 주로 게임에 액세스하는 것에 관심이있는 내용은 등록/로그인 한 사용자의 사용자 세션 데이터입니다.

제출 된 코드의 모든 라인을 감사하지 않고 보안을 유지하는 가장 좋은 방법은 무엇입니까?

현재 나는 다른 도메인 (아마도 cdn)에서 게임을 호스팅하고 iframe을 호스팅해야한다고 생각합니다.

이 방법이 유용할까요? 게임이 사용자에 대한 정보에 액세스 할 수 없도록하기 위해해야 ​​할 일이 있습니까?

+0

게임은 무엇이 될 것입니까? 클라이언트 측 코드 만? – alex

+0

당신은 더 구체적이어야 할 것입니다 - 사용자에 대한 어떤 정보에 액세스하고 싶지 않습니까? 이 게임은 사용자의 브라우저에서 실행되며, 브라우저에로드 된 다른 페이지와 동일한 액세스 권한을 사용자에게 부여합니다. – robertc

+0

안녕하세요. 질문에 감사드립니다. 메인 포스트에 몇 가지 추가 세부 정보를 추가했습니다. 기본적으로 게임은 멀티 플레이어가 아닌 브라우저에서만 사용할 수 있으며 적어도 세션 데이터/다른 사용자 특정 항목에 액세스하는 사용자를 염려합니다. – BinaryMoon

답변

2

다른 도메인의 iframe 내용이 상위 DOM에 액세스 할 수없는 경우에도 신뢰할 수없는 콘텐츠를 iframe에로드하여 사용자의 보안이 손상 될 수있는 여러 가지 방법이 있습니다.

예를 들어, iframe은 안전하지 않은 사이트로 리디렉션하거나 악성 코드를 제공하거나 iframe에 "session expired"메시지를 표시하는 등의 피싱 구성표를 사용하여 실물 크기의 로그인 양식과 함께 사용자 로그인 페이지를 도용 할 수 있습니다 암호. 이 모든 경우에 주소 표시 줄에 표시된 URL은 항상 사이트의 URL이므로 사용자는 내용이 잘못되어 문제가 발생할 경우 귀하를 비난 할 가능성이 더 큽니다.

제출 된 코드가 악의적인지 여부를 자동으로 확인하는 방법을 모르겠습니다. 내가 발견 한 코드의 효율성에 대해 매우주의해야합니다. 예를 들어 피싱 예제를 생각해보십시오. 이 경우 코드 자체에는 아무런 문제가 없습니다 (일부 게임의 경우 플레이어의 실제 로그인 양식이있을 수 있기 때문에) 실제 상황을 보여주는 로그인 문맥으로 표시됩니다. 악의적 인 사람.

+0

나는 이것이 어떤 게임 포털에서도 문제가 될 것이라고 생각한다. 공개 업로드를 허용 할 계획이 없으며, 내가 본 게임 개발자에게 연락하여 사이트에 올려 놓기 전에 게임을 호스팅하고 싶은지 물어 봅니다. 이것이 악의적 인 의도를 막지는 못하지만 잠재적 인 문제를 줄여야한다는 것을 알고 있습니다. 신뢰할 수없는 출처에서 내 사이트에 코드를 삽입하면 언제든지 문제가 발생할 수 있다는 점에 감사드립니다. 데이터를 전송할 수 없도록 특정 명령을 검색하거나 호스팅 도메인 외부의 연결을 차단할 수있는 방법이 있는지 궁금합니다. – BinaryMoon

+1

수많은 악의적 인 명령 조합이 있기 때문에 블랙리스트 작성이 효과적이지 않습니다 (난독화할 수 있음) . 대신 wepawet과 같은 일부 자바 스크립트 맬웨어 탐지 소프트웨어를 통해 코드를 실행할 수 있습니다. 나는 그것을 추측 할 수 없으므로 직접 시도하지는 않았지만 직접 ad-hoc 탐지기를 구현하는 것보다 낫습니다. – serans

+0

Serans - 그건 잘됐다, 전에는 들어 본 적이 없었다. 팁 고마워! – BinaryMoon