2014-07-06 1 views
0

편집에서 보호하기 위해 암호가있는 Excel 파일이 있습니다.Javascript - 소스 코드보기에서 문자열 숨기기

var Book = Excel.Workbooks.Open(file,null,false,null,null,"Password"); 

문제가 있다는 것입니다 : 나는 (이 아닌 사용자가 함수에 의해 그 라인을 포함하는 기능으로 열어 편집 한 파일) 편집을 위해 엑셀 파일을 여는 자바 스크립트 페이지에 코드 줄이 사용자가 소스 코드를 보게되면 그는 암호를 알 수 있습니다. 나는이 문제에 대한이 유일한 보호,이 기능이 포함 된 외부 JS 페이지를 포함한다 :

function ExcelPassword(){ 
    return "Password"; 
} 

과에 코드의 라인을 변경

var Book = Excel.Workbooks.Open(file,null,false,null,null,ExcelPassword()); 

이 나를 위해 OK 솔루션입니다, 하지만 암호를 숨길 수있는 더 좋은 방법이 있는지 알고 싶었습니다. 아마도 간단한 일종의 encription을 사용하거나 view/download에서 외부 JS 파일을 차단할 수도 있습니다.

+2

아니요. 암호가 클라이언트 브라우저에서 사용되는 경우 사용자가 수행하는 작업과 상관없이 암호를 볼 수 있습니다. 심지어 암호화가 도움이되지 못합니다. – Hardy

+0

이 주요 목표는 무엇입니까? 먼저 js에서 비밀 번호를 제공하는 엑셀을 보호 ?? – Hardy

+0

@Hardy가 지적했듯이 클라이언트 측에서 Excel 파일을 열면 암호가 일반 텍스트 또는 암호화 된 형식으로 클라이언트 측에 있어야합니다. 소스에서 암호를 제외하려는 경우 암호를 반환하는 서버에 항상 AJAX 요청을 발행 할 수 있습니다. 이렇게하면 클라이언트 측 코드에 비밀번호가 포함되지 않지만 매우 쉽게 캡처 할 수 있습니다. Firebug 또는 모든 패킷 캡처 솔루션을 사용합니다. 또는 서버 측 암호 보호를 제거하고 보호되지 않은 Excel 파일을 제공 할 수 있습니다. – PeterK

답변

0

페이지가 클라이언트 시스템/브라우저에서로드 된 적이 있습니다. 클라이언트에서 암호를 보호 할 수 없습니다.

가장 좋은 해결책은 AJAX를 통해 서버 호출을하고 클라이언트가 편집 할 수 있도록 파일을 여는 것입니다. 이 경우 요청을 청취하고 비밀번호를 제공하는 서블릿이나 PHP 페이지를 가질 수 있습니다. 이제 클라이언트가 Excel 파일을 편집 할 수있는 권한이 있음을 나타내는 플래그를 클라이언트에 보냅니다.

다른 해결책은 암호를 해독 한 다음 사용자에게 보낼 수있는 방법입니다. 그러나 사용자가 암호 해독 메커니즘을 알게되면 암호가 쉽게 해독 될 수 있으므로이 방법이 최선의 해결책은 아닙니다.

+0

추가 정보가 추가되었습니다. 내가 언급 한 코드 행은 사용자가 아닌 js 함수로 편집 할 파일을 엽니 다. 개인 WAN에서 작업 중이므로 AJAX 또는 JQuery 또는 기타 외부를 구현할 수 없습니다. – Yoavhayun

+0

첫 번째 옵션은 개발자 도구의 네트워크 로그를보고 JS 소스 코드를 보는 것처럼 요청/응답 데이터를 쉽게 볼 수 있으므로 실행 가능한 솔루션이 아닙니다. – Lansana

+0

@ Lansana 클라이언트 측의 정보를 숨길 방법이 없습니다. 할 수있는 최선의 방법은 사용자가 추출하기 어렵도록 만드는 것입니다. –