2011-06-13 4 views
6

Minify를 사용하여 모든 스크립트 요청을 축소하고 캐시합니다. 사용자가 자바 스크립트 파일의 축소판에 액세스 할 수 있도록하고 싶습니다.JavaScript 파일에 대한 직접 액세스를 차단하려면 어떻게해야합니까?

미니 값은 www.example.com/min이고 스크립트는 www.example.com/scripts입니다. 어떻게 내내 직접적인 액세스를 차단할 수 있습니다 내 unimified 자바 스크립트 파일이 거짓말. 차라리 문서 루트에서 제외시키지 만 옵션 일뿐입니다.

젠드 프레임 워크를 사용하고 있으므로 내 응용 프로그램의 실제 루트가 www.example.com/public으로 변경되었습니다. htaccess 파일이 다시 쓰기를 처리합니다.

+1

해결해야 할 직접 액세스를 방해하는 문제는 무엇입니까? –

+0

(대부분 다른 사람들처럼) 내 unminfied JavaScript 코드에 주석을 포함합니다. 수동으로 코드 배포를 축소하고 올바른 버전을 업로드했는지 확인하는 것이 쉽지 않습니다. 이 작업을 자동으로 수행하려면 Minify를 사용하지만 아직 버전은 아직 공개되지 않았습니다. –

답변

9

당신은 HTTP를 통해 .js 파일을 웹을 통해 모든 액세스를 방지하기 위해 doc_root/scripts 내부에 htaccess로 파일을 사용할 수 없습니다?

간접적 인 액세스를 제공하므로 축소를 멈추지 않습니다. 그래서 doc_root/scripts/.htaccess에서

,

<Files ~ "\.js$"> 
    order allow,deny 
    deny from all 
</Files> 

주의 라인을 따라 뭔가가이 경우에 .htaccess 파일 문제의 위치.

+0

감사합니다. 다시 쓰기 규칙이 적용되었습니다. 그래서 그렇게하면 받아 들일거야. –

4

귀하는 효과적으로 최종 사용자 직면 한 코드를 차단할 수 없습니다. PHP 나 다른 서버 측 언어로 서비스를 제공하고 직접 요청을 차단했다 할지라도 여러 도구를 사용하여 직접 읽을 수 있습니다.

는 당신은 염두에두고 코드와 자바 스크립트 의견, 비즈니스 지식을 염두해야한다

UPDATE : 당신이 코드에 대해 이야기하는 경우

그러나, 지금까지 할 필요는 없습니다 그 최종 사용자가 액세스하는 경우 서버 루트 밖으로 이동 시키거나 디렉토리 (또는 전체 디렉토리)의 파일을 차단할 수 있습니다. 아파치의 .htaccess로 쉽습니다.

.htaccess 파일에서 mod_rewrite를 사용하여 소스 파일을 축소 버전으로 리디렉션 할 수도 있습니다.

RewriteEngine On 
RewriteRule /scripts/(.*)$ /min/$1 [L,NC] 
+0

나는 그 (것)들에 관하여보다 적게 걱정 된 버전에 그들의 손을 얻는 것을 걱정할 수 있었다. 나는 충분히 결정된 사람이 그것들을 이해할 수 있음을 안다. 나는 차라리 저의 비공식 코드에서 주석을 보지 않을 것입니다. –

+0

오, 잘못 읽었습니다. 축소 된 파일이 아니라 소스 파일을 차단하기 만하면됩니다. 내 대답을 업데이트 할게. – dtbarne

+1

그런 다음 공개되지 않은 원본 버전을 공개적으로 액세스 할 수있는 영역에 저장하지 마십시오. 그것들을 문서 루트 바깥으로 옮긴다. 그렇게 할 수 없다면, "추측 할 수없는"서브 디렉토리에 넣고 공개 페이지에서 그것을 참조하지 말라. –

0

사용중인 서버에 따라 다릅니다.

0

유일한 방법은 리퍼러를 확인하는 것입니다 ..

<Directory ~ "\scripts"> 
Order allow,deny 
Deny from all 
</Directory> 

또는 그 효과에 뭔가, 그리고 모든 사람이 그들을 보내거나 진짜를 보냅니다은 아파치의 가정, 당신은 당신의 .htaccess 파일에 다음을 추가 할 수 있습니다 하나. 다시 말해, 뭔가를 원하는 사람에게 직접 액세스를 차단할 수는 없습니다. 요청이 직접 요청이거나 <script src=....> 유형 요청을 통해 완료된 경우 100 %의 정확도로 결정하는 것은 불가능합니다.

0

실제로 사용자의 브라우저를 실행하는 자바 스크립트는 궁극적으로 그것을 읽을 수 있어야합니다. 스크립트 폴더에 대한 액세스를 "차단"하는 실제적인 방법은 없습니다. 브라우저에서 파일을 볼 수 없으므로 웹 사이트가 손상 될 수 있습니다.)

하나의 솔루션은 자바 스크립트 코드를 읽기/이해하기가 어려워 지지만 궁극적으로 사용자가 코드를 보게 될 수 있으며 인내심을 가진 리버스 엔지니어링으로 인해 난독 화 될 수 있습니다.

다른 사람이 한 일은 "빈"js.html 페이지를 만들고 페이지의 스크립트 태그에 자바 스크립트를 삽입 한 다음 (외부 포함하지 않음) 그의 메인 페이지에서 ann ajax 요청을 작성하는 것입니다. js.html로 이동하여 페이지 맨 아래에 삽입하십시오. 일종의 라운드가 있지만 파이어 버그와 같은 개발 도구를 사용하지 않는 한 사용자는 소스를 볼 때 j를 볼 수 없습니다.

마지막 옵션을 사용하면로드중인 코드의 양에 따라 지연이 발생할 수 있습니다. 하지만 여기서 중요한 점은 스크립트에 대한 액세스를 차단하는 것이 아니라 읽기/복사를 어렵게 만드는 것입니다.

편집 : 죄송합니다. 이 경우 가장 좋은 해결책은 모든 액세스를 거부하는 스크립트 폴더의 htaccess 파일로 이동하는 것일 것이라고 생각합니다.

+0

제 설명을 참조하십시오. –

관련 문제