2014-11-26 4 views
2

서버 측에서 스프링 MVC를 사용하여 클라이언트 측에서 백본 js를 사용하고 있습니다. 필자가 필요로하는 것은 기본적으로 서버 호출이 백본에서 만들어 질 때마다 보안 관점에서 금지 된 문자를 필터링하도록 요청할 때 필터를 사용하는 것입니다.백본 j의 문자 제어

나는 서버 측에 게시/호출하기 전에 호출되는 함수를 작성할 수 있지만이를 수행하는 일반적인 방법이 있는지 알고 싶습니다. 모든 서버 호출 전에 이러한 문자를 필터링/대체하는 코드를 작성할 수 있습니까?

:이 아니라 선의의 사용자를위한 (그리고 분명히 잘못된 일을하려고하는 사람을) 즐겁게 만 실패 할 경우 백엔드와 프론트 엔드에 의해 처리되어야한다는 사실에도 불구하고
+1

보안상의 이유로 어쨌든 서버 측에서 해당 문자를 필터링해야합니다. 누구나 API에 직접 요청을 보낼 수 있으므로 백본 필터를 우회합니다. – nils

+0

이미 서버 측에 역방향 프록시가 설정되어 있습니다. 클라이언트 측의 내용을 차단하여 역방향 프록시에 도달 한 다음 차단하도록하는 대신 사용자 친화적 인 인터페이스를 사용하는 것이 좋습니다. – Abby

+0

어떻게 서버에 동기화합니까? backbone.sync를 사용합니까? – nils

답변

0

, 여기에 솔루션입니다 모든 백본 요청이 Backbone.ajax를 사용 Backbone.sync 통해됨에 따라

, 단지 Backbone.ajax를 오버라이드 (override) : 내가 도왔

var ajax = Backbone.ajax; 

Backbone.ajax = function (options) { 

    // check if options.data is an object or an string; 
    var data = options.emulateJSON ? JSON.stringify(options.data) : options.data; 

    // do your sanitization here at data 
    // ... 

    // dont forget to sanitize your url options.url 
    // ... 

    options.data = options.emulateJSON ? JSON.parse(data) : data; 

    // call the original method 
    return ajax(options); 

}; 

희망을.

+0

감사합니다. 내가 백본을 처음 접했을 때, 나는 약간의 충고가 필요하다 : 1. 어딘가에서 중앙 뷰 어딘가에 이것을 유지할 수 있을까? 배포 된 웹 응용 프로그램이 있고 많은 클라이언트 응용 프로그램이 있습니다. 이걸 다시 사용하고 싶습니다. 2. 볼 때마다 오류 메시지 – Abby

+0

을 알리기 위해 오류 메시지를 사용자에게 제공 할 수 있습니까? 백본 다음에이 스크립트를 추가하면 정의에 따라 모든 모델/컬렉션에서 작동합니다. 2. 내가 제공 한 코드가 아닙니다. 답변으로 받아 들여주세요. –