2011-08-23 3 views
-1

자바 스크립트에서 wcf 서비스가 많이 호출되는 곳에서 서비스 지향 애플리케이션을 사용하고 있습니다. js 파일 내부의 서비스 URL과 관련하여 암호화하거나 수행 할 수있는 방법이 있습니까? 나는 누군가가 URL을 받아 수백만의 서비스 요청을하고 서버를 다운받을 수 있음을 의미한다.서비스 URL을 js 파일에 담아

답변

1

브라우저는 전화를 만들기 위해 URL을 읽을 수 있어야합니다; 즉, 어떤 지점에서는 일반 텍스트로 사용할 수 있으므로 일반 텍스트로 악의적 인 사용자가 사용할 수 있음을 의미합니다. 여기에서 주목해야 할

두 가지 :

먼저, 자바 스크립트 코드에 민감한 정보가 전혀 없습니다. 이는 암호, 암호화 키 또는 사용자가 수행 할 권한이없는 작업을 원격으로 수행 할 수있는 정보를 의미합니다. Minification/Packing은 코드를 읽기가 더 어렵게 만들지 만 결정된 공격자는 막지 않습니다. 모든 인증 및 보안은 제어 할 수있는 측면 인 서버 측에서 수행해야합니다.

둘째, 서비스 보안이 알 수없는 URL을 사용하는 경우 you don't have security at all입니다. WCF throttling을 사용하여 DOS 공격을 방지 할 수 있습니다. 또한 방화벽은 서비스에 도달하기 전에 패킷을 삭제하여 이런 종류의 공격을 막아야합니다.

2

URL은 한 번에 또는 다른 이유로 사용해야하는 간단한 이유 때문에 디코딩되어야합니다.

디버거가 활성화 된 경우 (Chrome 또는 Firebug) 아약스 호출을 쉽게 따라 할 수 있으며 URL을 클릭하면 다시 할 수 있습니다.

js를 미니멈으로 암호화하고 나만의 minifer/packer를 조정/작성하여 밀어 넣을 수 있습니다.

보안을 유지하는 가장 좋은 방법은 백엔드 (서버)에서 호출의 유효성을 검사하는 것입니다.

정말 열심히 푸시하려면 서버 뒤의 url 부분을 암호화하고 각 호출에 대해 시드를 하위 디렉토리 (www.your.server/sha1EncodedSubUrl? prm = 1 & 등 =)로 사용할 수 있습니다.

그런 다음 서버가 URL을 디코딩하고 인코딩 된 부분을 응답 할 서버 파일에 링크/디코딩 할 수 있는지 확인해야합니다.

인코딩 된 URL에 시간을 할애하거나 세션에 연결할 수 있습니다. "편리한/예쁜 URL"수정과 같은 서버를위한 일부 모듈/플러그인이있을 수 있지만 그 모듈은 모릅니다.

또는 시드를 passthrou로 보낼 수도 있습니다 (아약스가 매개 변수로 다시 전송 함). 예에 의한 www.yourserver.com/yourAjaxResponseFile.phpjswcf?prm=1 & 등 = moar & 씨 = H48KKSJ17JU

+0

그와 같은 좋은 점이 있습니까? http://java-applets.org/json-http-compression-wcf.html – user510336

+0

나는이 것을 모른다. 그러나 모든 무료 (온라인) 것보다 비싸 보인다. [이 stackoverflow 질문] (http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript) obfuscators의 질문에 꽤 잘 커버;) – roselan

관련 문제