Vì sao người dùng có thể xem source code của các trang web?

Người dùng có thể dễ dành xem source code của 1 website bằng Ctrl + U.

Vậy câu hỏi đặt ra là việc xem source code của website khác thì nó có hơi “lộ” không nhỉ ?
Tức là người dùng có thể xem code html + css + js của 1 website khác thì lộ mất rồi?

Và làm thế nào để người khác không xem được source code website mình ?

1 Like

Bản chất ban đâu của HTML, css, js là chuỗi ký tự.
Nhờ như vậy trình duyệt mới đọc được và trình diễn cho người dùng xem.

Theo ý kiến cả nhân là không có cách nào để người khác không xem được code HTML, css, js cả.

Hỏi lại là tại sao bạn lại quan tâm đến vấn đề này ?

Tại vì người khác thấy được source code website (bao gồm html + css + js) của mình nó giống như là thấy hết source code phần mềm vậy đó anh :smiley:

html css js đó là do phần mềm của mình tạo ra để browser có thể hiển thị thôi, quy trình làm việc bên trong do backend đảm nhiệm làm thế nào để sinh ra được code đó thì họ không xem được.
Khi browser hiển thị ra được nội dung thì nó đã nhận được code html css js rồi, và quan trọng là nó có muốn cho người dùng xem hay không. Đa phần trình duyệt đều hỗ trợ chức năng này.

Theo bạn thì nó phải “giấu” theo kiểu nào? Cái Ctrl+U được là client-side mà, đương nhiên phải nhìn thấy, nếu là trang động thì nó đã qua xử lý CGI. HTML + CSS +Js đâu phải hết 1 trang web đâu, giống như bạn chép hết source Google/Facebook rồi bạn có biến nó thành máy tìm kiếm/mạng xã hội mang tên bạn hay không? Câu hỏi của bạn giống như: “chỉ cần mở sách ra là thấy hết các dòng chữ trong đó mà ai đọc cũng được, sao lộ quá vậy?” :joy:
Nhưng mình có cách làm cho người dùng không coi được mã nguồn:

  • Mã hóa md5 cho mỗi 5 ký tự :joy:
  • Không cho người dùng truy cập vào trang đó :joy:
  • Thay địa chỉ của trang thật thành trang giả (không có dữ liệu) :joy:

[spoiler]Bạn làm như vậy thì ông nội browser đọc còn không được chứ nói gì người khác. Chuyện này giống như là sợ người khác đọc sách của bạn thì đừng viết :3[/spoiler]
P/s: bạn có tư tưởng “mã nguồn đóng đấy”, điều đó không phải lúc nào cũng tốt.

5 Likes

câu hỏi này hay và thú vị mà. Hay để hỏi lại bằng câu hỏi khác nhé: Tại sao các loại trình duyệt lại hỗ trợ việc view source của trang web, mà phần lớn users lại không phải dân kỹ thuật ?

Câu hỏi hay đấy :wink:

1 Like

Có những trang web viết hoàn toàn bằng HTML + CSS + JS và 1 số framework JS thì sao anh ?

uh, không hiển thị code html lên.
dân kỹ thuật có nước ăn cám hết.
bị lỗi phía client mà không coi được code thì khỏi sửa luôn.

1 Like

Vì chúng ta không thể debug html, js trên hầu hết các IDE hiện tại :-?

Viết hoàn toàn HTML + CSS + JS là trang web tỉnh à ?
framework JS: đang nói về NodeJs ?

Giờ giả sửa mã hóa hết HTML + CSS + JS đi. Vì không muốn cho người khác xem code.
Điều gì sẽ xảy ra ?

Đúng rồi anh.

Em không hiểu ý anh cho lắm :smiley:

Nếu chỉ có HTML + CSS + Js là 1 trang web thì anh không còn gì để nói, hoàn toàn “thua” :joy: Framework JS mà em nói thì nó cũng là JS mà ra thôi. Nếu em không muốn người khác xem mã nguồn của em thì hãy mã hóa nó theo cách của em, rồi sau sẽ tự giải mã khi thực thi (ý tưởng là vậy chứ anh chưa bao giờ nghĩ là sẽ làm như vậy).
Em cảm thấy như thế nào khi người dùng đọc code của em?
P/s: mặc dù xu hướng bây giờ lại làm web tĩnh (cho mấy trang nhỏ lẻ) nhưng kiểu mã hóa rồi giải mã sẽ làm giảm hiệu suất rất nhiều.

3 Likes

OK! Cảm ơn mọi người đã thông não giúp em nhé :thumbsup: :laughing:

Bạn tưởng tượng bạn là 1 ông đầu bếp, 1 ông khách đến yêu cầu 1 món ăn, khi món ăn được mang ra, người ăn nhìn vào nó có thể nhận ra món này được làm từ cái gì, có nguyên liệu nào nhưng không bao giờ biết được chính xác cách mà ông đầu bếp ông nấu như nào :smile: => Trong ứng dụng web thì server là ông đầu bếp, người ăn là client, cái đống html +js + css chỉ là món ăn đã được nấu xong

9 Likes

Thật ra dưới góc nhìn của dev thì đương nhiên ai cũng không muốn người khác đọc source code của mình rồi. Việc tại sao người dùng có thể xem được mã nguồn liên quan đến tốc độ (mạng) + lịch sử nhiều hơn.

Ban đầu web mục đích chính là truyền tải nội dung, chứ không bao gồm xử lý, nên việc truyền một chuỗi thay vì “mã hóa” nó bằng hình ảnh sẽ có lợi hơn rất nhiều. Ông Tim Bernie Lee đề ra 2 nền tảng của web - html và http, đồng thời khái niệm web browser render từ mã nguồn gốc ra nội dung hiển thị cho người dùng bắt đầu từ đây. Các bổ sung sau cho web, bao gồm css, javascript đều dựa trên cơ chế này: Trao quyền cho phép trình duyệt đọc và render, xử lý nội dung, thứ 2 phải đảm bảo tốc độ tải trang, nhất là thời xưa.

Việc truyền chương trình thực thi sau khi đã biên dịch (giúp che giấu mã nguồn, tránh phụ thuộc vào công nghệ web - trình duyệt) là hoàn toàn có thể thực hiện được, và khá nhiều tổ chức đã thực hiện điều này: JavaFX/Java Applet - Oracle, Flash - Adobe, Silverlight - Microsoft… Nhưng như bạn thấy nó chết dần chết mòn dù một số khá thành công như Flash. Điểm yếu chung của nó là tốc độ tải trang - cực kỳ chậm và vấn đề bảo mật. Một vấn đề khác đó là nó không cho phép bên thứ 3 có thể đọc nội dung - google chẳng hạn. Do đó việc sử dụng javascript nhằm tương tác với html, giao toàn bộ quyền cho web browser vẫn tỏ ra tốt hơn - ở thời điểm hiện tại.

Vậy thật ra câu trả lời là thà lộ mã nguồn còn hơn là người dùng rời bỏ mình :stuck_out_tongue:.

5 Likes

giấu được nhé. khi bạn ctrl + u. thì có cách để dấu toàn bộ source đó. mình đã thấy một số trang web làm rồi. đang quan tâm vấn đề này

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Chắc ý bạn là SPA :))
Cũng chả giấu được gì đâu, muốn là lấy được thôi.

2 Likes

hoặc có thể cao tay như Twitter :slight_smile:

4 Likes

Headless browser hân hạnh tài trợ chương trình này.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?