2014-07-22 3 views
0

다른 모델보기간에 관계를 수행하는 라우터의 일부 기능이 있습니다. 하지만 나는 내 콘솔에서 그 기능을 호출하고 내 자신을 해킹 할 수 있습니다. 어떻게 이러한 해킹을 막을 수 있습니까?레일 백본 기능을 라우터에서 해킹을 방지하는 방법

예 :

class Alfa.Routers.DropsRouter extends Backbone.Router 
    alfa: (bla) -> 
    console.log(bla*5) 

콘솔 :

router.alfa(5) 

나는 방법 메신저 괴물 특성 (건강, 강도 등을 보내는 내 실제 응용 프로그램에서 답을

25 

을 얻을 ..)를 플레이어에게주고, 플레이어는 그 몬스터 속성과의 싸움을합니다.

send_monster_to_player: (attributes) -> 
    @view = new Alfa.Views.Players.IndexView(players: @players) 
    @view.send_monster_to_current_player(attributes) 

안전하다고 느끼기 위해서? :)

답변

0

라우터를 글로벌로 표시한다고 가정합니다.

window.router = new Alfa.Routers.DropsRouter

이 작업을 수행하지 마십시오.

대신 RequireJS 또는 Browserify와 같은 AMD 로더를 사용하는 것이 좋습니다.

이것은 전역 변수 사용을 제한하는 데 도움이됩니다. 즉, 전역 변수가 전혀 노출되어 있지 않으면 콘솔에서 코드를 실행할 수 없습니다.

+0

예, 내 app/views/index에서 렌더링 될 내 window.router를 정의하고 있습니다. 따라서, 보호 받기 위해서는 RequireJS를 사용해야하며 심지어 스크립트를 사용하여 해킹을 당할 수는 없을 것입니다. :) 내보기에 나는 공격있다 : (e) -> e.preventDefault ( ) 속성 = this.model.attributes router.send_monster_to_player (속성) – mansim

+0

내 플레이어보기에서 내 괴물보기의 기능을 호출하는 방법? :) – mansim

관련 문제