2017-04-23 1 views
0

HTML5 코드는 '요소 검사'를 통해 쉽게 보거나 '소스'에서 가져올 수 있습니다.웹 응용 프로그램 코드를 완전히 숨길 수있는 방법이 있습니까?

웹 응용 프로그램의 코드를 클라이언트 측에서 브라우저에서 완전히 숨길 수있는 방법이 있는지 궁금합니다.

모든 언어를 환영하므로 Java 애플릿과 같은 내장 응용 프로그램을 사용할 수 있습니다. 이 문제에 접근 할 수있는 영리한 방법이 있습니까?

+1

백 엔드 코드 예. 프론트 - 엔드 코드 번호. 그러나 프런트 엔드 코드를 이해하기 어렵게 만드는 방법 (축소, 난독 화 등)이 있습니다. –

답변

2

웹 응용 프로그램 프레임 워크 중심의 서버 측을 사용하여 angel이라는

같은 비즈니스 로직은 프레임 워크가 자동으로 HTML, CSS, 자바 스크립트, DOM, AJAX 발생하면서 완전히 자바로 작성된 서버에 살고 Vaadin로, 웹 브라우저에서 프리젠 테이션에 필요한 WebSocket 코드는 중요한 코드를 많이 마스킹합니다.

모든 사용자는 자동으로 생성 된 HTML과 자바 스크립트 등을 볼 수 있지만 그다지 의미는 없습니다.

해커는 클라이언트 측 코드를 조작 할 수는 있지만 많은 일을하지는 않습니다. 예를 들어 해커가 의도하지 않은 다른 항목을 추가하기 위해 팝업 메뉴에서 값을 정의하는 HTML/JavaScript를 변경할 수 있습니다. 그러나 서버의 Java 코드는 예기치 않은 값을 확인하고 오류를 처리하거나 Exception을 throw 할 수 있습니다.

그리고 Vaadin은 클라이언트와 서버가 "동기화되어"있는지 확인하기 위해 무결성 검사를 수행합니다. 클라이언트 측 코드를 해킹하면 빠르게 동기화되지 않을 수 있습니다.

1

프론트 엔드 코드를 완전히 숨길 수는 없습니다. 왜냐하면 사용자의 브라우저가 코드를 읽고 실행할 수 있어야하기 때문입니다. 이 문제는 웹에만 국한되지 않습니다. 네이티브 바이너리도 disassembler으로 검사 할 수 있습니다. 사용자의 CPU가 코드를 해석 할 수 있어야하므로 충분히 숙련 된 공격자도 코드를 해석 할 수 있습니다.

즉, 코드를 모호하게 만들면 읽는 것이 더 어려워 질 수 있습니다. JavaScript는 주로 성능 향상을 위해 제작되기 전에 축소됩니다. 이것은 또한 덜 숙련 된 또는 덜 동기 부여 된 공격자로부터 보호하기 위해 기능을 모호하게하는 기본 수준을 제공합니다. Google's list of minifiy resources을 시작하는 것이 좋습니다.

관련 문제