2013-02-14 1 views
1

JavaScript로 웹 응용 프로그램의 개발을 배우려고합니다.이를 위해 간단한 시간 추적 응용 프로그램을 개발하고 있습니다. 나는 UI를 동적으로 생성하기 위해 ExtJS로 이것을 개발 중이다.RIA의 JavaScript에서 역할 기반 보안

이렇게하면 직원들이 다른 프로젝트에서 작업 한 시간을 제출하고 관리자가 사용자에게 프로젝트를 추가 할 수 있습니다.

사용자가 로그인하면 역할을 결정하고 적절한 UI (JavaScript를 통해)를 제공합니다.

이 작업을 수행하는 가장 안전하고 안전한 방법은 무엇입니까? (당연히 서버 측의 인증을 확인하고있어, http get/post를 통해 PHP 서비스를 호출하면 아무도 변경할 수 없다.)

나는 권한없는 사람을 허용하지 않는 관점에서 질문한다. 자바 스크립트 (예 : FireBug 콘솔에서)를 조작하여 인증되지 않은 UI를 볼 수 있습니다.

JSONP를 통해 적절한 UI를 만들기위한 적절한 스크립트를 반환하는 서비스를 만들려고했습니다. 그것은 나에게 꽤 WTF-ey를 느낀다. 그래서 나는 더 좋은 길이 있는지 궁금하게 생각하고 있었다.

+1

질문이 너무 일반적이어서 합리적인 답을 얻지 못할 수도 있습니다. 아무도 자신을 위해 관리자 사용자 UI를 만들 수 없다는 것을 확신 할 수 있습니다. 가장 일반적인 방법은 백엔드가 모든 것을 보호하고 프론트 엔드가 고정되어 있고 누군가 UI의 비트를 다운로드하고 사용하지 못한다면 걱정할 필요가 없다는 것입니다. – naugtur

답변

2

naugtur 님의 의견을 기반으로 구축하십시오. UI 자체를 구현할 수있는 매우 현명한 사람이 있거나 UI의 일부가 수행 할 수있는 서버 호출을 위조한다고 항상 가정해야합니다.

이를 바탕으로 질문의 끝 부분에 제안한 방식의 전제는 처음부터 유감스럽게 느껴집니다. 가장 쉬운 방법은 일단 우리가 (내가 단일 페이지 응용 프로그램을 만드는 것으로 가정합니다.) 로그인 화면에서 항상 모든 자바 스크립트 코드를 덤프하고 사용자가 자신이 원하는 것을 볼 수있게하는 것입니다. 역할 (예 : 각 역할에 대해 다른 카드를 가진 카드 패널이 그 예입니다).

또한 응용 프로그램의 백엔드에 추가하고 싶습니다. 사용자가 수행중인 모든 작업에 대해 올바른 역할을 수행 할 수 있도록 항상 보안 검사를 수행해야합니다. 응용 프로그램이 인터넷을 향하고 있다면, 이것이 필수적입니다. 코드를 살펴보고 그가 악의적으로 또는 재미로 할 수있는 것을 항상 볼 수있는 사용자가있을 것입니다. 디버거를 사용하여 다양한 매개 변수로 가짜 Ajax 호출을 만듭니다.

+0

작년 큰 프로젝트에서 여러분의 요구 사항을 정확하게 수행했다고 덧붙일 것입니다. – Reimius