키 포인트
오픈 소스 라이브러리의 가용성과 함께 JavaScript의 인기와 사용 편의성은 개발 잠재력을 향상 시키지만 보안 취약점의 위험을 증가시킵니다.
해석 된 기능과 JavaScript의 광범위한 사용은 보안 문제를 제시합니다. 코드는 런타임에 실행되므로 JavaScript 기반 소프트웨어를 다운로드하는 사람은 누구나 코드에 완전히 액세스 할 수 있으므로 해커에게이를 활용할 수있는 기회를 제공 할 수 있습니다.
JavaScript Obfuccation은 클라이언트 측 JavaScript 보안의 핵심 도구입니다. 여기에는 코드를 변환하고 재 배열하여 기능을 유지하면서 읽고 이해하기가 어렵고 변조 및 도난에 대한 보호 계층을 제공합니다.
올바른 난독 화 프로그램을 선택하는 것이 중요합니다. 고려해야 할 요소로는 다운로드 소스의 명성, 기존 라이브러리와의 호환성, 제공된 보호의 탄력성 및 성능 최적화 또는 방지 방지 기술과 같은 혼란 이외의 추가 기능이 포함됩니다. -
이 기사는 jscrambler에서 제공합니다. Sitepoint를 가능하게 한 파트너를 지원해 주셔서 감사합니다. -
요즘 어디로 가든 상관없이, 당신은 적어도 부분적으로 JavaScript로 만들어진 것을 볼 수 있습니다. 한 가지 이유는 JavaScript가 배우고 사용하기가 매우 쉽기 때문입니다. 또 다른 이유는 jQuery, React.js, Backbone.js, Angular.js 및 Ember.js와 같은 통합하기 쉬운 오픈 소스 라이브러리의 광범위한 가용성과 관련이 있습니다. 대체로 이것은 개발 잠재력을 크게 향상시킵니다. 훌륭한 응용 프로그램 아이디어를 가진 사람들은 그러한 아이디어를 현실로 만들기 위해 개발자 또는 개발자를 고용 할 필요는 없습니다. 물론, 이러한 개발의 용이성은 보안 취약점의 위험을 증가시킵니다. 이러한 라이브러리는 바닥에서 실제로 일어나는 일을 이해하지 않고 포함 및 사용할 수 있기 때문입니다.
JavaScript 보안 -
JavaScript 보안 측면에서 기본적으로 두 가지 사고 방식이 있습니다. 하나는 해커로부터 코드를 보호하는 것입니다. 다른 하나는 독점적 인 관점으로부터 코드를 보호하는 것입니다. -
서버 측 호스팅
. 전통적으로 코드 보호는 서버에 최대한 많은 코드를 저장하는 것을 의미합니다. 이는 코드가 스누핑으로부터 보호되고 서버를 성능이 풍부한 작업에 적용합니다. 이것은 오늘날에도 여전히 적용되지만 한 번은 솔루션과는 거리가 멀다. 서버에 코드를 저장하면 최상의 보호 기능을 제공하지만 몇 가지 단점도 있습니다. 한 가지 단점은 인터넷 연결을 강요한다는 것을 의미합니다. 이것은 항상 문제가되는 것은 아니지만 오프라인으로 작업하려는 응용 프로그램을 개발하는 경우에는 불가능합니다. 또 다른 고려 사항은 성능입니다. 서버 호출은 시간이 걸립니다. 이것은 간단한 응용 프로그램의 경우 큰 문제는 아니지만 게임과 같은 고성능 응용 프로그램의 경우 너무 많은 대기 시간이 사용자 경험을 망칠 수 있기 때문에 문제가 될 수 있습니다.
암호화가 작동하지 않는 이유 . 많은 사람들이 묻는 불가피한 질문입니다. "왜 내 파일을 암호화 할 수 없습니까?" 진짜. 문제는 그렇지 않다는 것입니다. 파일을 암호화 할 수는 있지만 브라우저에는 쓸모가 없습니다. 브라우저를 읽을 수 있도록 해독해야하므로 시작점으로 돌아갑니다.
JavaScript는 어디에나
입니다
JavaScript는 매우 강력한 언어이지만 보안 측면에서 분명한 결함이 있습니다. 해석 된 언어입니다. JavaScript 코드는 배포하기 전에 기계 코드로 컴파일되지 않지만 런타임에 실행됩니다. 물론 이것은 또한 기본적으로 JavaScript 기반 소프트웨어를 다운로드하는 거의 모든 사람들이이를 구동하는 코드에 완전히 액세스 할 수 있음을 의미합니다. 웹 브라우저의 경계 밖에서도 JavaScript가 실행될 수 있다는 사실은 단순히 많은 컴파일되지 않은 코드가 존재하기 때문에 보안이 더 중요한 주제로 만듭니다. 브라우저에서 JavaScript는 일반적으로 "샌드 박스"입니다. 즉, 약간의 결함이 없으면 시스템에 비교적 안전합니다. 그러나 PhoneGap, Cordova, Node WebKit 등과 같은 표준화 된 API가있는 많은 프레임 워크가있어 JavaScript가 기본 시스템 API와 상호 작용할 수 있습니다. 이는 JavaScript 응용 프로그램 개발자에게 유연성과 기능을 제공합니다. 예를 들어, 하드 드라이브에서 파일을 읽고 쓸 수있는 HTML5 및 JavaScript 데스크톱 소프트웨어를 작성하거나 카메라, 전화 정보, WiFi, Bluetooth 등에 대한 액세스 허용 및 GPS 등과 같은 기본 시스템 기능을 사용할 수 있습니다. 등. 이 모든 것을 함께 추가하면 잠재적 해커를위한 상당한 소스 코드 놀이터가 제공됩니다.
JavaScript 혼동의 역할은 무엇입니까?
개발자는 클라이언트 JavaScript 보안과 관련하여 100% 보호를 보장 할 수 없습니다. 즉, JavaScript 난독 화가 여기서 중요한 역할을합니다. 난독 화는 통과를 체계적으로 검사하고 코드를 변형 및 재 배열하는 과정으로, 육안으로 읽고 이해하는 것이 거의 불가능하지만 동시에 기능을 유지하는 것이 거의 불가능합니다. (참고 : 수축은 난독 화와 다르므로 최초의 코드에서 원래 코드를 쉽게 검색 할 수 있습니다.) 제한 사항에도 불구하고 서버의 모든 코드를 잠그는 것 외에도 OSTUCCATION은 JavaScript 코드를 보호하는 개발자입니다. 그러나 모든 난독 화가 실제로 코드를 보호하는 것은 아닙니다.
오른쪽 JavaScript Obfuscator 및 기타를 선택하십시오
수십 개의 난독 화 된 프로그램에 직면하여 자신에게 적합한 프로그램을 어떻게 선택합니까? 선택할 때 다음 사항을 고려하십시오. 다운로드 소스 . 아마도 가장 중요한 고려 사항은 소프트웨어를 다운로드하는 위치 일 것입니다. 이 조언은 웹에서 다운로드 한 거의 모든 것에 적용해야합니다. 항상 다운로드 소스의 명성을 확인하십시오. Peter Gramantik은 "Free Obfuscator가 항상 자유롭지 않은 이유"에서 "무료"JavaScript Oppuscator를 사용한 그의 경험을 설명합니다. 그는 코드가 난독 화 된 방법을 설명하지만 프로그램은 자체 악성 코드를 삽입합니다. 만약 그가 실제로 무슨 일이 일어나고 있는지 볼 수있는 방지 방지 코드가 없다면 결코 눈치 채지 못할 것입니다. 이야기의 의미 : 소프트웨어를 다운로드하는 위치에 대해 항상 회의적입니다.
호환성 . 다음을 찾는 가장 중요한 기능은 호환성입니다. 선택한 프로그램이 사용할 수있는 모든 라이브러리와 호환되는지 확인하십시오. 이 작업을 수행하지 않으면 출력이 더 이상 작동하지 않을 수 있으며 원하는 것보다 오류를 추적하고 수정하는 데 더 많은 시간을 소비해야 할 수도 있습니다.
기타 특징 및 유연성 . 주목해야 할 다른 것들은 당신이 선택한 프로그램이 제공 할 수있는 추가 기능과 보호의 탄력성입니다. 일부 서비스는 전문 통합 패키지에 포함되어 있습니다. 일부 서비스는 난독 화를 넘어서 추가 기능을 제공합니다! 이러한 기능을 사용하면 앱의 보호가 몇 분 안에 쉽게 반전되지 않도록 할 수 있으며 앱에서 라이센스를 시행하는 데 도움이 될 수 있습니다. 예를 들어, JavaScript Protection Company JSCrambler는 다음을 제공합니다
JavaScript Obfuscation
성능 최적화가 줄어 듭니다
DEAD 코드 삽입
함수 개요
브라우저 및 도메인 잠금
코드 기능의 만료 날짜
역동적 인 JavaScript 분석을 방지하기 위해 방지 방지 및 방지 기술을 사용하십시오.
많은 JavaScript 라이브러리와의 호환성 및 준수
JavaScript 사용의 증가는 큰 희망을 가져다 주지만 설명 적 특징과 사용량도 위험을 증가시킵니다. 그러나 비즈니스의 위험을 줄이기 위해 할 수있는 일이 많이 있기 때문에 끔찍한 일이 필요하지 않습니다. 민감한 클라이언트 측 JavaScript 코드가 있고 해당 코드가 변조되는 것을 방지하려면 필요한 추가 보안 계층을 제공하기 위해 최고의 JavaScript 보호에 투자하는 것이 좋습니다. JSCrambler에서 제공하는 콘텐츠 중 일부를 보려면 www.jscrambler.com을 방문하여 무료 평가판을 등록하십시오!
클라이언트 JavaScript 보안에 대한 FAQS
클라이언트 JavaScript와 관련된 일반적인 보안 위험은 무엇입니까? -
클라이언트 JavaScript는 여러 보안 위험에 취약합니다. 가장 일반적인 것은 공격자가 다른 사용자가 볼 수있는 웹 페이지에 악의적 인 스크립트를 주입하는 크로스 사이트 스크립팅 (XSS)과 CSRF (Cross-Site Request Grespery)로, 공격자는 피해자가 의도하지 않은 행동을 수행하도록 피해자를 속입니다. 다른 위험으로는 안전하지 않은 직접 객체 참조, 안전한 오해 및 비 검사 리디렉션 및 전달이 포함됩니다. 이러한 위험을 이해하는 것은 효과적인 안전 조치를 구현하는 데 필수적입니다.
내 JavaScript 코드를 도난 당하거나 변조하지 않도록 보호하는 방법은 무엇입니까?
JavaScript 코드 보호에는 여러 전략이 포함됩니다. 하나는 난독 화으로 코드를 이해하고 작동하기 어렵게 만듭니다. 수축 (코드에서 불필요한 문자 제거)은 또한 잠재적 인 도둑을 방지 할 수 있습니다. 또한 HTTPS를 사용하면 중간에 사람의 공격을 방지 할 수 있으며 공격자는 코드를 가로 채고 잠재적으로 변경합니다. 마지막으로, CSP (Content Security Policy)를 사용하여 스크립트를로드 할 수있는 위치를 제한하여 XSS 공격의 위험이 줄어 듭니다.
JavaScript 보안의 모범 사례는 무엇입니까?
JavaScript 보안을위한 모범 사례에는 XSS 공격을 방지하기 위해 모든 사용자 입력을 검증하고 청소하는 것이 포함됩니다. 또한 최신 보안 패치의 혜택을 받기 위해 JavaScript 라이브러리 및 프레임 워크를 업데이트하고 Snyk와 같은 도구를 사용하여 종속성의 취약점을 자동으로 확인하십시오.
고객 보호는 어떻게 작동합니까?
고객 보호에는 여러 정책이 포함됩니다. 하나는 입력 확인이며 모든 사용자 입력에서 잠재적으로 유해한 데이터를 확인합니다. 다른 하나는 출력 인코딩으로 사용자에 대한 데이터 출력이 안전하게 표시되는지 확인합니다. 또한 CSP를 사용하여 스크립트를로드 할 수있는 위치를 제어하고 HTTPS를 통해 운송 중 데이터를 보호 할 수 있습니다. 마지막으로, Snyk 또는 불완전한 도구를 사용하여 알려진 취약점을 자동으로 확인하고 보호하십시오.
2021 년에 JavaScript를 보호하기 위해 어떤 조치를 취할 수 있습니까?
2021 년에 JavaScript를 보호하려면 먼저 XSS 공격을 방지하기 위해 모든 사용자 입력을 확인하고 정리하십시오. HTTPS를 사용하여 전송중인 데이터를 보호하고 스크립트를로드 할 수있는 위치를 제어하기 위해 CSP를 구현하십시오. JavaScript 라이브러리 및 프레임 워크를 업데이트하고 Snyk 또는 Premerva와 같은 도구를 사용하여 취약점을 자동으로 확인하십시오. 또한 엄격한 스키마 및 컨텐츠 보안 정책과 같은 최신 JavaScript 기능을 사용하여 보안을 더욱 향상시킵니다.
XSS (Cross-Site Scripting) 공격을 방지하는 방법은 무엇입니까?
XSS 공격 방지에는 여러 가지 전략이 필요합니다. 하나는 입력 확인이며 모든 사용자 입력에서 잠재적으로 유해한 데이터를 확인합니다. 다른 하나는 출력 인코딩으로 사용자에 대한 데이터 출력이 안전하게 표시되는지 확인합니다. 또한 CSP를 사용하여 스크립트를로드 할 수있는 위치를 제어하여 XSS 공격의 위험을 줄일 수 있습니다. 마지막으로, Snyk 또는 Pressva와 같은 도구를 사용하여 알려진 XSS 취약점을 자동으로 확인하고 보호하십시오.
JavaScript 보안에서 HTTP의 역할은 무엇입니까?
https는 클라이언트와 서버간에 전송 된 데이터를 암호화하여 JavaScript 보안에 중요한 역할을합니다. 이로 인해 공격자가 데이터를 가로 채고 잠재적으로 변경하는 중간 공격을 방지합니다. HTTPS를 사용하는 것은 JavaScript를 사용하는 것뿐만 아니라 모든 웹 응용 프로그램에 대한 모범 사례입니다.
CSRF (Cross-Site Request Prospory) 공격을 방지하는 방법은 무엇입니까?
CSRF 공격 방지에는 여러 전략이 필요합니다. 하나는 항 -CSRF 토큰을 사용하는 것입니다.이 토큰은 각 사용자 세션과 관련된 고유 한 임의 값입니다. 이 토큰은 모든 상태 변경 요청에 포함되며 서버는 사용자 세션과 일치하는지 확인합니다. 또 다른 전략은 Samesite 쿠키 속성을 사용하는 것입니다.이 속성은 브라우저가 쿠키를 크로스 사이트 요청과 함께 전송하는 것을 방지합니다.
JavaScript 보안에서 CSP (Content Security Policy)의 역할은 무엇입니까?
CSP는 브라우저가 유효한 실행 가능한 스크립트 소스로 고려해야 할 도메인을 지정할 수있는 보안 기능입니다. 이는 공격자가 악의적 인 스크립트를 웹 페이지에 주입하기가 더 어렵 기 때문에 XSS 공격을 방지하는 데 도움이됩니다. CSP 구현은 JavaScript를 사용하는 응용 프로그램뿐만 아니라 모든 웹 응용 프로그램에 대한 모범 사례입니다.
내 JavaScript 라이브러리와 프레임 워크가 안전한 지 확인하는 방법은 무엇입니까?
최신 보안 패치의 혜택을 받기 위해 정기적 인 업데이트를 포함하여 JavaScript 라이브러리 및 프레임 워크가 안전해야합니다. 또한 Snyk 또는 불완전한 도구를 사용하여 종속성의 취약점을 자동으로 확인하십시오. 마지막으로, 새로운 취약점이 코드에 도입되는 것을 방지하기 위해 안전한 코딩 모범 사례를 따르십시오.
위 내용은 클라이언트 측 JavaScript 보안의 중요성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!