2013-12-12 2 views
5

나는 클라이언트가 내 서버로 보내는 것을 결코 볼 수 없도록 데이터의 클라이언트 측 암호화를 수행하는 웹 응용 프로그램을 작성하고 있습니다. 필자가 정말로 걱정하고있는 것은 제 3자가 내 JavaScript 코드에 액세스하여 내 JavaScript 파일에 백도어 또는 다른 악의적 인 코드를 추가하는 경우입니다.JavaScript가 변조되지 않았는지 확인

JavaScript가 타사 CDN에서 호스팅되는 경우가 많으므로 브라우저에서 다운로드하기 전에 JavaScript 파일이 변경되거나 변조되지 않도록하려면 어떻게해야합니까? 차라리 내 클라이언트 브라우저에서 JavaScript로 변경된 일부를로드하는 것보다 내 페이지에 큰 보안 공지가 있습니다.

정상적인 프로그램에서 파일을 디지털 방식으로 변조하여 변조되지 않았는지 확인하지만 JavaScript 파일을 다운로드하거나로드하기 전에 브라우저가 지정된 서명을 검사하는 것을 지원하지 않는다고 생각합니다. CDN에있는 파일을 호스팅하면 엄청난 보안 위험이 따릅니다. SSL은 CDN 서버에있을 때가 아니라 전송중인 파일 만 보호합니다.

+1

CDN이 해킹 된 것처럼 보이십니까? – Mathletics

+0

@Mathletics 네. 또는 CDN 제공 업체의 불량 직원이 "재미"를하기로 결정했습니다. – Cromulent

+0

두 경우 모두 새 CDN을 찾아야합니다. – Mathletics

답변

1

스크립트가 동적 인 경우가 아니면 데이터베이스에 해시를 저장하고 클라이언트 측을 비교할 수 있습니다. http://pajhome.org.uk/crypt/md5/

+0

MD5 해시의 유효성을 검사하는 데 사용하는 JavaScript가 변경된 경우 어떻게됩니까? 아무것도 신뢰하지 마라. – Cromulent

+0

@ 그들이 당신의 위조 방지법을 위조했을 경우, 당신은 우습다. 파일을 직접 제공하십시오. 자신 만의 POP를 가져 와서 섬유질을 끌어냅니다. 아무 것도 믿지 마라. – Mathletics

+2

유효성 검사 라이브러리를 직접 제공하십시오 (임베디드 JS에서와 같이). – rishta

3

변경되지 않은 상태에서 타사 CDN을 신뢰할 수 없도록하려면 HTTPS를 통해 원본 서버에서 JavaScript 콘텐츠를 직접 제공해야합니다.

해시 (@rishta's 답변)를 비교하면 페이지에서 또는 서버에서 제공하는 .js 개의 파일에서 자바 스크립트를 호스트해야하므로 클라이언트 측 암호화를 제공 할 수 있습니다. 코드를 서버에서 가져 오면 전반적인 오버 헤드가 줄어 듭니다.

관련 문제