Tại sao mọi người vô hiệu hóa JavaScript?


59

Tôi đã hỏi một câu hỏi ngày hôm qua Tôi có nên làm phiền để phát triển cho JavaScript bị vô hiệu hóa không? . Tôi nghĩ rằng bản phối hợp là: Có, tôi nên phát triển cho JavaScript bị vô hiệu hóa. Bây giờ tôi chỉ muốn hiểu tại sao người dùng vô hiệu hóa JS. Có vẻ như nhiều nhà phát triển (tôi đoán những người trả lời các câu hỏi là nhà phát triển) vô hiệu hóa JS. Tại sao vậy. Tại sao người dùng vô hiệu hóa JS? Vì an ninh? Tốc độ? hay cái gì?


9
Tôi nghĩ rằng bạn đang đưa ra các giả định dựa trên bằng chứng giai thoại. Thực tế là, 99,7% người dùng không tắt JS. Trên thực tế, nếu họ thực sự sẽ tắt JS, họ sẽ không trả lời câu hỏi ở đây, vì trang web này không hoạt động nếu không có JS.
vartec

2
Tôi không biết ai làm thế.
kirk.burleson

6
@varted, @kirk: Tôi biết rất nhiều người làm, hoặc ít nhất là một phần. Chẳng hạn, nhiều người có ý thức bảo mật sẽ chỉ cho phép JavaScript trên các trang web mà họ đưa vào danh sách trắng. Và tôi biết rất nhiều người vô hiệu hóa JS trên điện thoại thông minh của họ vì nó thường có giá trị pin cạn kiệt.
haylem

1
Theo mặc định, tôi đã tắt javascript trong Chrome vì lý do bảo mật, mặc dù tôi kích hoạt nó cho các trang web đáng giá. Tôi thực sự không thích rằng rất nhiều trang web không hoạt động mà không có javascript, ngày càng có nhiều trang web không hoạt động.
Czarek Tomczak

2
@HannesKarppila Họ vẫn có thể sử dụng cookie tên miền chéo và hình ảnh theo dõi lỗi web, v.v. Theo dõi người dùng hoạt động tốt trừ khi họ vô hiệu hóa javascript cookie, trong trường hợp internet khá khó sử dụng.
NickG

Câu trả lời:


80

Người ta vô hiệu hóa JavaScript trong môi trường trình duyệt vì những cân nhắc sau:

  • Tốc độ và băng thông
  • Khả năng sử dụng và khả năng truy cập
  • Hỗ trợ nền tảng
  • Bảo vệ

Tốc độ và băng thông

Rất nhiều ứng dụng sử dụng quá nhiều JavaScript cho mục đích riêng của chúng ... Bạn có cần các phần của giao diện của mình để được làm mới bằng các cuộc gọi AJAX mọi lúc không? Có thể giao diện của bạn cảm thấy tuyệt vời và nhanh chóng khi được sử dụng với kết nối băng thông rộng, nhưng khi bạn phải hạ xuống tốc độ kết nối chậm hơn, giao diện hợp lý hơn sẽ được ưu tiên. Và tắt JavaScript là một cách tốt để ngăn chặn các ứng dụng web ngu ngốc làm mới thế giới cứ sau 15 giây hoặc không có lý do chính đáng. (Bạn đã bao giờ nhìn vào lượng dữ liệu mà Facebook gửi qua chưa? Thật đáng sợ. Mặc dù vậy, đây không chỉ là vấn đề liên quan đến JS mà còn là một phần của nó).

Chúng tôi cũng có xu hướng giảm tải ngày càng nhiều việc xử lý cho khách hàng và nếu bạn sử dụng phần cứng tối giản (hoặc chỉ lỗi thời), điều đó sẽ rất chậm.

Khả năng sử dụng và khả năng truy cập

Không phải tất cả các giao diện người dùng nên được thể hiện theo kiểu động và nội dung do máy chủ tạo có thể được chấp nhận hoàn toàn trong nhiều trường hợp. Ngoài ra, một số người đơn giản là không muốn loại giao diện này. Bạn không thể làm hài lòng tất cả mọi người, nhưng đôi khi bạn có cơ hội và nghĩa vụ làm hài lòng tất cả người dùng của bạn.

Cuối cùng, một số người dùng bị khuyết tật, và bạn sẽ không bỏ qua chúng , bao giờ !!!

Theo tôi, các tình huống xấu nhất ở đây là các trang web của chính phủ cố gắng "hiện đại hóa" UI của họ để xuất hiện thân thiện hơn với công chúng, nhưng cuối cùng lại để lại một lượng lớn khán giả dự định của họ. Tương tự, thật đáng tiếc khi một sinh viên đại học không thể truy cập nội dung khóa học của anh ấy: bởi vì anh ấy / cô ấy bị mù và trình đọc màn hình của anh ấy không hỗ trợ trang web, hoặc vì trang web quá nặng và yêu cầu các trình cắm hiện đại đặc biệt Anh ấy / cô ấy không được cài đặt trên chiếc máy tính xách tay đã được tân trang đó đã mua trên e-bay 2 năm trước, hoặc một lần nữa bởi vì anh ấy / cô ấy trở về nhà ở một quốc gia khác để nghỉ xuân và những hạn chế về băng thông địa phương không thể đối phó với tải trọng của Địa điểm.

Không phải ai cũng sống trong một thế giới hoàn hảo.

Hỗ trợ nền tảng

Điểm này liên quan đến 2 cái trước và có xu hướng ít liên quan hơn hiện nay, vì các trình duyệt nhúng các công cụ JavaScript có mức độ hiệu quả hơn so với trước đây và điều này tiếp tục tốt hơn.

Tuy nhiên, không có gì đảm bảo rằng tất cả người dùng của bạn đều có đặc quyền sử dụng các trình duyệt hiện đại (vì các ràng buộc của công ty - điều này buộc chúng tôi phải hỗ trợ các trình duyệt trước đây mà không có lý do chính đáng - thực sự - hoặc các lý do khác có thể hoặc không hợp lệ). Như được đề cập bởi "Matthieu M." trong các bình luận, bạn cần nhớ rằng rất nhiều người vẫn sử dụng phần cứng chất lượng thấp hơn và không phải ai cũng sử dụng điện thoại thông minh mới nhất và tuyệt vời nhất. Cho đến ngày nay, vẫn còn một phần đáng kể người sử dụng điện thoại có trình duyệt nhúng với sự hỗ trợ hạn chế.

Nhưng, như tôi đã đề cập, mọi thứ trở nên tốt hơn trong lĩnh vực này. Nhưng sau đó, bạn vẫn cần nhớ các điểm trước về giới hạn băng thông nếu bạn tiếp tục bỏ phiếu thường xuyên (hoặc người dùng của bạn sẽ được hưởng hóa đơn điện thoại đẹp).

Tất cả đều rất liên quan đến nhau.

Bảo vệ

Mặc dù rõ ràng bạn có thể nghĩ rằng không có gì đặc biệt nguy hiểm có thể được thực hiện với JavaScript khi xem xét nó chạy trong môi trường trình duyệt, nhưng điều này là hoàn toàn sai sự thật.

Bạn có nhận ra rằng khi bạn truy cập P.SE và SO, bạn sẽ tự động đăng nhập nếu bạn đã đăng nhập vào bất kỳ mạng nào khác, phải không? Có một số JS ở đó. Mặc dù vậy, bit đó vẫn vô hại, nhưng nó sử dụng một số khái niệm có thể được khai thác bởi một số trang web xấu. Một trang web hoàn toàn có thể sử dụng JavaScript để thu thập thông tin về một số điều bạn làm (hoặc đã làm) trong phiên duyệt web của bạn (hoặc những điều trước đây nếu bạn không xóa dữ liệu phiên của mình mỗi khi bạn thoát khỏi trình duyệt hoặc chạy ngay bây giờ chế độ duyệt web ẩn danh / riêng tư rộng rãi) và sau đó chỉ cần tải chúng lên máy chủ.

Các lỗ hổng gần đây (hoạt động trong các trình duyệt chính vào thời điểm đó) bao gồm khả năng thu thập dữ liệu biểu mẫu đầu vào đã lưu của bạn (bằng cách thử kết hợp cho bạn trên một trang độc hại và ghi lại các văn bản được đề xuất cho mỗi kết hợp chữ cái bắt đầu có thể , có thể nói cho kẻ tấn công biết bạn là ai , nơi bạn làm việc và sinh sống ) hoặc để trích xuất lịch sử và thói quen duyệt web của bạn ( Một cách hack rất thông minh làm một việc đơn giản như tiêm liên kết vào DOM của trang để khớp với màu của liên kết và xem nếu nó được truy cập . Bạn chỉ cần làm cái này trên một bảng đủ lớn các tên miền đã biết. Và trình duyệt của bạn ngày càng nhanh hơn trong việc xử lý JavaScript, loại điều này được thực hiện nhanh chóng.)

Ngoài ra, đừng quên rằng nếu mô hình bảo mật của trình duyệt của bạn bị lỗi hoặc các trang web bạn truy cập không tự bảo vệ mình khi đủ sức chống lại các cuộc tấn công XSS, thì người ta có thể sử dụng JavaScript để truy cập vào các phiên mở của bạn trên các trang web từ xa.

JavaScript hầu như vô hại ... nếu bạn sử dụng nó cho các trang web đáng tin cậy. Gmail. Facebook (có thể ... và thậm chí không ...). Người đọc Google. Giao dịch cổ phiếu.

Nhưng vâng chắc chắn, JavaScript không thể tệ đến thế, phải không? Và có những điều đáng sợ hơn để sợ trực tuyến. Giống như nghĩ rằng bạn ẩn danh khi bạn thực sự không nhiều như vậy, như thể hiện qua thí nghiệm Panopticlick của EFF . Điều này cũng được thực hiện một phần bằng cách sử dụng JavaScript. Bạn thậm chí có thể đọc lý do của họ để tắt JavaScript để tránh dấu vân tay của trình duyệt .


Tất cả điều này đang được nói, có thể có những tình huống hoàn toàn tốt mà bạn không cần bận tâm về việc hỗ trợ JavaScript. Nhưng nếu bạn cung cấp một trang web dịch vụ công cộng, hãy xem xét chấp nhận cả hai loại khách hàng. Cá nhân, tôi nghĩ rằng rất nhiều ứng dụng web và trang web hiện đại sẽ hoạt động tốt như sử dụng mô hình nội dung do máy chủ cũ tạo ra mà không có JavaScript ở phía máy khách, và nó vẫn sẽ rất tuyệt và có thể ít tiêu tốn hơn.

Số dặm của bạn có thể thay đổi tùy thuộc vào dự án của bạn.


5
Facebook, ví dụ, là một cống tuyệt vời trên CPU của bạn. Tôi đã đi qua một số trang web được mã hóa kém (hoặc dường như là vậy), về cơ bản chúng sẽ đóng băng máy tính của tôi bằng cách tải đầy đủ CPU (với một vài tab khác đang mở).
Đánh dấu C

3
@Mark C: Tôi thực sự xem xét gửi lại tới 140K khi nhấp vào "gửi" khi tôi nhập một nhận xét sử dụng các biểu mẫu web hơi phóng đại. Có thể đã ở trong các trường hợp cụ thể tại thời điểm đó và đã được sửa chữa kể từ đó (hy vọng). Tôi đã sống một thời gian ngắn ở một đất nước có lập trường hạn chế về kiểm duyệt internet và chất lượng kết nối không tốt, và điều đó khiến bạn đánh giá cao các trang web dựa trên văn bản của ol tốt hơn rất nhiều!
haylem

8
+1 để đề cập đến khả năng truy cập. Một nửa trang web bị nguyền rủa hoàn toàn không thể sử dụng được với tôi và tôi không phải là người dùng máy tính thông thường cũng như không cần phải dựa vào JAWS (chưa).
Stan Rogers

2
@Stan Rogers: nó rất quan trọng với tôi. Tôi đã có cơ hội làm việc với một anh chàng mù ở trường đại học, người tình cờ vừa là sinh viên vừa là giáo viên, và tôi đã bị thổi bay bởi khả năng của anh ta. Và tôi thấy khá buồn khi các công ty lớn và thậm chí các tổ chức giáo dục hiện nay đã đưa ra các trang web nghệ thuật nhảm nhí nơi những người dùng này bị bỏ rơi.
haylem

2
+1 cho khả năng truy cập. Tôi làm việc cho một trang web liên quan rất nhiều đến chăm sóc sức khỏe. (Rất may không phải là tin tức tuyệt vời trong tin tức) Nhiều lợi ích như JS mang lại cho chúng tôi, tôi rất buồn về những ưu tiên của chúng tôi.
Katana314

46

Bởi vì tin tưởng ai đó viết một mẩu truyện tranh vui mỗi sáng và tin tưởng ai đó chạy mã Turing-đầy đủ tùy ý trên máy tính của tôi là hai điều rất khác nhau.


3
+1 cho sự tương tự hài hước. Mặc dù thực tế là Turing hoàn thành không có gì liên quan đến sự nguy hiểm của vụ hành quyết.
haylem

4
@haylem: Hoàn thành Turing có nghĩa là không thể chứng minh an toàn về mặt cơ học trong trường hợp chung. Heck, thậm chí không thể chứng minh những điều cơ bản như thế nó không chạy mãi mãi. Đối với một ngôn ngữ hạn chế hơn, trình duyệt máy khách có thể chứng minh rằng tập lệnh không làm điều gì đó nguy hiểm.
Jörg W Mittag

22
Turing-đầy đủ chỉ là về khả năng tính toán. Nó không nói gì về việc liệu ngôn ngữ được dịch có được phép mở tệp, thực hiện các yêu cầu HTTP hay không, v.v ... Nguy hiểm cố hữu duy nhất trong tính đầy đủ của Turing là khả năng của một vòng lặp vô hạn.
dan04

@ dan04 Hoặc nó cố gắng giả lập bộ xử lý x86 chạy Windows chạy ứng dụng Desktop được chiếu vào cửa sổ trình duyệt của bạn - tất cả đều bằng Javascript. Sự hoàn hảo của Turing thật đáng sợ
sinni800 11/03/13

@ dan04 và bây giờ là các botnet khai thác cryptocoin (chỉ yêu cầu tính toán tài nguyên và khả năng gửi kết quả trở lại).
user253751

16

Tôi không phải là nhà phát triển web và tôi chỉ có hiểu biết vừa phải về cách thức hoạt động của internet. Vì vậy, đây là một câu trả lời từ người dùng .

Kinh nghiệm của tôi khiến tôi tin rằng nhiều trang web chỉ đơn giản là được mã hóa kém, cho dù là do lười biếng hay thờ ơ: Khi tôi xem một trang web về cơ bản tĩnh , chẳng hạn như trang Facebook, mức sử dụng CPU của tôi sẽ tăng khoảng 15% và mạnh hơn nữa với nhiều tab. Cuối cùng, nó đã đến lúc tôi phải chờ phản hồi sau khi nhấp vào nút hoặc liên kết và CPU của tôi sẽ quá nóng và bị khóa.

Trên nhiều trong số những người phạm tội tồi tệ nhất (các trang web), không có gì có thể thay đổi và không có gì tương tác đang xảy ra. Tôi chỉ có thể giả sử mã của trang web liên tục được làm mới quá mức, các cuộc thăm dò và các vòng lặp vô tận.

Điều này đã thúc đẩy tôi cài đặt NoScript để giải phóng việc sử dụng CPU của mình và ngăn việc duyệt web trở thành một công việc khó chịu.

Một tiện ích bổ sung tuyệt vời khác mà tôi sử dụng là FlashBlock .


Facebook không cung cấp các trang tĩnh: đó là sử dụng một kỹ thuật gọi là bỏ phiếu dài để kiểm tra thông báo mới, tin nhắn IM và các mục tin tức. Tất cả những điều đó đòi hỏi JavaScript và một lượng điện năng CPU.

2
@MarkTrapp Vâng, đó là lý do tại sao tôi nói "về cơ bản là tĩnh" mặc dù nó không hoàn toàn nói một trang tĩnh. HyperPhysics sẽ là một ví dụ về một trang web có các trang tĩnh. Tôi nhận thấy có lẽ cần phải làm điều đó nếu không các hộp sẽ không bao giờ biến mất và bạn sẽ không thấy thông báo cho đến khi bạn làm mới trang, nhưng : Có vẻ như mỗi trang web tự hỗ trợ nhiều tài nguyên của bạn hơn, tương tự như tình huống mà một giáo sư hoặc giáo viên mong đợi bạn đặt công việc của họ lên hàng đầu.
Đánh dấu C

nếu bạn nghĩ rằng facebook là trang tĩnh, thì bạn không nên bình luận về câu hỏi này.
Dainius

@Dainius Bạn có vẻ khó hiểu về thuật ngữ tiếng Anh và không tuân theo logic ở đây. Nó đang làm gì với tất cả các chu kỳ CPU ở đây? Đó là vấn đề. Có thể bây giờ tốt hơn, nhưng rất nhiều trang web này giúp bản thân làm giảm lượng thời gian CPU của bạn.
Đánh dấu C

Đánh dấu, bạn gọi cho mình webdev và hỏi, trang tĩnh so với trang động có liên quan gì đến chu kỳ cpu? hoặc bạn thực sự nghĩ rằng "xem một trang web về cơ bản tĩnh, chẳng hạn như một trang Facebook" là đúng?
Dainius

10

Tôi vô hiệu hóa JS vì lý do tốc độ. TechCrunch không có JavaScript mất vài giây để tải với bộ đệm được mồi. Với JavaScript, phải mất gần 20 giây, hơn nữa nếu bộ đệm không được mồi.

Rất nhiều trang web đã trở nên cồng kềnh với JavaScript, đặc biệt là các phòng trưng bày hình ảnh và các trang web thương mại. Loại bỏ điều này mang lại cho bạn trải nghiệm duyệt tốt hơn trong hầu hết các trường hợp.


8

Đối với tôi tất cả về bảo mật. Tôi sử dụng noscript để cho phép một số trang web chạy javascript, trong khi không cho phép hầu hết.

Cuối cùng, bạn thực sự không bao giờ biết nguy hiểm nằm ở đâu ( trang web nobel bị nhiễm trên techspot.com ). Nhiều khai thác zero-day (và khác) sử dụng javascipt; đóng một con đường tấn công này cảm thấy như một bước đi đúng hướng.


1
Bạn cần dấu ngoặc xung quanh một cái gì đó để liên kết đó khởi động. Điều đó nhắc nhở tôi, tôi chỉ học được vào mùa đông năm ngoái rằng Yahoo! Quảng cáo thể thao đã bị nhiễm một số loại phần mềm độc hại (hoặc sẽ lây nhiễm cho bạn). Chàng trai quản trị mạng gia đình nơi chúng tôi nằm trong danh sách đen nhiều trang web có quảng cáo truyền nhiễm.
Đánh dấu C

7

Lý do chính của tôi là nó ngăn chặn các quảng cáo gây phiền nhiễu nhất. Tôi không muốn sử dụng AdBlock Plus, vì điều đó có thể ảnh hưởng đến doanh thu cho các trang web tôi truy cập (và tôi đã sử dụng một hoặc hai trang web trong đó các điều khoản dịch vụ cho biết tôi không tắt quảng cáo). NoScript hạn chế sự đáng ghét tiềm tàng của quảng cáo và tôi sẵn sàng sống với phần còn lại của chúng.

Ngoài ra còn có sự cân nhắc về bảo mật và điều đó phần lớn liên quan đến quảng cáo, vì bất kỳ trang web nào bán quảng cáo đều phải được coi là có khả năng thù địch.

Hơn nữa, tôi không nhất thiết phải biết một trang web là tinh ranh trước khi tôi truy cập nó. Một số người thích gửi liên kết đến các trang web và không nhất thiết phải trung thực.


Các trang web đáng tin cậy cũng có thể bao gồm các Javascripts có hại - thông qua XSS hoặc do chúng bị hack. Ví dụ về trang web giải thưởng Nobel xuất hiện trong tâm trí.
Mnementh

4

Bởi vì các trình duyệt thường có triển khai JavaScript chậm và quá nhiều nhà thiết kế web n00b chỉ sử dụng nó cho những thứ không liên quan như quay vòng nút.

Trên một cỗ máy nhanh, với một trình duyệt hiện đại, không ai có thể vô hiệu hóa nó mọi lúc. Điều đó không có nghĩa là không có nhiều người "có ý thức bảo mật" và những người khác mà không có tiền, mong muốn hoặc bí quyết để chạy một trình duyệt hiện đại trên máy tính nhanh ... Chỉ gần đây IE6 mới ngừng hoạt động trình duyệt phổ biến nhất trên internet!


"Và những người khác không có tiền, mong muốn hoặc bí quyết để chạy một trình duyệt hiện đại trên máy tính nhanh". Tôi có thể hiểu và đồng ý với phần "quỹ". Tôi có thể hiểu với phần "mong muốn", mặc dù tôi nghĩ nó thường sẽ là vấn đề "cần" hơn như một ràng buộc áp đặt rằng việc từ chối có một máy tính đàng hoàng. Nhưng tôi không thực sự có được phần "bí quyết". Làm thế nào bạn có thể không có kỹ năng đến mức không mua một máy tính gần đây? Hoặc nếu bạn làm thế, vì lạm dụng nó đến mức không cài đặt trình duyệt đi kèm và sử dụng một trình duyệt cũ hơn? :)
haylem

2

Với Javascript được kích hoạt, bất kỳ trang web nào cũng có thể thực thi mã trên Máy tính của tôi. Tôi thậm chí không biết, nếu trang web cụ thể thực thi mã và những gì nó làm. Tệ hơn nữa, người khác có thể chèn mã mà tôi không biết vào một trang web bình thường vô hại (XSS). Gần đây, một máy tính magazin nổi tiếng của Đức đã không viết một bài báo nào, nhưng một thiếu niên 16 tuổi đã thử các trang web ngân hàng trực tuyến của các ngân hàng phổ biến nhất ở Đức. Nhiều người trong số họ - bao gồm cả người lớn nhất - dễ bị tổn thương đối với XSS. Và bạn thậm chí không nhận thấy rằng trang web ngân hàng trực tuyến của mình thực thi một số Javascript thay đổi, ví dụ như mục tiêu và số tiền cho một giao dịch. Với Javascript bị vô hiệu hóa, cuộc tấn công XSS trong bối cảnh trang web đáng tin cậy là vô ích, tôi không thực thi mã độc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.