'자바 불법 복제'에 대해 걱정해야합니까?


11

약간의 서버 상호 작용으로 클라이언트 측 Javascript 앱을 작성하는 경우 사람들이 Javascript 파일을 자신의 사이트에 복사하지 못하게하려면 어떻게해야합니까? 내가해야합니까?

답변:


34

걱정해야합니까? 아니.

왜? 실제로 할 수있는 일은 없기 때문입니다.

어떤 사람들은 난독 화를 예측할 수 있다고 제안했습니다. 이것은 Java 및 .Net에서 작동하지만 Python, Javascript 및 Perl은 모두 일반 텍스트이므로 실제로 할 수있는 일은 거의 없습니다. 사이트의 가치는 의심 할 여지없이 서버 측이므로 Javascript에 대해 걱정하지 마십시오.


1
난독 화 된 (추측 된) 난독 화 된 Java에서 알아야 할 내용을 파악할 수 있다면 Javascript를 관리 할 수 ​​있다고 생각하며 이러한 "해킹"또는 리버스 엔지니어링 전문가는 아닙니다. "정보는 자유롭기를 열망한다"(견언 어딘가에 들었다).

2
Javascript에는 선천적 인 방어 기능이 있습니다. 서버 측 코드에 연결되어있어 액세스 할 수 없습니다. 난독 화는 위약입니다. 또한 오류 보고서를 진단하기가 더 어려워집니다. 누군가가 당신을 찢어 버릴 것이라면 (그리고 JS 코드의 가치를 과대 평가하고 있다고 생각합니다) 많은 것을 할 수 없습니다

1
그리고 멋진 트릭은 무엇입니까?

2
다운 투표는 나를 웃게 만든다. Javascript는 사이트를 향상시키는 유틸리티로 가장 적합합니다. 보호 할 가치가있는 유일한 코드는 사이트와 회사의 내부 작업에 대한 정보를 제공하는 코드입니다. 이 중 어느 것도 클라이언트 스크립트에 속하지 않습니다!

1
@Jim : 몰라요. 나는 카운트가 현재 17 upvotes, 8 downvotes라고 생각하고 매일 담당자 캡에 있기 때문에이 답변의 내 담당자는 -16입니다.

14

다른 사람이 코드를 수정하는 데 어려움을 겪을 수 있도록 코드를 난독 처리하는 것이 가장 좋습니다. 물론 원본의 사본을 보관하십시오.

보너스로, 난독 처리 된 코드는 더 작아야하므로 더 빨리로드 할 수 있습니다.


이것을 자바 스크립트 최소화라고하지 않습니까?
Jonathan Leffler

4
실제로 축소
Matt Briggs

9

왜 걱정합니까? 두 가지 이유가있을 수 있습니다. 1) 상용 JavaScript 라이브러리를 작성 중입니다. 솔루션 : 다른 사업 계획을 세우십시오. JavaScript 라이브러리는 무료입니다. 아마도 소규모 기업의 틈새 시장에서 돈을 벌 수는 있지만 어쨌든 불법 복사 코드를 사용하지 않을 가능성이 높습니다.

2) 경쟁 업체가 사이트를 복사 할 것이라고 걱정합니다. 그들이 그렇게한다면, 당신은 항상 그들보다 한 발 앞서있을 것임을 확신 할 수 있습니다. 아마도 그들은 자신의 코드를 작성하고 사이트의 모양과 행동을 복사 할 것입니다. 아마존 원 클릭 쇼핑과 같은 어리석은 소프트웨어 특허를 얻는 것 외에는 아무것도 절약 할 수 없습니다.

걱정하지 마십시오. 사람들에게 귀하의 물건을 사용하는지 알려주는 저작권 표시를합니다. 충분한 사람들이 그렇게한다면, 괴짜들 사이에서 신용을 얻기 위해 유용한 라이브러리를 만들었다는 사실을 사용하십시오. 이는 아마도 장기적으로 유익 할 것입니다.


라이브러리가 아닌 웹 응용 프로그램입니다 :). # 2 감사합니다.

6

클라이언트 측 스크립팅 언어를 "보호"하려고 시도하지 마십시오. 난독 화가 작동하지 않습니다. 축소는 그 용도가 있습니다 (그러나 불법 복제 방지는 그 중 하나 가 아닙니다 )

또한 추천 에 대해 당신이 요청에 따라 몇 가지 추가 킬로바이트가 눈에 띄는 차이가 (만 할 것이다 일 당 수천 개의 안타를 얻을하지 않는 코드를 축소에 당신은 모든 당신을 절약 할 수 올바르게 사용하고있는 이미지를 압축하면 몇 KB 이상인 경우, 캐싱을 올바르게 설정하는 등).

Javascript를 축소 / 난독 처리하더라도 사람들은 여전히 ​​자신의 사이트에이를 아주 간단하게 복사 할 수 있습니다. 수정하기가 조금 더 어려울 수 있지만 스크립트의 기능에 따라 중요하지 않을 수 있습니다. 예를 들어, 사람들이 언급 한 WMD 편집기는 공용으로 축소되어 제공됩니다.

난독 화 및 축소는 비슷할 수 있지만 코드를 제대로 난독 화하려면 이해하기 어렵도록 기본적으로 큰 세그먼트를 다시 작성해야합니다. 이렇게하면 코드가 더 복잡 하고 다루기가 훨씬 어려워집니다. 자바 스크립트가 버그가된다면, 아무도 그것을 사용하거나 훔치기를 원하지 않기 때문에 불법 복제를 막을 것입니다. 그러나, 그것은 좋지 않습니다.

Javascript의 가장 큰 장점 중 하나는 누구나 실제 코드를보고 마우스 오른쪽 버튼을 클릭하여 소스를보고 Javascript를 배울 수 있다는 것입니다. 코드를보고 복사하는 사람들이 걱정된다면 웹 / Javascript는 올바른 언어 ..

모든 .js파일과 <script>블록 의 시작 부분에 정보 (이름, 웹 사이트) 및 일종의 라이센스로 주석을 달 것을 권장 합니다. 코드의 내용에 따라 "프로젝트에서이 코드의 일부 또는 전부를 사용하는 경우 알려주십시오!"라는 알림을 표시 할 수 있습니다. "이 코드를 다른 목적으로 사용하지 마십시오!"보다 훨씬 효과적 일 수 있습니다.


4

코드를 난독 화 (또는 최소한 축소)하여 시간을 가진 사람에게는 막을 수는 없지만 (예를 들어, StackOverflow의 WMD 편집기에 대한 난독 화 (이유는 좋은 이유입니다!))

프론트 엔드를 넣는 코드는 공개되어 모든 사람이보고 사용할 수 있습니다.


WMD 편집기는 난독 처리되지 않았으며 단지 축소되었습니다.

JavaScript를 축소하면 JavaScript를 난독 처리하는 데 좋은 부작용이 있습니다 ... var va = fa (); 혼란 스러울뿐 아니라
Unkwntech

4

왜 걱정할까요? 스크립트를 훔칠 가치가있는 경우 대신 오픈 소스로 만들면 도움을받을 수 있습니다.


그 외에도 잠재적으로 신용과 좋은 PR을 얻을 수 있습니다. 이러한 것들이 기존의 비즈니스 의미에서 당신을 위해 일할 수 없다면, 다른 방법으로 당신을 위해 일할 수있는 방법을 살펴보십시오.
Jon Hopkins

4

항상 소스 코드 형식으로 제공되는 해석 언어이므로 실제로는 불가능합니다. 해적의 동기가 충분하다면 난독 화조차 도움이되지 않습니다.

(예제 : Jeff와 Dana는 의도가 좋았지 만 엄밀히 말하면 StackOverflow WMD 편집기 는 불법 복제로 간주됩니다)


4

아뇨. 전혀 걱정하지 마십시오.

비즈니스가 JavaScript 코드의 비밀에 의존하는 경우 심각한 문제가 있습니다.

그렇지 않으면 귀찮게하지 마십시오. 페이지를 더 빠르게로드하기 위해 JavaScript 코드를 최소화해야 할 수도 있습니다.


3

코드가 모두 Java로 작성되고 Java 중심 도구로 디버깅 및 테스트 될 수 있지만 릴리스를 위해 JavaScript로 변환되는 웹 응용 프로그램을 작성 하는 데 GWT (Google Web Toolkit) 를 사용합니다.

PRETTY또는 DETAILED모드에 있지 않은 경우 GWT에서 생성 한 JavaScript는 매우 최적화되고 난독 처리되므로 리버스 엔지니어링에는 매우 비실용적입니다. (전통적인 JavaScript obfuscator는 이러한 이점 중 일부를 제공하지만 최적화가 세부 분기 정리 및 코드 경로 분석을 수행하는 GWT의 기능에 의존하지 않는 경우).

즉, 난독 화에 대해 일반적으로 -1입니다. 예를 들어 합법적 인 고객은 개발 기술과 FireBug 사본이있을 때조차도 문제를 파악하는 데 도움을 줄 수 없다는 것을 의미합니다. 당신은 최초의 저자입니다-당신은 다른 사람보다 코드를 더 잘 알고 있으며, 값싼 노크를 시도하는 사람보다 경쟁 우위를 제공합니다. 또한, 그러한 경쟁 업체가 실제로 허가없이 훔친 물건에서 실제 돈을 버는 경우, 소송에서 돈을 빼앗아 갈 가능성이 있습니다. 합법적이고 진지한 경쟁은 그 길로 가지 않을 것이며 왜 다른 종류에 대해 걱정합니까?


2

우리는 웹 응용 프로그램에 많은 Javascript (및 많은 서버 측) 코드를 사용하며 공백, 줄 바꿈 등을 제거하여 Javascript를 "난독 화"하기로 결정했습니다. 이것은 실제로 코드를 보호하지는 않습니다. 그러나 읽고 이해하기가 매우 어렵습니다. 대부분의 사람들은 관련된 노력으로 인해 귀찮게하지 않을 것입니다.

그러나 우리가 그렇게하는 이유는 우리가 코드의 일부를 복사하는 것을 원하지 않기 때문에 코드를 제공하는 파트너 / 고객이 "파일"에서 직접 수정하지 못하도록하는 것입니다. 다음 업데이트가 설치 될 때 문제를 피하십시오) ...

참고 : 난독 화에는 한 가지주의해야 할 점이 있습니다. 스크립트 코드를 디버깅해야하는 경우 난독 화 된 정보를 처리 할 수 ​​없으므로 항상 '읽기'파일을 먼저 서버.


2
편집기에서 Javascript 형식을 지정하거나 많은 노력을 기울이기 위해 "예쁜 프린터"형식을 사용하지는 않습니다. 이러한 것들을 줄이면 대역폭을 줄이는 데 유용 할 수 있지만 (즉, 축소) 그게 전부입니다.

자바 스크립트 파일이 크면 많은 노력이 필요합니다. 또한 "한 줄에 모든 코드가 들어 있습니다"형식의 파일에서 "예쁜 프린터"가 제대로 작동하지 않거나 전혀 작동하지 않습니다.

1

충분히 좋은 자바 스크립트가 다른 사람들에 의해 태어날 것이라고 가정하면, 현재와 함께 수영하고 최대한 활용하는 것은 어떻습니까?

저작자 표시를 요구하면서 사용을 허가하는 라이센스를 폐기합니다. 실제로 필요한 경우 일부 Creative Commons 변형과 같은 비상업적 조항이있을 수 있습니다.


1

대부분의 응용 프로그램 논리는 서버 쪽이어야합니다. Javascript는 GUI와 서버와의 간단한 상호 작용 만 처리해야합니다. Javascript 코드에 누군가가 그것을 훔치는 것에 대해 걱정할만한 충분한 응용 프로그램 논리가 포함되어 있다면 아마도 무언가 잘못되었을 수 있습니다.


0

영업 비밀이있는 경우 코드의 가장 민감한 부분을 ActionScript (Flash)로 옮길 수 있습니다. 본질적으로 JavaScript와 동일한 언어이며 토큰 형식으로 저장됩니다.


0

결정된 하드 코어 해커가 코드를 훔치는 것에 대해 걱정이 되신다면 죄송합니다. 그러나 우연한 도둑에게는 불편하게 만드는 방법이 있습니다. 비교적 쉬운 방법은 XMLHttpRequest및 일부를 사용하여 일부 부품을로드하는 eval()것입니다. 이것은 JSON 데이터를 가져 와서 페이지를 채우는 데 사용되는 것으로 위장 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.