2011-01-05 6 views
4

클라이언트 브라우저에서 asp.net ASP 코드를 보호 할 수있는 표준 메커니즘이 있습니까? Windows 스크립트 인코더에 대한 참조를 발견했습니다. 질문은,이 스크립트 인코더가 소스 뒤에 ASP와 코드를 모두 인코딩합니까? aspx가 Windows 스크립트 인코더로 인코딩 된 경우 클라이언트 브라우저가 어떻게이를 디코딩 할 수 있습니까? 그들은 인코딩 알고리즘을 알고 있습니까?ASP.NET HTML 코드를 클라이언트 (사용자)에게 보이지 않게 만드는 방법

또는 웹 사이트가로드되었을 때 작업 메뉴에서보기 소스 옵션을 사용 중지하도록 클라이언트 브라우저 (IE, Firefox, Chrome 등)를 제어 할 수 있습니까?

모든 포인터가 제공됩니다.

+0

좋은 질문입니다. 누군가가 어떻게 작동하는지에 대한 기본 사항을 설명하기를 바랍니다. – VoodooChild

답변

1

사용자가 서버 측 (C#) 소스를 볼 수 없습니다.
사용자가 클라이언트 쪽 (HTML & 자바 스크립트) 소스를 보지 못하게하는 것은 불가능합니다.

+0

+1 : 서버 측 (C#) 소스라고 할 때 aspx와 cs 코드를 의미합니까? – VoodooChild

+0

왜 이것을 다운 그레이드 했습니까? – SLaks

+0

@VoodooChild : 모든'.cs' 콘텐츠와'.aspx' 파일에있는 서버 측 스크립트를 의미합니다. 덕분에 – SLaks

4

웹 페이지에서 생성 된 HTML 코드는 정의되어 있습니다. 페이지를 올바르게 렌더링하려면 브라우저에서 액세스 할 수 있어야합니다. 브라우저에서보기 소스 옵션을 숨기는 안정적인 솔루션을 찾을 수 없습니다.

는 기본을 조금 설명하기 : 당신이 페이지를 만들 때

, 당신은 당신의에서 .aspx 파일의 태그와 .aspx.cs 파일에 일부 C#을 소스 코드를 작성합니다. C# 코드는 서버 사이드 코드입니다. 이는 서버에서 실행된다는 것을 의미합니다 (예 : 클라이언트의 브라우저 - 클라이언트 측에서 직접 실행되는 javascript와 반대).

페이지 요청을 실행하면 ASP.NET 엔진이 서버 측 코드를 실행하고 .aspx 페이지에 작성한 asp 태그 (예 : <asp:Button runat='server'... />)를 실행합니다. 그러면 HTML 코드가 나옵니다. . 클라이언트의 브라우저는 오직 HTML을 얻을 수

실제로 일어나는 매우 단순화 된 버전)입니다 (그것은) 페이지를 생성하는 데 사용되는 ASP를 마크 업 코드의 C# 코드도 어떤 표시되지 않습니다.

이전에 말했듯이 생성 된 HTML은 공개되며 항상 공개됩니다. 숨길 수있는 방법은 없습니다.

+0

감사합니다. 브라우저에서보기 소스 옵션을 사용하지 않도록 프로그래밍 방식으로 제어 할 수있는 방법이 있습니까? 페이지를 표시하는 데 html 코드가 필요하다는 것을 알고 있지만보기 소스 옵션을 비활성화하거나 활성화하는 방법이 있어야합니다. – Kishore

+0

@Hugo Migneron : 서버 측 코드는 C# 코드이므로 ' asp 태그 ... .aspx 페이지에서 ', 그것은 사람들이 "서버 사이드 스크립트"가 의미하는 것입니까? – VoodooChild

+0

@Hugo Migneron : 다른 질문, ASP.NET 엔진이 작동하는 것에 대한 단순화 된 답변과 관련하여 권장되는 링크는 무엇입니까? – VoodooChild

3

서버 측 코드 (예 : 코드 숨김 페이지, 컨트롤러, 도우미, < % 코드 너겟 %> 등)의 코드는 물론 웹 클라이언트에게는 보이지 않습니다.

aspx 또는보기 페이지 (예 : .aspx, .cshtml, .vbhtml) 파일은 심각한 보안 취약점이있는 경우를 제외하고는 웹 클라이언트에게 표시되지 않지만 해당 파일에 의해 생성 된 HTML은 출력되거나 참조 된 JavaScript.

클라이언트가 HTML 또는 JavaScript를 읽을 수 없으면 웹 브라우저는 어떻게 파싱 할 수 있습니까? 하나는 이론적으로뿐만 아니라 출력 된 HTML을 당황하게 할 수 마찬가지로 How can I obfuscate (protect) JavaScript?

뿐만 아니라 가능성이있을 수 있습니다 : 여기

적어도 방해하지만 완전히 소스를 볼 수있는 사용자의 능력을 제거 자바 스크립트 난독에 대한 질문입니다 어떤 일로는 반대가된다.

+0

출력 된 HTML이 난독 화되면 브라우저가 어떻게 읽을 수 있습니까? 브라우저가 구문 분석하기 전에 디코딩하는 방법을 알고 있습니까? – Kishore

+0

@Kishore : 죄송합니다. 더 구체적이어야했습니다.HTML은 사람이 읽고 이해하는 것을 어렵게 만드는 방식으로 난독 화되어야하지만 브라우저가 구문 분석하는 방식에 어떤 차이를 만들지는 않습니다. – adamjford

0

코드 숨김 코드는 렌더링 된 HTML에만 클라이언트로 전송되지 않습니다.

클라이언트가 HTML 소스를 볼 수있는 기능을 완전히 제거 할 수있는 방법이 없습니다.당신이 할 수있는 유일한 일은 HTML을 난독 화하여 그들이보고있는 것을 말하기 어렵게 만드는 것입니다.

Google 검색을 수행하면 .net에서 HTML을 난처하게하는 많은 라이브러리가 있습니다.

0
정말 혼란 스러워요

,하지만 ... 당신은 ASP.NET 마크 업에 대한에있는 경우

  1. , 당신은 페이지의 원인이됩니다 ASP.NET 페이지에 대한 요청으로 걱정할 필요가 없습니다 페이지 컨텐트를 HTML로 렌더링하는 컴파일되지 않았거나 아직 캐싱되지 않은 경우 컴파일됩니다.

  2. 코드를 탐색하는 사람들 (예 : mysite.com/SomePage.aspx.cs)에 대해 걱정할 필요가있는 경우 ASP.NET에서 해당 내용을 제공하지 않으므로 걱정할 필요가 없습니다 [표준 구성이 변경됨].

  3. FTP를 통해 코드에 액세스하는 사람들이 걱정된다면 컴파일 방법을 변경하고 소스를 배포하지 않을 것을 제안합니다.

나는 무엇이 있습니까?

+0

사용자가 aspx 페이지의 렌더링 된 HTML 코드를 볼 수 있는지 걱정됩니다. 제 질문은 브라우저에 페이지를로드하자마자 프로그래머블 코드로 브라우저에서 소스보기 옵션을 비활성화 할 수 있습니다. – Kishore

+0

제 3 점에 대해 좀 더 설명해 주시겠습니까? – Kishore

+0

웹 사이트의 출처를 보는 사람들을 막을 수 없습니다. 그리고 실제로, 그것은 정말로 중요합니까? 브라우저가 해석 할 수있는 콘텐츠, 읽기 전용 및 모든 표준을 기반으로하는 콘텐츠이므로 지적 재산권을 보호해야하는 것은 아닙니다. 포인트 3과 관련하여, 소스 코드로 프로젝트를 배치하는 대신 웹 사이트 프로젝트를 미리 컴파일 할 수 있습니다. 웹 응용 프로그램 프로젝트를 사용하는 경우 게시 옵션을 사용해야합니다 ... –

0

javascript의 관점에서 - 당신이 할 수있는 유일한 일은 누군가가 이해하려고 노력하는 데 가치가없는 정도까지 obfuscate입니다.

관련 문제