Share

Quay lại
Trang chủ / Kiến thức / Phát triển offshore / Xây dựng website bảo mật với 7 kỹ thuật đơn giản

Xây dựng website bảo mật với 7 kỹ thuật đơn giản

15/12/2023
11/11/2021
Xây dựng website bảo mật với 7 kỹ thuật đơn giản

Bảo mật website ngày nay đã trở thành vấn đề quan tâm hàng đầu của nhiều công ty khi mà ngày càng nhiều giao dịch, thông tin quan trọng, giá trị được lưu trữ và xử lý trên các ứng dụng trực tuyến. 

Website trở thành bộ mặt, phương thức cung cấp dịch vụ chính của tất cả công ty, tổ chức. Vì vậy, việc đảm bảo thông tin khách hàng được giữ bí mật, các giao dịch được thực hiện chính xác, không bị phá hoại, gây thiệt hại đến khách hàng, luôn là ưu tiên của mọi tổ chức.

Để xây dựng website, hệ thống bảo mật, chúng ta cần tập trung vào bảo mật ngay từ những giai đoạn đầu tiên trong quá trình phát triển. Cần định nghĩa rõ ràng về các yêu cầu về bảo mật. Nghiên cứu cách thức thiết kế, thiết lập, thực hành tốt về bảo mật của cơ sở hạ tầng, các phần mềm, thư viện, công cụ sử dụng. 

Việc coi trọng, xây dựng website bảo mật ngay từ những bước đầu giúp tiết kiệm chi phí, đảm bảo hệ thống được bảo mật từ việc thiết kế cho đến việc xây dựng, triển khai. 

Sau đây là 7 kĩ thuật cơ bản có thể sử dụng để nâng cao tính bảo mật của website khi phát triển.

1. Bảo mật thông tin truyền tải

Dữ liệu truyền tải qua mạng dễ dàng bị xem trộm, sửa đổi nếu không được mã hoá. Để đảm bảo tính bảo mật và đúng đắn của thông tin khi truyền tải; việc sử dụng các giao thức bảo mật: HTTPS, SSL khi giao tiếp giữa client với server, server với database hay server với server là bắt buộc.

Tham khảo cách bảo mật website với HTTPS được Google hướng dẫn.

2. Sử dụng các thư viện bảo mật cao.

Để xây dựng được website có tính bảo mật cao, nhà phát triển web hãy:

- Sử dụng các thư viện, phần mềm đến từ các nguồn uy tín, được phát triển, sử dụng rộng rãi, thường xuyên được đánh giá, kiểm duyệt, cải thiện tính bảo mật. 

- Thực hiện cập nhật phiên bản vá lỗi thường xuyên. Đảm bảo các lỗ hổng đã được phát hiện của các phần mềm, thư viện được xử lý và ngăn chặn. Hạn chế kẻ xấu khai thác vào các lỗ hổng đã bị phát hiện. 

- Ưu tiên sử dụng các phần mềm đã được kiểm duyệt bảo mật và sử dụng rộng rãi hơn là tự triển khai.

3. Thay đổi cấu hình mặc định.

Các framework, phần mềm sử dụng khi được cài đặt đều có các cấu hình mặc định. Việc sử dụng các cấu hình mặc định trên môi trường production dẫn đến hệ thống dễ dàng bị kẻ xấu phá hoại, truy cập trái phép.

4. Bảo mật thông tin trong cookie

Ngày nay mọi website đều sử dụng cookie để lưu trữ thông tin dưới client. Những thông tin xác thực cũng được lưu trong cookie. 

Việc sử dụng cookie không an toàn có thể dẫn đến kẻ xấu có thể chiếm quyền truy cập của người dùng bằng cách đánh cắp, xem trộm thông tin xác thực trong cookie. 

Để giữ thông tin trong cookie được bảo mật, nhà phát triển website có thể thiết lập các thuộc tính sau của cookie:

- httponly: đảm bảo cookie ko thể truy cập phía client. Tránh cookie bị đánh cắp bởi mã độc của kẻ xấu.

- secure: đảm bảo cookie chỉ có thể gửi qua giao thức bảo mật https. Tránh trường hợp cookie đc gửi bằng giao thức http ko được mã hoá sẽ bị kẻ xấu xem trộm.

- sameSite: giới hạn phạm vi sử dụng cookie, tránh cookie bị gửi lên server khi request bắt nguồn từ các trang web khác.

Đối với người dùng trình duyệt web hàng ngày, hãy thực hiện những khuyến nghị về cách sử dụng cookie an toàn trong bài viết “Cách phòng tránh tấn công qua lỗ hổng bảo mật của Cookies”

5. Giữ thông tin bảo mật và nhạy cảm một cách an toàn

Nhà phát triển khi thiết kế website cần thực hiện những cách bảo mật website sau:

- Đảm bảo các thông tin bảo mật, nhảy cảm không bị log ra ngoài. 

- Không hiển thị log lỗi đối với người dùng cuối. 

- Các thông tin bảo mật cần được mã hoá hoặc băm trước khi thực hiện lưu.

6. Sử dụng các tài khoản và chạy các tiến trình với quyền hạn tối thiểu.

Không sử dụng các tài khoản root, super để sử dụng trong các thao tác hàng ngày. Thao tác này được hiểu là những hoạt động mà người dùng hoặc lập trình viên sử dụng tài khoản để thao tác trên website. Sử dụng tài khoản với quyền tối thiểu cần thiết, giúp giảm thiểu sự ảnh hưởng khi các tài khoản thường xuyên được sử dụng bị lộ, chiếm quyền sử dụng.  

Có thể bạn quan tâm: Quy trình 7 bước của một dự án phát triển website bao gồm những gì?

7. Hiểu và bảo vệ hệ thống trước các lỗ hổng bảo mật thường xuyên được khai thác bởi kẻ xấu.

Đây là kỹ thuật quan trọng nhất để xây dựng website bảo mật mà nhà phát triển phần mềm cần xem xét kỹ. Kỹ thuật này sẽ đảm bảo hệ thống an toàn trước những lỗ hồng có thể bị khai thác bởi kẻ xấu. 

Việc hiểu được cách kẻ xấu tấn công sẽ giúp ta có thể đưa ra cách phòng chống, bảo vệ hệ thống. 

Sau đây là 3 lỗ hổng dễ bị gặp phải. Một khi bị kẻ xấu khai thác có thể sẽ bị ảnh hưởng nghiêm trọng đến người dùng.

7.1 Lỗ hổng XSS

Lỗ hổng XSS (Cross site scripting) là lỗ hổng mà kẻ xấu tấn công bằng cách nhập các đoạn mã độc thông qua các form đăng ký trên màn hình để hệ thống lưu lại. Sau đó, hệ thống lấy dữ liệu kẻ xấu nhập hiển thị ra màn hình của user. Khi hiển thị ra màn hình, các đoạn mã độc này sẽ được thực thi trên trình duyệt của user và gây hại cho họ. Các đoạn mã độc có thể lấy cắp thông tin xác thực lưu trên cookie để chiếm quyền đăng nhập hoặc thực hiện hành động gây hại cho user. 

Để bảo vệ hệ thống trước kiểu tấn công này, những dữ liệu nhập vào cần được:

- Kiểm tra đảm bảo giá trị nhập vào không phải là mã độc. 

- Dữ liệu trước khi hiển thị lên màn hình của user cần được encode để loại bỏ các ký tự mã độc.

Bảo mật website trước lỗ hổng XSS 

7.2 Lỗ hổng SQL Injection

Thứ 2 là SQL Injection. Lỗ hổng này bị kẻ xấu khai thác khi các lập trình viên xây dựng các câu truy vấn vào cơ sở dữ liệu bằng cách nối các chuỗi ký tự với nhau, trong đó có sử dụng các biến là các giá trị mà user nhập vào. 

Lúc này, kẻ xấu khai thác lỗ hổng SQL Injection bằng cách nhập các giá trị để các truy vấn khi được xây dựng sẽ bị sai logic, không còn đúng như ý định ban đầu của người viết. Điều này dẫn đến những ảnh hưởng xấu, không mong muốn. 

Để tránh kẻ xấu có thể khai thác lỗ hổng này, các lập trình viên khi xây dựng câu truy vấn cần tránh việc nối chuỗi. Thay vào đó, nên sử dụng các cú pháp có sẵn của thư viện để gán các giá trị, xây dựng câu truy vấn.

7.3 Lỗ hổng CSRF

Lỗ hổng CSRF, viết tắt của Cross site request forgery. Kẻ xấu khai thác lỗ hổng này dựa vào đặc tính tự động gửi thông tin lưu trong cookie lên server. Khi thông tin xác thực được lưu trong cookie, các request khi gửi lên server sẽ tự động được đính kèm thông tin xác thực để server có thể xác thực người dùng. 

Kẻ xấu sẽ tấn công bằng cách gửi đường link thực hiện hành động gây hại đến user. Khi user click vào các đường link đó, browser sẽ gửi request lên hệ thống và gửi kèm theo thông tin đăng nhập trong cookie. Lúc này user vô tình thực hiện 1 hành động gây hại cho chính bản thân mình mà không biết. 

Ví dụ, với hệ thống ngân hàng, kẻ xấu có thể gửi 1 đường link thực hiện hành động chuyển tiền đến tài khoản của kẻ xấu. Khi người dùng click vào đường link đó, vô tình họ đã thực hiện hành động chuyển tiền của mình vào tài khoản của kẻ xấu. 

Để ngăn chặn chúng tấn công theo cách thức này, khi hệ thống xử lý các request sẽ yêu cầu trong request phải gửi lên server kèm theo 1 chuỗi token được sinh ngẫu nhiên bởi hệ thống. Điều này sẽ đảm bảo request được thực hiện bởi hệ thống chứ không phải do kẻ xấu phá hoại.

Bảo mật website trước lỗ hổng CSRF 

Kết luận

Trên đây là 7 kĩ thuật nâng cao tính bảo mật website dành cho nhà phát triển web và đơn vị thuê ngoài thiết kế website cần lưu tâm. Hãy sử dụng những thông tin trong bài viết này một cách hiệu quả vào dự án xây dựng website của bạn. 

Nếu bạn đang cần hợp tác với một công ty thiết kế website với kinh nghiệm trên 5 năm, đã từng hợp tác với nhiều doanh nghiệp lớn tại Nhật Bản, Pháp, Singapore, Việt Nam,... hãy liên hệ với Rabiloo. Đội ngũ tư vấn chuyên nghiệp và thấu hiểu của chúng tôi luôn sẵn sàng lắng nghe nhu cầu của bạn.

Share


Cập nhật bài viết mới nhất từ chuyên gia

Không được để trống
Không được để trống
Không được để trống
Không được để trống
Tìm kiếm
Tags
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay
24/11/2023
21/12/2023
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay

Gặp gỡ và lắng nghe

Không được để trống
Không được để trống
Không được để trống
Không được để trống