Bảo mật web: 9 điểm đáng chú ý cho các webmaster

Email
Có thể bạn nghĩ rằng trang web của mình chẳng có thứ gì giá trị để bị hacker tấn côn, cũng chẳng cần làm gì để bảo mật web. Nhưng thực tế các website có thể bị tấn công bất cứ lúc nào. Phần lớn hacker muốn tấn công website để ăn cắp dữ liệu, phá hoại. Hoặc muốn biến máy chủ của bạn như một Mail Server để gửi thư rác, tấn công DDOS hoặc để thiết lập một máy chủ web proxy bất hợp pháp. Dưới đây là một số mẹo giúp bạn bảo mật web tốt hơn.

1. Luôn cập nhật phần mềm

Việc đảm bảo tất cả phần mềm được cập nhật bản mới nhất là điều cực kỳ quan trọng trong bảo mật web. Điều này áp dụng cho cả hệ điều hành máy chủ và bất kỳ phần mềm nào chạy trên máy chủ. Khi lỗ hổng bảo mật được phát hiện và công bố tin tặc sẽ nhanh chóng tìm cách để khai thác. Nếu bạn đang sử dụng phần mềm của bên thứ ba như CMS hoặc forum. Bạn cần đảm bảo có thể cập nhật các bản vá bảo mật nhanh nhất. Các nền tảng WordPress, Joomla hay nhiều CMS khác sẽ thông báo cho bạn khi đăng nhập trang quản trị.  Ngoài các nền tảng xây dựng website thì các phần mềm, thư viện được sử dụng để phát triển các website cũng cần được quan tâm và cập nhật kịp thời. Các lỗ hổng bảo mật sẽ xuất hiện cả trong các bộ thư viện này. Nếu các lập trình viên không cập nhật, đây cũng là nơi các hacker dễ dàng tấn công nhất. Hãy đảm bảo hệ thống của bạn luôn cập nhật bản mới nhất cho website của mình. Bao gồm cả các thư viện, gói phần mềm của bên thứ 3 được sử dụng bên trong mã nguồn.

2. Bảo mật web trước SQL Injection

SQL Injection là một lỗ hổng phố biến trên thế giới website. Trong các cuộc tấn công này, kẻ tấn công sử dụng các form dữ liệu hoặc tham số URL tấn công và truy cập hoặc thao tác trực tiếp với cơ sở dữ liệu của các website. Nếu bạn sử dụng các câu lệnh SQL thông thường mà không có cơ chế kiểm duyệt dữ liệu, website sẽ rất dễ vô tình chèn mã độc vào các câu truy vấn dữ liệu, nó có thể được sử dụng để thay đổi bảng biểu, đánh cắp thông tin và phá hoại dữ liệu. Bạn có thể ngăn chặn điều này bằng cách kiểm duyệt chặt chẽ dữ liệu đầu vào hoặc sử dụng các bộ thư viện chuẩn của các thư viện ORM. Xem xét truy vấn sau đây:
"SELECT * FROM table WHERE column = '" + $parameter + "';"
Nếu kẻ tấn công thay đổi biến $parameter thành ‘ or’ 1 ‘=’ 1 truy vấn sẽ trở thành:
"SELECT * FROM table WHERE column = '' OR '1'='1';"
Điều kiện ‘1’= ‘1’ là luôn đúng. Điều này sẽ cho phép kẻ tấn công thêm một truy vấn bổ sung vào cuối câu lệnh và câu lệnh được thực thi. Tin tặc sẽ dựa vào đây để khai thác thông tin từ CSDL, chèn mã độc, chỉnh sửa, phá hoại website của bạn. Nếu sử dụng MySQLi trong PHP, bạn lựa chọn kiểu phương án sau:
$stmt = $pdo->prepare('SELECT * FROM table WHERE column = :value');
$stmt->execute(array('value' => $parameter));

3. Phòng ngừa tấn công XSS

Những năm gần đây, XSS luôn là lỗ hổng tồn tại nhiều nhất trong các website. Tấn công XSS, có khả năng nhúng JavaScript độc hại vào các website. Các đoạn mã này có thể thực thi trong trình duyệt của người dùng. Có thể thay đổi nội dung các trang web hoặc ăn cắp thông tin để gửi lại cho hacker. Ví dụ: Nếu bạn truy cập và xem các bình luận trên một trang dính lỗ hổng XSS thì kẻ tấn công có thể đánh cắp cookies, tài khoản của bạn thông qua các mã JavaScript độc hại được chèn trong các comment khác. Có rất nhiều công cụ để phát hiện các lỗ hổng XSS cho website. Một ứng dụng trong CyStack Platform là CyStack Scanning có thể giúp bạn làm việc này mà không cần cài đặt bất cứ phần mềm nào.

4. Thận trọng với các thông báo lỗi

Hãy cẩn thận với  thông tin bạn đưa ra trên các thông báo lỗi trong sản phẩm. Chỉ cung cấp những thông tin tối thiểu cho người dùng, tránh các thông tin nhạy cảm của máy chủ. Đặc biệt bạn phải tắt chế độc DEBUG của máy chủ. Ví dụ: API-Key của các dịch vụ bên thứ 3 hoặc mật khẩu cơ sở dữ liệu là những thông tin không bao giờ được để lộ. Cũng như không cung cấp đầy đủ chi tiết các thông báo lỗi vì những điều này có thể giúp hacker khai thác các lỗ hổng như SQL injection dễ dàng hơn. Giữ chi tiết các lỗi trong nhật ký máy chủ và chỉ cho người dùng biết thông tin họ thực sự cần.

5. Kiểm duyệt dữ liệu phía máy chủ

Luôn luôn phải kiểm duyệt tất cả dữ liệu được gửi từ người dùng ở phía máy chủ. Các cơ chế kiểm duyệt dữ liệu bằng Javascript tại trình duyệt rất dễ bị tin tặc vượt qua. Bạn phải có cơ chế kiểm duyệt chính xác và triệt để để lọc các dữ liệu không hợp lệ.

6. Sử dụng mật khẩu mạnh

Để đảm bảo an toàn cho website thì việc sử dụng một mật khẩu mạnh cho tất cả các cửa ngõ như trang quản trị, cơ sở dữ liệu, email… phải đáp ứng được tiêu chuẩn “mạnh” và khó đoán. Nhiều người dùng có thể không thích việc này do thường hay quên hoặc phải mất thời gian để nhớ. Việc thực hiện các yêu cầu về mật khẩu giúp bảo vệ người dùng và website trong thời gian dài. Lưu trữ mật khẩu: Mật khẩu phải được lưu trữ dưới dạng mã hoá. Tốt hơn là sử dụng một thuật toán hàm băm một chiều như SHA. Việc thêm salt (muối) vào mật khẩu là một ý tưởng tốt. Hãy sử dụng 1 salt mới cho mỗi mật khẩu. Khi đó tin tặc nếu lấy được CSDL cũng khó có thể giải mã được mật khẩu của người dùng.

7. Cẩn thận với các form upload

Các form upload là chức năng cần thiết trên nhiều webiste. Chức năng này cho phép người dùng tải các tệp tin lên thưc mục website. Rủi ro xuất hiện khi các lập trình viên cho phép các tệp tải lên có thể thực thi máy chủ. Hoặc sử dụng các biện pháp hạn chế và phòng ngừa rất nghèo nàn, dễ dàng bị vượt mặt. Tin tặc sẽ tải lên các backdoor, webshell hoặc các tệp tin có thể thực thi được. Đó chính là các mã độc để chiếm quyền kiểm soát máy chủ website. Ngăn chặn:
  • Không nên chỉ dựa vào việc kiểm tra phần mở rộng tệp tin.
  • Một số lựa chọn đổi tên tệp khi tải lên cần thiết.
  • Phân quyền để các tệp tin độc hại sau khi tải lên cũng không thể thực thi được. Nếu bạn sử dụng apache bạn có thể tạo tệp tin .htaccess để cấu hình. Khi đó website chỉ cho phép truy cập vào các tập tin có phần mở rộng hợp lệ.
     deny from all
     <Files ~ "^\w+\.(gif|jpe?g|png)$">
     order deny,allow
     allow from all
     </Files>
Cuối cùng, giải pháp tốt là ngăn chặn truy cập trực tiếp vào tập tin sau khi tải lên. Tệp tin sau khi tải lên được lưu trữ trong một thư mục bên ngoài webroot hoặc trong cơ sở dữ liệu. Ngoài ra, nếu có thể, hãy để cơ sở dữ liệu của bạn chạy trên một máy chủ khác. Máy chủ CSDL không truy cập trực tiếp từ bên ngoài, giảm thiểu nguy cơ lộ lọ dữ liệu.

8. Luôn sử dụng HTTPS

HTTPS là một giao thức được sử dụng để cung cấp bảo mật cho website. HTTPS đảm bảo với người dùng rằng họ đang nói chuyện với máy chủ họ mong đợi và không ai có thể chặn hoặc thay đổi nội dung mà họ đang xem. Với những nội dung quan trọng cần bảo mật. Bạn nên chỉ sử dụng HTTPS để truy cập và thao tác. Ngoài ra, Google đã thông báo rằng họ sẽ tăng thứ hạng cho các website sử dụng HTTPS.  Bảo mật web: 9 điểm đáng chú ý cho các webmaster

9. Công cụ bảo mật web miễn phí

Sử dụng miễn phí các security apps trong Cystack platform bảo mật website, đăng ký ngay. Một khi bạn đã làm tốt tất cả các công việc cần thiết. Công việc tiếp theo là kiểm thử khả năng bảo mật cho website. Bạn nên sử dụng một số công cụ bảo mật web tự động để giảm thiểu chi phí và thời gian. Có rất nhiều sản phẩm trả phí và miễn phí có thể giúp bạn việc này. Các công cụ có thể phát hiện tự động các lỗ hổng và mã độc: SQL injection, XSS, File Inclusion… Một số công cụ bảo mật web: Hy vọng rằng những lời khuyên này sẽ giúp giữ cho website và thông tin của bạn an toàn. Thật vui mừng vì hầu hết các CMS có sẵn rất nhiều tính năng giúp bảo mật cho website, cũng như có nhiều công cụ hay và miễn phí dành cho các quản trị webiste.

Nhận những bài viết
chất lượng do chúng tôi chọn lọc








Email