it-swarm-vi.com

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

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ì?

60
Jiew Meng

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 làm mới các phần giao diện của mình bằng cách AJAX gọi mọi lúc không? Có lẽ 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 bị câm làm mới thế giới cứ sau 15 giây hoặc lâu hơn không có lý do chính đáng. (Đã bao giờ nhìn vào lượng dữ liệu mà Facebook gửi qua? 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ọ để có vẻ 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 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 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 Nice).

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 trên bất kỳ mạng nào khác, phải không? Có một số JS trong đó. nhưng nó sử dụng một số khái niệm có thể bị khai thác bởi một số trang web độc hại. 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 bạn mỗi khi bạn thoát khỏi trình duyệt hoặc chạy các chế độ duyệt web ẩn danh/riêng tư phổ biến hiện nay) 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 nhập đã lưu của bạn (bằng cách thử các kết hợp cho bạn trên trang không phù hợp 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 với những kẻ tấn công 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ử duyệt web của bạn và thói quen ( Một cách hack rất thông minh làm một việc đơn giản như chèn các 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ó đã được truy cập chưa . Bạn chỉ cần làm điều 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 sẽ nhanh hơn khi xử lý JavaScript, loại này điều đượ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ư được hiển thị bởi Panopticlick thử nghiệm 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 để tắt JavaScript để tránh lấy 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.

81
haylem

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 rất những thứ khác nhau.

46
Jörg W Mittag

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à câu trả lời từ a user.

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 thiếu hiểu biết: Khi tôi sẽ xem một trang web về cơ bản static, chẳng hạn như trang Facebook, việc sử dụng CPU của tôi sẽ tăng lên khoảng 15%, và nhiều 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 khiến tôi phải cài đặt NoScript để giải phóng việc sử dụng CPU của tôi và ngăn việc duyệt web trở thành một việc vặt bực bội .

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

16
Mark C

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.

10
Josh K

Đố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.

8
kasterma

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.

7
David Thornley

Bởi vì các trình duyệt được sử dụng để 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 trong tâm trí của họ lúc nào cũng vô hiệu hóa nó. Đ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!

4
Kevin Cantu

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.

2
Mnementh