브라우저 개발자 도구를 비활성화하는 방법은 무엇입니까?
웹 응용 프로그램을 개발 중이며 그 아래에있는 데이터베이스에 액세스 할 수 있으므로 Safari, Chrome, Firefox 및 Internet Explorer 및 Firefox 및 모든 유사한 응용 프로그램의 Firebug에서 개발자 도구를 비활성화 할 수있는 기능이 필요합니다. 이를 수행하는 방법이 있습니까?
참고 : 데이터베이스에서 제공하는 AJAX 프레임 워크는 데이터베이스에 제공된 모든 항목이 수정 가능한 웹 매개 변수에 있어야하며 반환되는 모든 항목은 JavaScript에서 처리되어야합니다. 따라서 사용자가 웹 사이트의 특정 부분에 액세스 할 수 있는지 여부와 같은 값을 반환 할 때 JavaScript로 처리해야하며 개발자 도구는 어쨌든 액세스 할 수 있습니다. 그래서 이것은 필수입니다.
업데이트 : 여전히 내가 나쁜 가정을하고 있다고 생각하는 사람들을 위해 공급 업체에 문의했습니다. 다음은 그들의 응답입니다.
다음은 위험을 완화하는 방법에 대한 몇 가지 제안입니다.
1) javascript Obfuscator를 사용하여 코드를 난독 화하고 판매 된 애플리케이션에 난독 화 된 버전 만 제공합니다. 편집 할 수 있도록 난독 화되지 않은 버전을 유지하십시오. 다음은 온라인 난 독기입니다. JavaScript를 난독 화 (보호)하려면 어떻게해야합니까? http://en.wikipedia.org/wiki/Obfuscated_code http://javascriptobfuscator.com/default.aspx
2) 덜 설명적인 이름을 사용하십시오. 아마도 'security.js'대신 'repeatedtasks.js'를 'security.js'로 사용하면 이러한 유형의 정보를 중요한 것으로 보는 사람에게 더 두드러 질 것입니다.
당신은 이것을 할 수 없습니다 .
개발자 메뉴는 클라이언트 측에 있으며 사용자 브라우저에서 제공합니다.
또한 브라우저 개발자는 서버 측 데이터베이스 코드와 관련 이 없어야 하며 만약 그렇다면 약간의 구조 조정이 필요합니다.
프레임 워크에서 클라이언트에서 인증을 수행해야하는 경우 ...
프레임 워크를 변경해야합니다.
신뢰할 수없는 사용자가 액세스 할 수있는 애플리케이션을 야생에 배치하면 모래에 선을 그려야합니다.
- 귀하가 소유 한 물리적 하드웨어 강력한 문 뒤에 잠글 수 있습니다. 여기서 원하는 것은 무엇이든 할 수 있습니다. 이것은 데이터베이스를 유지하고 권한 부여 기능을 수행하여 누가 데이터베이스로 무엇을 할 수 있는지 결정하기에 좋은 장소입니다.
- 다른 모든 것; 클라이언트 컴퓨터의 브라우저 포함 휴대 전화; 사무실 로비에있는 편의 키오스크. 당신은 이것을 믿을 수 없습니다! 이제까지! 당신이 할 수있는 일이 없다는 것은이 기계들이 당신과 당신의 고객을 돈에서 속이는 거짓말이 아니라는 것을 완전히 확신 할 수 있다는 것을 의미합니다. 당신은 그것을 통제하지 않으므로 무슨 일이 일어나고 있는지 알기를 희망 할 수 없습니다.
실제로 이것은 어떻게 든 가능하지만 ( how-does-facebook-disable-developer-tools ) 이것은 데이터를 보호하는 데 매우 나쁜 생각입니다. 공격자는 항상 사용자가 제어 할 수없는 다른 (개방형, 자체 작성) 엔진을 사용할 수 있습니다. 자바 스크립트 난독 화조차도 앱의 크래킹 속도를 늦출 수 있지만 실제로는 보안을 제공하지 않습니다.
데이터를 보호하는 유일한 합리적인 방법은 서버 측에 보안 코드를 작성하는 것입니다. 그리고 누군가가 데이터를 다운로드 할 수 있도록 허용하면 원하는 모든 작업을 수행 할 수 있습니다.
당신의 개발 환경이 이렇게 뇌사를 당할 리는 없습니다. 그럴 수 없습니다.
상사에게 다음과 같이 이메일을 보내는 것이 좋습니다.
- 훈련 / 학습 일정에서 1 ~ 2 주 요구.
- 서버 측 유효성 검사를 수행하는 방법을 알아 내기 위해 공급 업체에 충분한 지원 티켓이 필요합니다.
- 도구가 서버 측 유효성 검사를 수행 할 수없는 경우 전체 데이터베이스가 유출 / 파괴 될 때 월스트리트 저널의 첫 페이지에서 놀림 을 받게 될 것이라는 명확한 경고입니다 .
아니요. 최종 사용자를 위해 개발자 도구를 비활성화 할 수 없습니다.
사용자가 개발자 도구에 액세스 할 수있는 경우 애플리케이션이 안전하지 않은 경우에는 단순히 안전하지 않은 것입니다.
Fiddler 와 같은 도구를 잊지 마세요 . 모든 브라우저의 콘솔을 잠그더라도 HTTPS를 사용하더라도 클라이언트에서 http 요청을 수정할 수 있습니다. Fiddler는 브라우저에서 요청을 캡처하고 사용자가이를 수정하고 악의적 인 입력으로 재생할 수 있습니다. AJAX 요청을 보호하지 않는 한이 작업을 수행하는 방법을 알지 못합니다.
브라우저에서받은 입력을 신뢰하지 마십시오.
이 답변이 게시되었을 때 (2015) 업데이트되었을 때이 트릭이 가능했습니다. 이제 (2017) 브라우저는 성숙되었습니다. 다음 트릭이 더 이상 작동하지 않습니다!
네 가능합니다. Chrome은 모든 콘솔 코드를
with ((console && console._commandLineAPI) || {}) {
<code goes here>
}
... 그래서 사이트 console._commandLineAPI
는 던질 것을 재정의 합니다.
Object.defineProperty(console, '_commandLineAPI',
{ get : function() { throw 'Nooo!' } })
이것이 주요 트릭입니다!
다음을 정의하여 개발자 도구를 쉽게 비활성화 할 수 있습니다.
Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })
여기에서 찾았습니다. Facebook은 브라우저의 통합 개발자 도구를 어떻게 비활성화합니까?
Brandon,
이런 식으로 할 수 있습니다. 이것은 매우 기본적인 아이디어입니다. 이렇게하면 네이티브 코드를 재정의 할 수 있습니다. 이것은 정확히 찾고있는 것이 아닙니다. 여기에서 개발했습니다.
delete window.console
console.log('test'); // Noting will work
참고 URL : https://stackoverflow.com/questions/7559409/how-to-disable-browser-developer-tools
'program tip' 카테고리의 다른 글
rmagick 설치 오류 : 오류 : gem 기본 확장을 빌드하지 못했습니다. (0) | 2020.12.06 |
---|---|
Swift에서 Double 및 Float의 최대 값을 찾는 방법 (0) | 2020.12.06 |
추가 설정 여부 확인 (0) | 2020.12.06 |
퍼블릭 IP를 통해 EC2 인스턴스의 사이트에 액세스 할 수 없습니다. (0) | 2020.12.06 |
Python : MySQLdb 및 "라이브러리가로드되지 않음 : libmysqlclient.16.dylib" (0) | 2020.12.06 |