사람들이 JavaScript를 비활성화하는 이유는 무엇입니까?


59

어제 질문에 JavaScript 비활성화를 위해 개발해야합니까? . 컨센서스는 다음과 같습니다. 예, JavaScript Disabled를 개발해야합니다. 이제 사용자가 왜 JS를 비활성화하는지 이해하고 싶습니다. 많은 개발자 (질문에 대답 한 사람들이 개발자라고 생각합니다)가 JS를 비활성화하는 것 같습니다. 왜 그런 겁니까. 사용자가 왜 JS를 비활성화합니까? 보안을 위해? 속도? 또는 무엇을?


9
나는 당신이 일화적인 증거에 근거하여 가정을하고 있다고 생각합니다. 사실 99.7 % 사용자는 JS를 끄지 않습니다. 실제로 JS를 끄면이 사이트가 JS없이 작동하지 않기 때문에 여기서 질문에 대답하지 않았을 것입니다.
vartec

2
나는 아무도 모른다.
kirk.burleson

6
@varted, @kirk : 나는 많은 사람들을 알고 있거나 적어도 부분적으로 알고 있습니다. 예를 들어 많은 보안에 관심이있는 사람들은 허용 된 사이트에서만 JavaScript를 허용합니다. 그리고 나는 스마트 폰에서 JS를 비활성화시키는 많은 사람들이 종종 배터리를 소모 할 가치가 있다는 것을 알고 있습니다.
haylem

1
보안상의 이유로 Chrome에서 자바 스크립트가 기본적으로 사용 중지되어 있지만 가치가있는 웹 사이트에서 사용하도록 설정되어 있습니다. 많은 웹 사이트가 자바 스크립트없이 작동하지 않는 것이 정말 마음에 들지 않습니다. 전혀 작동하지 않는 웹 사이트가 점점 더 많아지고 있습니다.
Czarek Tomczak

2
@HannesKarppila 그들은 도메인 간 쿠키 및 웹 버그 추적 이미지 등을 계속 사용할 수 있습니다. 자바 스크립트 쿠키 를 비활성화하지 않으면 사용자 추적이 제대로 작동합니다 .이 경우 인터넷을 사용할 수 없습니다.
NickG

답변:


80

다음과 같은 고려 사항 때문에 브라우저 환경에서 JavaScript를 비활성화합니다.

  • 속도 및 대역폭
  • 사용성 및 접근성
  • 플랫폼 지원
  • 보안

속도 및 대역폭

많은 응용 프로그램이 자신의 이익을 위해 너무 많은 JavaScript를 사용합니다 ... AJAX 호출로 항상 새로 고치려면 인터페이스의 일부가 필요합니까? 광대역 연결과 함께 사용하면 인터페이스가 훌륭하고 빠르지 만 연결 속도를 느리게 다운 그레이드해야하는 경우보다 간소화 된 인터페이스가 선호됩니다. 그리고 JavaScript를 끄는 것은 아무 이유없이 15 초마다 세상을 상쾌하게하는 바보 같은 웹 앱을 막는 좋은 방법입니다. (페이스 북이 전송하는 데이터의 양을 살펴본 적이 있습니까? 무섭습니다. JS 관련 문제 일뿐만 아니라 그 일부이기도합니다).

또한 점점 더 많은 프로세싱을 클라이언트로 오프로드하는 경향이 있으며, 최소한의 (또는 구식 인) 하드웨어를 사용하는 경우 고통 스럽습니다.

사용성 및 접근성

모든 사용자 인터페이스가 동적 인 방식으로 표현되어야하는 것은 아니며 많은 경우 서버 생성 컨텐츠가 완벽하게 수용 될 수 있습니다. 또한 일부 사람들은 이러한 유형의 인터페이스를 원하지 않습니다. 모든 사람을 기쁘게 할 수는 없지만 때로는 모든 사용자를 만족시킬 수있는 기회와 의무가 있습니다.

마지막으로, 일부 사용자에게는 장애가 있으므로 , 절대로 무시하지 말아야합니다 !!!

제 생각에 최악의 시나리오는 UI를 "현대화"하여 대중에게 친근감있게 보이려고하지만 결국 의도 한 청중의 큰 덩어리를 남기는 정부 웹 사이트입니다. 마찬가지로, 대학생이 맹인이고 스크린 리더가 사이트를 지원하지 않거나 사이트가 너무 무겁고 특별하고 현대적인 플러그인이 필요하기 때문에 코스 내용에 액세스 할 수없는 경우 유감입니다. 2 년 전에 e-bay에서 구입 한 리퍼브 노트북에 설치하지 않거나 봄 방학을 위해 다른 국가로 귀국하여 로컬 대역폭 제약으로 인해 페이로드에 대처할 수 없기 때문에 대지.

모두가 완벽한 세상에 사는 것은 아닙니다.

플랫폼 지원

이 시점은 이전의 두 가지와 관련이 있으며 브라우저에는 이전보다 훨씬 효율적인 수준의 JavaScript 엔진이 브라우저에 내장되어 있기 때문에 오늘날에는 관련성이 적습니다.

그러나 모든 사용자에게 최신 브라우저를 사용할 권한이 있다고 보장 할 수는 없습니다 (기업 제약으로 인해 타당한 이유없이, 또는 실제로 또는 유효하지 않을 수있는 다른 이유없이 전적으로 브라우저를 지원해야 함). "Matthieu M."에서 언급했듯이 의견에 따르면 많은 사람들이 여전히 품질이 낮은 하드웨어를 사용하고 모든 사람이 최신의 최신 스마트 폰을 사용하는 것은 아니라는 점을 기억해야합니다. 현재로서는 지원이 제한된 내장 브라우저가있는 전화를 사용하는 사람들이 여전히 상당 부분 있습니다.

그러나 내가 언급 했듯이이 분야에서는 상황이 좋아집니다. 그러나 정기적으로 폴링을 계속하면 (또는 사용자가 전화 요금 청구서를 즐길 수있는 경우) 대역폭 제한에 대한 이전 사항을 기억해야합니다.

그것은 모두 매우 관련이 있습니다.

보안

브라우저 환경에서 실행되는 JavaScript를 고려할 때 특히 위험한 것은 없다고 생각할 수 있지만 이는 사실이 아닙니다.

P.SE와 SO를 방문 할 때 다른 네트워크에 로그인 한 경우 자동으로 로그인된다는 것을 알고 있습니까? 거기에 JS가 있습니다. 이 비트는 여전히 무해하지만 일부 악의적 인 사이트에서 악용 할 수있는 몇 가지 개념을 사용합니다. 웹 사이트에서 JavaScript를 사용하여 탐색 세션 중에 수행 한 작업 또는 수행 한 작업 (또는 브라우저를 종료하거나 지금 실행할 때마다 세션 데이터를 지우지 않은 경우 이전 작업)에 대한 정보를 수집 할 수 있습니다. 일반적인 시크릿 / 비공개 브라우징 모드를 광범위하게 사용한 다음 서버에 업로드하면됩니다.

최근의 주요 브라우저에서 작동하는 최근의 취약점에는 저장된 입력 양식 데이터수집 하는 기능이 포함되어있었습니다 (악의적 인 페이지에서 조합을 시도하고 가능한 각 시작 문자 조합에 대해 제안 된 텍스트를 기록하여 공격자에게 사용자에게 알려줄 수 있음) 당신이 일을하고 사는 곳 )하거나 인터넷 사용 정보 추출 및 습관 ( 이 방문한 않다면 링크의 색상을 일치하고 볼 수있는 페이지의 DOM에 링크를 주입하는 것만 큼 간단 일을 아주 영리 해킹 . 그냥 할 필요가 이것은 알려진 도메인 이름으로 구성된 충분히 큰 테이블에 있으며 JavaScript 처리 속도가 빨라지면 이러한 유형의 작업이 빠르게 완료됩니다.)

또한 브라우저의 보안 모델에 결함이 있거나 방문한 웹 사이트가 XSS 공격에 대해 충분히 보호되지 않을 경우 JavaScript를 사용하여 원격 웹 사이트에서 열린 세션을 탭할 수 있습니다.

JavaScript는 신뢰할 수있는 웹 사이트에 사용하면 대부분 무해합니다. Gmail. 페이스 북 (아마도 ... 심지어 ...). 구글 리더. StackExchange.

그러나 네, JavaScript는 그렇게 나쁘지 않습니다. 그리고 어쨌든 온라인에서 두려워해야 할 더 무서운 것들이 있습니다. EFFPanopticlick 실험에서 볼 수 있듯이 실제로 그렇게 많지 않은 경우 익명으로 생각 하는 것과 같습니다 . JavaScript를 사용하여 부분적으로 수행됩니다. 브라우저 지문을 피하기 위해 JavaScript를 비활성화해야하는 이유를 읽을 수도 있습니다 .


이 모든 것을 말하면 JavaScript 지원에 대해 신경 쓸 필요가없는 완벽한 상황이있을 수 있습니다. 그러나 공공 서비스 웹 사이트를 제공하는 경우 두 유형의 클라이언트 모두를 수락하는 것을 고려하십시오. 개인적으로, 나는 많은 현대적인 웹 응용 프로그램과 웹 사이트가 클라이언트 측에서 전혀 JavaScript가없는 이전 서버 생성 콘텐츠 모델을 사용하는 것만 큼 잘 작동한다고 생각하며 여전히 훌륭하고 덜 소비 될 것입니다.

마일리지는 프로젝트에 따라 다를 수 있습니다.


5
예를 들어, Facebook은 CPU를 크게 소모합니다. 코드가 잘못 코딩 된 (또는 보이는 것처럼 보이는) 일부 사이트를 방문한 경우 기본적으로 CPU를 완전히로드하여 컴퓨터를 정지시킵니다 (몇 개의 다른 탭이 열린 상태).
Mark C

3
@Mark C : 솔직히 웹 양식을 약간 과장하여 사용했다는 의견을 입력 할 때 "보내기"를 클릭하기 위해 140K만큼을 다시 보내는 것을 고려합니다. 그 당시에는 특정한 경우에 있었으며 그 이후로 (고맙게도) 수정되었을 수도 있습니다. 인터넷 검열에 대한 제한적 입장과 흠없는 연결성을 가진 나라에서 잠시 동안 살았으므로 좋은 텍스트 기반 웹 사이트를 훨씬 더 감사하게 만듭니다!
haylem

8
접근성을 언급 한 +1 저주받은 웹의 절반은 완전히 사용할 수 없으며, 평범한 컴퓨터 사용자도 아니고 JAWS (아직)에 의존 할 필요도 없습니다.
Stan Rogers

2
@ 스탠 로저스 : 그것은 나에게 중요합니다. 나는 대학에서 맹인과 함께 일할 기회를 가졌는데, 그는 학생이자 교사였으며, 그의 능력에 사로 잡혔습니다. 그리고 대기업과 심지어 교육 기관에서도 이러한 사용자가 제외 된 엉터리 예술 웹 사이트를 생각해내는 것이 다소 슬프다는 것을 알게되었습니다.
haylem

2
접근성을 위해 +1. 나는 건강 관리와 매우 관련이있는 사이트에서 일합니다. (고맙게도 뉴스에서 심연 한 것은 아닙니다.) JS가 우리에게주는 많은 혜택은 우리의 우선 순위에 크게 슬퍼합니다.
Katana314

46

매일 아침 재미있는 만화를 쓰도록 누군가를 신뢰하고 내 컴퓨터에서 임의의 Turing-complete 코드를 실행하도록 누군가를 신뢰하는 것은 매우 다른 두 가지 일 이기 때문입니다.


3
재미있는 비유로 +1. 튜링이 완성되었다는 사실 은 처형의 위험성과 아무 관련이 없습니다 .
haylem

4
@haylem : Turing-complete라는 것은 일반적인 경우에 기계적으로 안전하다는 것을 증명할 수 없음을 의미합니다. 도대체 영원히 실행되지 않는 것과 같은 기본적인 것들을 증명하는 것은 불가능합니다. 보다 제한적인 언어의 경우 클라이언트 브라우저에서 스크립트가 위험한 작업을 수행하지 않음을 증명할 수 있습니다.
Jörg W Mittag

22
튜링 완전성은 단지 계산 가능성에 대해. 해석 된 언어가 파일을 열거 나 HTTP 요청을 할 수 있는지 여부에 대해서는 아무 것도 말하지 않습니다. Turing-completeness의 유일한 고유 위험은 무한 루프의 가능성입니다.
dan04

@ dan04 또는 Javascript에서 브라우저 창에 투사되는 데스크톱 응용 프로그램을 실행하는 Windows를 실행하는 x86 프로세서를 에뮬레이션하려고합니다. 튜링 완성도는 무섭다
sinni800

@ dan04와 이제 cryptocoin 마이닝 봇넷 (컴퓨팅 리소스 만 필요하고 결과를 다시 보낼 수있는 기능)
user253751

16

저는 웹 개발자가 아니며 인터넷 작동 방식에 대해 어느 정도 이해하고 있습니다. 따라서 이것은 사용자 의 답변입니다 .

나는 기본적으로 볼 것이다 때 : 내 경험이 많은 사이트는 단순히 가난, 코딩 게으름 또는 무지의 여부되어 있는게 틀림 없어 정적 내 CPU 사용률이 15 % 같은 것을 증가하고, 크게 더 많은 것 같은 페이스 북 페이지로, 웹 페이지를 여러 개의 탭이 있습니다. 결국 버튼이나 링크를 클릭 한 후 응답을 기다려야하며 CPU가 과열되어 잠기 게됩니다.

이러한 최악의 범죄자 (사이트) 중 많은 부분에서 눈에 띄는 변화가없고 대화식으로 일어나는 것은 없습니다. 사이트 코드가 지속적으로 과도한 새로 고침, 폴링 및 무한 루프를 반복하고 있다고 가정 할 수있었습니다.

이로 인해 NoScript 를 설치 하여 CPU 사용량을 늘리고 브라우징이 좌절되는 것을 막았습니다.

내가 사용하는 다른 멋진 추가 기능은 FlashBlock 입니다.


Facebook은 정적 페이지를 제공하지 않습니다. Long polling 이라는 기술을 사용하여 새 알림, IM 메시지 및 뉴스 피드 항목을 확인합니다. 이 모든 것들에는 JavaScript와 어느 정도의 CPU 성능이 필요합니다.

2
@MarkTrapp 예, 정적 페이지를 엄격하게 말하지는 않지만 "기본적으로 정적 인"이유입니다. HyperPhysics는 정적 페이지가있는 사이트의 예입니다. 내가 거기 그렇지 않으면 상자가 사라지지 않을 것 그런 종류의 일을 할 필요가 아마 당신이 페이지를 새로 고칠 때까지 알림을 볼 것, 실현 하지만, 것보다 각 사이트가 자원을보다 자신을하는 데 도움이 보인다, 유사 : 교수 나 선생님이 작업을 최우선으로 생각하는 상황.
Mark C

페이스 북이 정적 페이지라고 생각하면이 질문에 대해 언급해서는 안됩니다.
Dainius

@Dainius 영어와 전문 용어를 혼동하는 것처럼 보이며 여기 논리를 따르지 않습니다. 여기서 모든 CPU 사이클로 무엇을하고 있습니까? 그게 문제 야. 어쩌면 지금은 더 나을지 모르지만 이러한 웹 사이트는 CPU 시간을 외설적으로 만드는 데 도움이됩니다.
Mark C

Mark, 당신은 webdev라고 부르고 정적 페이지와 동적 페이지는 CPU 사이클과 어떤 관련이 있습니까? 아니면 "페이스 북 페이지와 같은 기본적으로 정적 인 웹 페이지보기"가 사실이라고 생각하십니까?
Dainius

10

속도 때문에 JS를 비활성화합니다. JavaScript가없는 TechCrunch는 프라이밍 된 캐시로로드하는 데 몇 초가 걸립니다. JavaScript를 사용하면 캐시가 준비되지 않으면 거의 20 초가 걸립니다.

많은 이미지 사이트, 특히 이미지 갤러리 및 상거래 사이트가 JavaScript로 인해 부풀려졌습니다. 이를 제거하면 대부분의 경우 더 나은 탐색 환경을 제공합니다.


8

나를 위해 보안에 관한 모든 것. 나는 noscript를 사용하여 특정 웹 사이트가 자바 스크립트를 실행할 수 있도록 허용하지만 대부분은 허용하지 않습니다.

결국 당신은 위험이 어디에 있는지 절대 알지 못합니다 ( nobel 웹 사이트는 techspot.com에 감염되었습니다 ). 많은 제로 데이 (및 기타) 익스플로잇은 javascipt를 사용합니다. 이 공격 경로를 마치면 올바른 방향으로 나아가는 것처럼 느껴집니다.


1
링크를 시작하기 위해 괄호가 필요합니다. 그 사실은 지난 겨울에 야후! 스포츠 광고가 일종의 맬웨어에 감염되었거나 감염 될 수 있습니다. 우리가 머무르고있는 홈 네트워크를 관리하는 청년은 감염성 광고가있는 수많은 사이트를 차단했습니다.
Mark C

7

내 주된 이유는 그것이 가장 성가신 광고를 억제하기 때문입니다. AdBlock Plus는 내가 방문하는 사이트의 수익에 영향을 줄 수 있으므로 AdBlock Plus를 사용하지 않고 서비스 약관에서 광고를 사용 중지하지 말라고 한 사이트를 사용했습니다. NoScript는 광고의 잠재적 유해성을 제한하며 나머지 광고와 함께 기꺼이 살겠습니다.

또한 보안을 고려해야하며 광고를 판매하는 모든 사이트는 잠재적으로 적대적인 것으로 간주되므로 광고와도 관련이 있습니다.

또한 사이트를 방문하기 전에 사이트가 피할 수 있다는 것을 반드시 알 필요는 없습니다. 어떤 사람들은 사이트 링크를 보내는 것을 좋아하며 반드시 정직하지는 않습니다.


또한 신뢰할 수있는 사이트에는 XSS를 통해 또는 해킹되어 유해한 Javascript가 포함될 수 있습니다. 노벨상 사이트의 예가 떠 오릅니다.
Mnementh

4

브라우저는 JavaScript 구현 속도가 느리고 n00b 웹 디자이너가 너무 많기 때문에 버튼 롤오버와 관련이없는 항목에 사용했습니다.

최신 브라우저를 사용하는 빠른 컴퓨터에서는 올바른 사람이 항상 사용하지 않도록 설정하지 않습니다. 빠른 컴퓨터에서 최신 브라우저를 실행하기위한 자금, 욕구 또는 노하우가없는 "보안 의식이있는"사람들이 많지 않다는 말은 아닙니다 ... 최근에야 IE6가 중지 된 것입니다 인터넷에서 가장 인기있는 브라우저!


"빠른 컴퓨터에서 최신 브라우저를 실행할 수있는 자금, 욕구 또는 노하우가없는 사람들" "펀드"부분을 이해하고 동의 할 수 있습니다. "바람직한"부분으로 이해할 수 있지만, 보통 괜찮은 컴퓨터를 거부하는 것은 부과 된 제약으로 "필요한"문제 일 것입니다. 그러나 나는 실제로 "노하우"부분을 얻지 못한다. 최근 컴퓨터를 구입하지 않는 시점까지 어떻게 비 숙련 상태가 될 수 있습니까? 또는 번들 브라우저를 설치하지 않고 이전 브라우저를 사용하는 시점까지 잘못 사용 했습니까? :)
haylem

2

Javascript가 활성화되면 모든 웹 사이트가 내 컴퓨터에서 코드를 실행할 수 있습니다. 특정 웹 사이트가 코드를 실행하고 그 기능을 수행하는지조차 모르겠습니다. 더 나쁜 것은 다른 사람이 내 지식없이 코드를 일반적으로 무해한 웹 사이트 (XSS)에 삽입 할 수 있다는 것입니다. 최근에 잘 알려진 독일 컴퓨터 잡지는 기사를 만들지 않았습니다. 16 살짜리 아이는 독일에서 가장 일반적인 은행의 온라인 뱅킹 사이트를 시도했습니다. 가장 큰 것을 포함하여 그들 중 많은 사람들이 XSS에 취약했습니다. 또한 온라인 뱅킹 사이트는 대상 및 거래 금액과 같은 일부 Javascript를 실행합니다. 자바 스크립트를 사용하지 않으면 신뢰할 수있는 사이트의 컨텍스트에서 XSS 공격이 쓸모가 없으며 악성 코드를 실행하지 않습니다.

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