Share
Cùng với sự phát triển của internet, số lượng website trên toàn thế giới cũng tăng mạnh và đạt mức 1.83 tỷ vào năm 2021. Cùng với đó, những vấn đề về bảo mật website như tránh mất mát dữ liệu, tránh bị hacker tấn công,... luôn được các nhà quản trị web quan tâm hàng đầu. Trước khi tìm tới dịch vụ bảo mật website, việc nắm được tất cả lỗi bảo mật và biện pháp phòng tránh sẽ giúp bạn tự trang bị kiến thức để bảo vệ trang web của mình.
Hãy cùng Rabiloo tìm hiểu về bảo mật website nhé!
Hãy tưởng tượng website là ngôi nhà của bạn, tên miền là địa chỉ nhà, dữ liệu là tài sản của ngôi nhà. Đã là tài sản thì phải được bảo vệ. Việc gia cố các cánh cửa, các ổ khóa, lắp thêm camera giám sát,… sẽ tương tự với việc cài đặt thêm các lớp bảo mật cho website.
Hiện trạng website bị tin tặc tấn công qua các lỗ hổng bảo mật xảy ra không ít, có thể kể đến một vài ví dụ:
Tháng 10/2013, gã khổng lồ Adobe đã công bố việc thất thoát 2.9 triệu thông tin cá nhân, 40GB dữ liệu mã nguồn bị đánh cắp từ mạng internet.
Tháng 8 năm 2014, công ty bảo mật Hold Security tiết lộ rằng tin tặc Nga đã đánh cắp 1.2 tỷ thông tin đăng nhập và mật khẩu trên 420.000 trang web trên khắp thế giới.
Một trang web không an toàn có thể sẽ gây ra những hậu quả xấu như:
Rò rỉ thông tin khách hàng
Website bị sập, gián đoạn, không thể hoạt động ổn định
Tốn chi phí sửa chữa website bị hack, tiền chuộc cho hacker
Bị Google đưa vào blacklist,…
Có thể bạn quan tâm: Cache là gì? Hướng dẫn cách xóa cache trên các loại trình duyệt.
SQL Injection là một hình thức tấn công lợi dụng những lỗ hổng về câu truy vấn của các ứng dụng. SQL Injection thực hiện bằng cách chèn thêm một đoạn SQL để làm sai lệnh đi câu truy vấn ban đầu, từ đó có thể khai thác dữ liệu từ database.
Giả sử ứng dụng cần thực hiện một câu truy vấn:
SELECT * FROM tbl_user WHERE username = ‘name’ and password = ‘pwd’;
Trong đó name và pwd là giá trị lấy từ các input (ô nhập liệu) trên website. Khi này hacker thay vì nhập name sẽ nhập name’ or ‘1’ = ‘1, câu truy vấn sẽ có dạng như sau:
SELECT * FROM tbl_user WHERE username = ‘name’ or ‘1’ = ‘1’ and password = ‘pwd’ name’ or ‘1’ = ‘1’;
Câu truy vấn trên có giá trị ‘1’ = ‘1’ luôn đúng, từ đó hacker dễ dàng thêm các thao tác trên cơ sở dữ liệu.
Sql Injection là một trong nhưng lỗi bảo mật website phổ biến hàng đầu
Tấn công XSS là gửi và chèn các script độc hại, những script này thường được viết với ngôn ngữ lập trình phía client như Javascript. Lỗ hổng XSS này chia làm 3 loại:
Reflected XSS: Chiếm đoạt session, cookies của người dùng.
Stored XSS: Chiếm đoạt session của hàng loạt người dùng và submit nội dung kèm theo mã độc.
DOM Based XSS: Dựa trên cơ sở thay đổi cấu trúc của DOM, cụ thể là HTML để khai thác lỗ hổng XSS.
Mục đích chính của tấn công XSS là ăn cắp dữ liệu nhận dạng của người dùng như: cookies, session tokens và các thông tin khác.
CSRF là cách thức tấn công sử dụng quyền chứng thực của người dùng đối với một website. Lỗ hổng này giúp hacker yêu cầu truy cập tới một trang nào đó sử dụng cookie/phiên truy cập của chính bạn để thực hiện các thao tác khác trên website đó.
Hiểu đơn giản thì CSRF là mượn quyền trái phép.
Lỗi này xảy ra khi khách chưa đăng nhập đã có thể sử dụng (Authentication) hoặc website không phân rõ khả năng truy cập của người dùng (Authorization).
Kẻ xấu hoàn toàn có thể tạo các yêu cầu giả cho các chức năng mặc dù chúng không hiển thị trên giao diện. Nếu website của bạn không được lập trình phân quyền, điều đó thật sự nguy hiểm.
Đây là lỗi bảo mật về tài nguyên và các thông tin bí mật, làm rò rỉ các dữ liệu mang tính chất nhạy cảm như mật khẩu, ID phiên đăng nhập, thông tin thẻ tín dụng, …
Nếu các dữ liệu này không được mã hóa, hacker sẽ dễ dàng đánh cắp các thông tin này và sử dụng chúng với mục đích xấu.
Tham chiếu đối tượng không an toàn (Insecure Direct Object References) nằm trong top 4 OWASP, xảy ra khi website cho phép người dùng truy cập tài nguyên (file, dữ liệu) một cách bất hợp pháp, thông qua dữ liệu do người dùng cung cấp.
Ví dụ, thông tin người dùng của một trang web có định dạng URL như sau: https://example.com/user/123. Bây giờ thay 123 bằng các giá trị khác, thông tin của người dùng khác cũng như vậy mà hiển thị ra, thật tai hại!
Bởi lẽ “không có gì là miễn phí” nên việc sử dụng các phần mềm, thư viện, plugin được công khai trên mạng tuy tiện lợi với nhà phát triển website nhưng cũng đi kèm rủi ro không đảm bảo về lỗ hổng bảo mật.
Khi các phần mềm, plugin từ bên thứ 3 có lỗ hổng bảo mật chưa được vá, điều đó kéo theo trang web của bạn dễ dàng bị tấn công hơn.
Cài đặt chứng chỉ bảo mật SSL (Secure Socket Layer) là cách bảo mật website phổ biến và hiệu quả. SSL dựa theo cơ chế mã hóa thông tin giữa trình duyệt web và server, giúp các thông tin nhạy cảm người dùng được truyền đi an toàn hơn.
Bạn cũng nên sử dụng HTTPS để việc giao tiếp và thao tác trên trình duyệt và web đều được bảo mật an toàn. Ngoài ra, sử dụng HTTPS còn giúp tang độ tin cậy của khách hàng với website của bạn, tăng thứ hạng của website và tốt cho SEO.
Giao thức HTTP + chứng chỉ bảo mật website SSL = Giao thức HTTPS
Để ngăn chặn các lỗi liên quan đến lỗ hổng Sql Injection, bạn cần phải kiểm tra dữ liệu đầu vào từ người dùng. Có thể sử dụng các chuỗi escape (mã hóa các ký tự đặc biệt) để chuyển thành câu truy vấn an toàn.
Đối với XSS, ngoài việc xác định nguyên nhân từ thông tin đầu vào, bạn cần kiểm soát thông tin trước khi hiển thị ra các thẻ HTML bằng cách escape các kí tự đặc biệt, mã hóa các thẻ HTML.
Cả hai việc trên thay vì làm thủ công, hiện nay hầu hết các framework như Spring, React, Laravel, Ruby on Rails... đều đã hỗ trợ.
Tham khảo: Những lý do nên sử dụng Spring Framework để phát triển ứng dụng web
Liên tục cập nhật phiên bản phần mềm, plugin mới nhất giúp sửa lại các lỗ hổng, lỗi của phiên bản cũ. Đây là phương pháp đơn giản nhưng hiệu quả để website được an toàn trước sự tấn công mạng.
Thêm vào đó, để tăng cường bảo mật, bạn nên ghi lại log (nhật ký hoạt động) của trang web, thiết lập phân quyền người dùng, hạn chế phạm vi truy cập tới các tài nguyên quan trọng.
Máy chủ được lựa chọn ngoài yêu cầu hoạt động trơn tru, cần phải đáp ứng được khả năng dự phòng và xử lý dữ liệu khi có sự cố xảy ra.
Để việc bảo mật website hiệu quả hơn, bạn sẽ cần đến sự giúp đỡ của một vài công cụ hỗ trợ bảo mật như:
Burp Suite: Là công cụ bảo mật website mà hầu hết các quản trị viên đều từng sử dụng. Công cụ này là sự tích hợp của Spider (thu thập dữ liệu hệ thống) và Intruder (tấn công và tìm kiếm các lỗ hổng còn hiệu hữu)
NMAP: Là công cụ bảo mật website miễn phí và phổ biến để kiểm tra bảo mật. NMAP giúp tìm kiếm các lỗ hổng trên toàn bộ hệ thống mạng và dịch vụ mạng giúp dữ liệu trong trang web được bảo vệ kỹ càng hơn.
PuTTY: Là công cụ bảo mật trang web với khả năng đưa ra cảnh báo về cấu hình hệ thống.
SQLmap: thêm một công cụ mã nguồn mở miễn phí được sử dụng rộng rãi trong bảo mật website. Công cụ này giúp phát hiện các lỗ hổng trong hệ thống bảo mật của website, tự động xử lý các IP lạ cố truy cập vào trang web của bạn.
Ngoài ra, để tiết kiệm thời gian, bạn có thể cân nhắc lựa chọn giải pháp sử dụng dịch vụ bảo mật website trọn gói hoặc đơn lẻ từ những đơn vị phát triển trang web uy tín.
Xây dựng một trang web không khó, giữ cho trang web được bảo mật và đứng vững trước những cuộc tấn công mạng mới khó. Hy vọng với những kiến thức về bảo mật website trong bài viết này sẽ giúp cho website và hệ thống doanh nghiệp của bạn được an toàn.
Để đọc thêm nhiều bài viết về chủ đề website nói riêng và công nghệ nói chung, bạn có thể truy cập vào kênh tri thức của Rabiloo tại đây.
Share