TỔNG QUAN BẢO MẬT ỨNG DỤNG WEB/PORTAL (PHẦN 1)

1. Vấn đề bảo mật các ứng dụng Website, Portal

Trong những ngày đầu phát triển của Internet thì khái niệm World Wide Web chỉ bao gồm các trang web chứa thông tin cơ bản dưới dạng tài liệu tĩnh. Các trình duyệt web được phát triển như một phương tiện tiếp nhận và hiển thị các thông tin trên các trang Web.

Dữ liệu từ các trang web sẽ chuyển xuống trình duyệt Web theo một chiều và không cần xác thực người dùng vì mỗi người sử dụng được cung cấp thông tin theo cùng một nội dung và cách trình bày. Do đó, bất kỳ mối đe dọa bảo mật chủ yếu phát sinh từ các lỗ hổng trong phần mềm máy chủ web. Nếu hacker tấn công máy chủ web, sẽ không truy cập vào bất kỳ thông tin nhạy cảm nào, thay vào đó, kẻ tấn công thường sẽ sửa đổi các tập tin trên máy chủ để thay đổi nội dung của website hoặc sử dụng máy chủ để lưu trữ và phát tán virus.

Ngày nay, World Wide Web thay đổi rất nhiều đến mức không thể nhận ra so với hình thức văn bản, hình ảnh ban đầu. Đa số các website hiện nay thực ra là các ứng dụng ví dụ: cho phép cá nhân hóa nội dung động, thiết lập theo sở thích cá nhân, các trang web cũng có thể chạy dưới dạng client-side scriptcho phép “thay đổi” trình duyệt Webthành một giao diện ứng dụng như web mail và phần mềm bản đồ (Yahoo Mail và Google Maps), …

Các ứng dụng dạng Web có khả năng hỗ trợ đăng ký và đăng nhập, giao dịch tài chính, tìm kiếm, và xác thực nội dung, …. Phần lớn các thông tin xử lý là cá nhân và rất nhạy cảm. Do đó, bảo mật là một vấn đề lớn. Không ai muốn sử dụng một ứng dụng web, nếu biết rằng thông tin của mình sẽ được tiết lộ trái phép cho cá nhân, tổ chức khác.

1.1 Khái niệm về ứng dụng Web

Các ứng dụng web là các chương trình (máy tính) cho phép người truy cập website để chuyển lên và lấy dữ liệu về cơ sở dữ liệu thông qua Internet bằng cách sử dụng trình duyệt web. Dữ liệu sau đó được hiển thị trên trình duyệt của người dùng, thông tin trên đó được tạo ra tự động (theo một định dạng cụ thể, ví dụ như trong HTML bằng cách sử dụng CSS) bởi các ứng dụng web thông qua một máy chủ web.

Nếu tìm hiểu chi tiết về kỹ thuật hơn thì các ứng dụng Web truy vấn máy chủ dữ liệu (thực chất là một kho lưu trữ nội dung) và tự động tạo ra các dữ liệu trên website để hiển thị cho người dùng. Các dữ liệu trên Web được tự động tạo ra này sẽ theo một định dạng chuẩn được hỗ trợ bởi các trình duyệt khác nhau (HTML, XHTML,…). Để có tính tương tác cao, trình bày thu hút thì JavaScript (là một dạng của kịch bản phía người dùng) thường được sử dụng nhằm tạo ra thành phần động trên mỗi trang web (ví dụ như thay đổi hình ảnh, màu sắc,…. khi người sử dụng di chuyển chuột đến). Các trình duyệt web giữ vai trò then chốt do vừa diễn dịch, thực thi tất cả Script và hiển thị nội dung các trang web.

+ Một số chức năng phổ biến của các ứng dụng Web

Ứng dụng Web đã được phát triển nhằm thực hiện tất cả các chức năng hữu ích có thể sử dụng được trong môi trường trực tuyến (Internet). Dưới đây là một số chức năng của ứng dụng web đã được phát triển và sử dụng rất nhiều trong những năm gần đây:

  • Mua bán trực tuyến: Amazon, Ebay, 5giay.com, …
  •  Mạng xã hội: Facebook, linkedin
  • Ngân hàng trực tuyến: HSBC, Citibank, Vietinbank Ipay, ….
  • Tìm kiếm: Google, Bing, rongbay.com, …
  • Đấu giá: eBay, Ubid, …
  •  Cờ bạc: Betfair, intercasino.com, gambling.com, …
  • Blog: Blogger, blogspot.com, …
  •  Webmail (quản lý Email bằng trình duyệt Web): Gmail, Hotmail, Yahoo Mail, …
  • Tương tác thông tin (Interactive information): Wikipedia, Wikileak, ..

Hiện nay, với sự phát triển mạnh mẽ của Internet và các thiết bị di động cầm tay như: Laptop, Smarphone, Tablet, … thì các ứng dụng phải đáp ứng khả năng kết nối di động bằng cách sử dụng trình duyệt web hoặc các ứng dụng riêng trên di động (Android, IOS, Windows phone, …) sử dụng cơ chế kết nối đến Server dựa trên HTTP/HTTPS thông các hàm APIs. Đặc biệt, các ứng dụng trước đây thường chỉ dùng trong hệ thống nội bộ như: ERP, HR, Office, … do chứa các dữ liệu riêng tư, nhạy cảm với công ty, tổ chức thì hiện nay đã phải hỗ trợ kết nối rộng hơn ra khỏi hệ thống mạng nội bộ (Internet, VPN) thông qua các ứng dụng web. Ví dụ:

– Ứng dụng quản lý nhân sự (Human Resources – HR) cho phép người dùng truy cập thông tin bảng lương, cung cấp và nhận lại thông tin hiệu suất và quản lý tuyển dụng và quy trình kỷ luật.

– Phần mềm cộng tác (quản lý hồ sơ, công việc, …) dùng chia sẻ tài liệu, quản lý qui trình công việc và các dự án. Những chức năng này thường sẽ liên quan đến các vấn đề an ninh và quản trị rất quan trọng.

– Các ứng dụng văn phòng như văn bản, bảng tính, … đã chuyển sang ứng dụng web qua các dịch vụ như Google App, Microsoft Office 365,…

+ Các điểm mạnh của các ứng dụng Web

– Sử dụng giao thức HTTP (giao thức truyền thông cốt lõi được sử dụng để truy cập trong World Wide Web) với ưu thế nhẹ, đơn giản và hướng kết nối. HTTP có khả năng phục hồi kết nối trong trường hợp lỗi truyền thông và tránh việc máy chủ phải giữ kết nối mạng để mỗi người sử dụng, như các ứng dụng client/server truyền thống.

– Các trình duyệt web thường sẽ được cài đặt mặc định trên máy tính và thiết bị di động. Các ứng dụng web triển khai giao diện người dùng tự động đến trình duyệt của người dùng mà không cần phân phối, quản lý phần mềm riêng biệt đến người dùng. Khi cần thay đổi, nâng cấp tính năng, giao diện, … các ứng dụng web chỉ cần cấu hình trên máy chủ và có có hiệu lực ngay đến người dùng khi kết nối.

– Các trình duyệt web hiện nay hỗ trợ nhiều tính năng hướng người dùng cao, giao diện, tính năng có thể thay đổi theo ý người dùng. Ngoài ra, các trình duyệt hỗ trợ công cụ, tiện ích đi theo như: dịch từ điển, tải nhạc, tải phim, đa ngôn ngữ, …

– Các công nghệ nền và các ngôn ngữ phát triển các ứng dụng web tương đối đơn giản. Rất nhiều các nền tảng và công cụ phát triển để tạo điều kiện thuận lợi cho việc phát triển các ứng dụng web cho các đối tượng khác nhau như: người mới học, không chuyên về CNTT, … Ví dụ: bạn không là người học chuyên về CNTT chỉ cần làm theo một vài hướng dẫn là có thể tạo ứng dụng web cá nhân như: Blog, WordPress, … Ngoài ra, các công cụ và tài nguyên mã nguồn mở có sẵn để giúp người phát triển có thể xây dựng, tùy chỉnh các ứng dụng theo ý mình như: Zoomla, Dotnetnuke, Zope/Plone, …

(còn tiếp phần 2)

Comments

comments