2012-09-26 6 views
2

자바 스크립트에서 클라이언트 측의 보안을 절대로해서는 안된다는 것을 이해하면된다. 내 질문은 일부 사용자는 볼 수 있지만 다른 사용자는 볼 수없는 UI를 나타냅니다. 일반적으로이 UI에는 일종의 논리가 결합되어 있습니다. Backbone이든 Ember이든 관계없이 사용자 역할에 따라 UI의 다른 부분을 표시하거나 숨기는 일반적인 방법은 무엇입니까?한 페이지에 UI 보안하기

내 생각은 현재 로그인 한 사용자에 따라 다른 js를로드하는 것이 었습니다. 또한 뷰 템플릿을 비동기 적으로로드하는 것도 마음에 들었습니다. 나는 다른 생각과 패턴을 듣고 싶습니다. 클라이언트가 통신하는 백엔드 API가 주어진 사용자에 대해 이미 안전하다고 가정합니다. 따라서 보안 UI 구성 요소를 보더라도 제대로 작동하지 않습니다.

+1

무엇을 하든지 백엔드는 전화를 걸 수있는 권한이 있는지 확인하기 위해 유효성 검사를 수행해야합니다. – epascarello

+0

예 실제로 백엔드에서 보안을 설정하고 유효성을 검사합니다. UI 구성 요소를 안전하게 표시하거나 표시하지 않는 것입니다. js 콘솔을 가진 누군가가 뷰를 렌더링하기 위해 몇 개의 부울을 뒤집을 수 없기 때문에 뷰가 서버에서 전달되지 않아 중요한 데이터를 포함하지 않아도 볼 수 없어야합니다. – digitaltoad

+0

하지만 부울을 뒤집 으면 백엔드에서 데이터를 프런트 엔드에 공급해서는 안되므로 중요하지 않습니다. 일례로, 백엔드가 요청을 허용하지 않기 때문에 계정을 삭제할 수 없습니다. 기본 클래스에서 확장하도록 코드를 코딩하면 다른 JavaScript 파일을 추가하기 만하면 다른 코드에 관리 기능을 추가하기가 어렵지 않습니다. – epascarello

답변

0

실제로 이것이 보안 질문 인 경우 잘 모르겠습니다. 보안은 어쨌든 서버에 의해 처리됩니다. 그것은 당신의 응용 프로그램이 다른 모드를 가질 때 자바 스크립트를 구성하는 방법과 관련이 있습니다.

나는 두 가지 모드에 대해 완전히 다른 자바 스크립트 파일 세트를 갖는 것이 좋지 않을 것이라고 생각합니다. 데이터와 기능을 분리하고 각 모드에서 다른 데이터를 제공해야합니다. 나는. 메뉴가있는 경우 모든 메뉴 항목을 하드 코딩하지 말고 서버에 대한 ajax 호출을 수행하고 메뉴 항목을로드하십시오. 서버가 사용자 권한에 따라 다른 메뉴 항목을 제공하게하십시오.

일부 기능은 물론 관리 모드에서만 관련이 있습니다. 이 파일을 별도의 파일에 저장하는 것이 좋습니다.

관련 문제