2013-01-04 5 views
1

많은 자바 스크립트가 유효합니다. My DB에서 유효성 검사를하고 내 고객을 통해 업로드 할 수있는 옷 입히기 검증을 받으십시오. 따라서 주어진 Javscript가 유효한지 또는 내 페이지에서 렌더링하지 않는지 확인하고 싶습니다. MVC 3.0을 사용하고 있습니다. Razer의보기 엔진은자바 스크립트 유효성 검사

는 방법

감사에게 Ashies

+0

그것은 영어가 아주 나쁜 귀하의 질문에 대답하기는 어렵습니다. 다시 쓸 수 있습니까? – Stokedout

+2

사용자가 자바 스크립트를 업로드하게하는 것은 끔찍한 생각입니다. –

+0

@AnthonyGrist 잘 모르겠습니다.하지만 OP가 자바 스크립트가 DB에 저장되어 있으며 고객이 사용하도록 선택할 수 있다고 생각합니다.하지만 다시 한 번 !! – amelvin

답변

1

당신의 작업은 단순히 권장하지 않습니다 그것을 해결 찾는 제발 도와주세요. 데이터베이스에서 직접 JavaScript 코드를 렌더링하면 XSS 공격에 대한 문이 활짝 열려 있기 때문에 위험합니다.

그러나 예, 정상적으로 JSCint를 사용하여 JSCode의 유효성을 검사 할 수 있습니다.

Visual Studio 용 플러그인이 있으며 물론 JavaScript를 확인할 수 있도록 JSLint DLL에 포함 된 기능을 사용할 수있는 방법이있을 수 있습니다.

이 두 게시물은 당신을 "올바른 방향"으로 안내 할 수 있습니다. (나는 아직도 렌더링 사용자가 JS 코드가 근본적으로 잘못 입력 한 말을)

http://www.codeproject.com/Articles/21438/JSLint-VS-JavaScript-Verifier-for-Visual-Studio

http://blog.outsharked.com/2011/08/sharplinter-command-line-tool-for.html

+0

+1 JSLint 및 보안에 대한 좋은 점 – amelvin

0
기반으로 침묵 런타임 오류를 생성하는 너무 많은 범위가 있기 때문에

자바 스크립트 구문 검사가 까다 롭습니다 원시 (예를 들어) 처리 방법.

JSLint와 같은 인증 프로그램이 있으며 인증을위한 자체 기술을 개발할 수 있습니다.

스크립트가 완전히 실행되는 경우 body 태그에 클래스 ("scriptVerified")를 설정하는 javasript 파일 (jquery 사용)에 대해 다음 구조를 사용합니다. 스크립트가 구문 상 OK인지 빠르게 알 수 있습니다. 그러나 이벤트 처리기는 이벤트가 시작되면 여전히 잘못 될 수 있습니다.

@ AdiranSalazar의 보안 경고는 듣기에 충분합니다.

$(document).ready(function() { 
    pageScript.Init(); 
}); 

var pageScript = 
{ 
    Init: function() 
    { 
     pageScript.CleanUp(); 
     pageScript.RegisterHandlers(); 
     pageScript.Start(); 
     pageScript.Final(); 
    }, 

    CleanUp: function() 
    { 
     //put page cleanup stuff in here 
    }, 

    RegisterHandlers: function() 
    { 
     //register event handlers in here 
    }, 

    Start: function() 
    { 
     //put page js code in here 
    }, 

    Final: function() { 
     $("body").addClass("scriptVerified"); //add class to body to say this has run 
    } 
}; 
1

저는 Visual Studio 2010/2012로 작업한다고 가정합니다. 아드리안 살라로

는 말했다 :

이 당신의 작업은 간단하지 않는 것이 좋습니다. 데이터베이스에서 직접 JavaScript 코드를 렌더링하면 XSS 공격에 대한 문이 활짝 열려 있기 때문에 위험합니다.

나는 귀하의 현재 디자인을 재고하는 것이 좋습니다. 그렇게 할 계획이라면 NuGet에서 사용할 수있는 플러그인 인 Web Essentials를 살펴 봐야합니다. 이 파일에는 JSHint가 통합되어 있습니다.이 JSHint는 파일을 저장하거나 Visual Studio 내에서 응용 프로그램을 빌드 한 후에 Javascript를 확인합니다.

또한 설치 프로그램 다운로드 가능한 :

http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f

또는 2012

:

http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6

관련 문제