cách bảo mật website

9 cách bảo mật website an toàn tránh khỏi Hacker

cách bảo mật website

Bạn không thể nghĩ rằng trang web của bạn có bất cứ thứ gì có giá trị bị tấn công, nhưng các trang web bị xâm nhập mọi lúc. Phần lớn các vi phạm bảo mật trang web không phải là để ăn cắp dữ liệu của bạn hoặc làm hỏng trang web của bạn mà thay vào đó cố gắng sử dụng máy chủ của bạn như là một email để gửi thư rác, hoặc để thiết lập một máy chủ web tạm thời, thường để phục vụ các tệp tin có tính chất bất hợp pháp. Các cách phổ biến khác để lạm dụng máy bị xâm nhập bao gồm việc sử dụng các máy chủ của bạn như là một phần của một mạng botnet, hoặc để khai thác cho Bitcoins. Bạn thậm chí có thể bị đánh trúng bởi ransomware.

Hacking được thực hiện thường xuyên bằng các tập lệnh tự động được viết để quét Internet nhằm cố gắng khai thác các vấn đề bảo mật trang web. Đây là 10 cách bảo mật website hàng đầu của chúng tôi để giúp bạn và trang web của bạn an toàn trên mạng.

1. Cập nhật phần mềm

Cách bảo mật website với cập nhật.

Có vẻ như điều này là hiển nhiên, nhưng hãy lưu ý rằng việc bạn giữ tất cả phần mềm được cập nhật là điều quan trọng trong việc giữ cho trang web của bạn an toàn. Đ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 bạn đang chạy trên trang web của bạn như là một CMS hoặc diễn đàn. Khi lỗ hổng bảo mật trang web được tìm thấy trong phần mềm, tin tặc sẽ nhanh chóng cố gắng lạm dụng chúng.

Cách bảo mật web

Nếu bạn đang sử dụng một giải pháp quản lý lưu trữ thì bạn không cần phải lo lắng nhiều về việc áp dụng các bản cập nhật bảo mật cho hệ điều hành vì công ty lưu trữ sẽ đảm nhận việc này.

Nếu bạn đang sử dụng phần mềm của bên thứ ba trên trang web của bạn chẳng hạn như một CMS hoặc diễn đàn, bạn nên đảm bảo rằng bạn đang nhanh chóng áp dụng bất kỳ miếng vá bảo mật. Hầu hết các nhà cung cấp đều có một danh sách gửi thư hoặc nguồn cấp dữ liệu RSS nêu rõ bất kỳ vấn đề về bảo mật trang web nào. WordPress, Umbraco và nhiều CMS khác sẽ thông báo cho bạn về những cập nhật hệ thống hiện có khi bạn đăng nhập.

Nhiều nhà phát triển sử dụng các công cụ như Composer, NPM, hoặc RubyGems để quản lý các phần mềm phụ thuộc của họ, và các lỗ hổng bảo mật xuất hiện trong một gói phần mềm bạn phụ thuộc nhưng không chú ý đến là một trong những cách dễ dàng nhất để bắt kịp. Đảm bảo bạn luôn cập nhật các tính năng phụ thuộc và sử dụng các công cụ như Gemnasium để nhận thông báo tự động khi một lỗ hổng được tìm thấy trong website của bạn.

2. SQL injection

Cách bảo mật website với SQL Injection.

Các cuộc tấn công SQL injection là khi kẻ tấn công sử dụng trường mẫu web hoặc tham số URL để truy cập hoặc thao tác cơ sở dữ liệu của bạn. Khi bạn sử dụng Transaction SQL chuẩn, bạn dễ dàng vô tình chèn mã rogue vào truy vấn của bạn để có thể sử dụng để thay đổi các bảng, lấy thông tin và xóa dữ liệu. Bạn có thể dễ dàng ngăn chặn điều này bằng cách sử dụng các truy vấn parameterised, hầu hết các ngôn ngữ web có tính năng này và nó rất dễ thực hiện.

Cách bảo mật web

Xem xét truy vấn này:

Nếu một kẻ tấn công thay đổi tham số URL để vượt qua trong ‘hoặc’ 1 ‘=’ 1 điều này sẽ làm cho các truy vấn như thế này:

Kể từ ‘1’ bằng ‘1’, đ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 SQL cũng sẽ được thực hiện.

Bạn có thể sửa câu hỏi này bằng cách liệt kê tham số một cách rõ ràng. Ví dụ, nếu bạn đang sử dụng MySQLi trong PHP, điều này sẽ trở thành:

 

3. XSS

Cách bảo mật website với XSS.

Là các cuộc tấn công cross-site scripting (XSS) tấn công JavaScript độc hại vào các trang của bạn, sau đó chạy trong trình duyệt của người dùng và có thể thay đổi nội dung trang hoặc ăn cắp thông tin để gửi lại cho kẻ tấn công. Ví dụ: nếu bạn hiển thị nhận xét trên một trang không có xác nhận hợp lệ thì kẻ tấn công có thể gửi nhận xét chứa các thẻ tập lệnh và JavaScript, có thể chạy trong trình duyệt của mọi người dùng khác và lấy cắp cookie đăng nhập của họ, cho phép cuộc tấn công kiểm soát tài khoản của mọi người dùng đã xem bình luận. Bạn cần đảm bảo rằng người dùng không thể đưa nội dung JavaScript đang hoạt động vào các trang của bạn.

Đây là mối quan tâm đặc biệt trong các ứng dụng web hiện đại, nơi các trang được xây dựng chủ yếu từ nội dung người dùng và trong nhiều trường hợp tạo ra HTML, sau đó cũng được giải thích bởi các khuôn khổ front-end như Angular và Ember. Các khuôn khổ này cung cấp nhiều sự bảo vệ XSS, nhưng pha trộn máy chủ và kết xuất của khách hàng tạo ra các đường tấn công mới và phức tạp hơn: không chỉ là đưa JavaScript vào HTML hiệu quả, mà bạn còn có thể chèn nội dung sẽ chạy mã bằng cách chèn các chỉ thị Angular hoặc sử dụng Ember để giúp đỡ.

Chìa khóa ở đây là tập trung vào cách nội dung do người dùng tạo ra có thể thoát khỏi những giới hạn mà bạn mong đợi và được trình duyệt hiểu như là một thứ khác mà bạn muốn. Điều này cũng tương tự như bảo vệ chống lại SQL injection.

Một công cụ mạnh mẽ khác trong hộp công cụ của XSS Defender là Content Security Policy (CSP). CSP là một tiêu đề mà máy chủ của bạn có thể trả về cho trình duyệt để giới hạn cách thức và JavaScript được thực hiện như thế nào trong trang, ví dụ như không cho phép chạy bất kỳ tập lệnh nào không được lưu trữ trên miền của bạn, không cho phép nội tuyến JavaScript hoặc vô hiệu hóa eval (). Mozilla có một hướng dẫn tuyệt vời với một số cấu hình ví dụ. Điều này làm cho các tập lệnh của kẻ tấn công khó làm việc hơn, ngay cả khi chúng có thể đưa chúng vào trang của bạn.

4. Các thông báo lỗi

Cách bảo mật website với các thông báo lỗi.

Hãy cẩn thận với bao nhiêu thông tin bạn đưa ra trong các thông báo lỗi của bạn. Chỉ cung cấp lỗi nhỏ cho người dùng của bạn, để đảm bảo rằng họ không rò rỉ bí mật hiện có trên máy chủ của bạn (ví dụ như các phím API hoặc mật khẩu cơ sở dữ liệu). Không cung cấp đầy đủ các chi tiết ngoại lệ, hoặc vì những điều này có thể làm cho các cuộc tấn công phức tạp như SQL injection dễ dàng hơn. Giữ các lỗi chi tiết trong nhật ký máy chủ của bạn và chỉ cho người dùng biết thông tin họ cần.

5. Phê duyệt / xác nhận hợp lệ phía máy chủ

Cách bảo mật website với tính hợp lệ.

Xác nhận phải luôn luôn được thực hiện cả trên trình duyệt và phía máy chủ. Trình duyệt có thể bắt các lỗi đơn giản như các trường bắt buộc không được để trống và khi bạn nhập văn bản vào trường số. Tuy nhiên, chúng có thể được bỏ qua và bạn phải đảm bảo kiểm tra các xác nhận này và xác nhận máy chủ sâu hơn vì không thực hiện được điều đó có thể dẫn đến mã độc hại hoặc mã kịch bản được chèn vào cơ sở dữ liệu hoặc có thể gây ra các kết quả không mong muốn trong trang web của bạn.

6. Mật khẩu

Cách bảo mật website với mật khẩu.
Mọi người đều biết họ nên sử dụng mật khẩu phức tạp, nhưng điều đó không có nghĩa là họ luôn làm. Điều rất quan trọng là sử dụng mật khẩu mạnh đến máy chủ và khu vực quản trị trang web của bạn, nhưng cũng rất quan trọng để nhấn mạnh vào thực tiễn mật khẩu tốt cho người dùng của bạn để bảo vệ tính bảo mật của tài khoản của họ.
Nhiều người dùng có thể không thích nó, việc thực thi các yêu cầu về mật khẩu chẳng hạn như tối thiểu là khoảng tám ký tự, bao gồm một chữ cái và chữ viết hoa sẽ giúp bảo vệ thông tin của họ trong thời gian dài.
Mật khẩu phải luôn luôn được lưu trữ dưới dạng các giá trị mã hoá, tốt hơn là sử dụng một thuật toán băm một chiều như SHA. Sử dụng phương pháp này có nghĩa là khi bạn xác thực người dùng, bạn chỉ cần so sánh các giá trị được mã hóa.
Trong trường hợp có ai đó xâm nhập và đánh cắp mật khẩu của bạn, việc sử dụng mật khẩu đã băm có thể giúp hạn chế thiệt hại, vì việc giải mã chúng không thể thực hiện được. Điều tốt nhất một hacker có thể làm là một dò tìm mật khẩu bằng cách sử dụng thuật toán kết hợp các ký tự với nhau cho đến khi trùng với mật khẩu đã được mã hóa của bạn (sẽ rất rất lâu và tốn kém tài nguyên máy chủ).

7. Tải lên tệp tin

Cách bảo mật website với tệp tin (FILES).
Cho phép người dùng tải tệp tin lên trang web của bạn có thể là nguy cơ bảo mật trang web rất lớn, ngay cả khi chỉ cần thay đổi avatar của họ. Rủi ro là bất kỳ tệp tin nào tải lên vô tội vạ và có thể xem được nơi tải tệp tin, người dùng có thể thấy được các tệp tin trong hệ thống của bạn, điều này vô tình giúp hacker tìm hiểu được source web của bạn.
Nếu bạn có một hình thức tải lên tập tin sau đó bạn cần phải quét tất cả các file nghi ngờ không tốt thì sẽ tuyệt vời. Nếu bạn cho phép người dùng tải lên hình ảnh, bạn không thể dựa vào phần mở rộng tệp hoặc loại mime để xác minh rằng tệp tin là một hình ảnh vì chúng có thể dễ bị giả mạo. Ngay cả việc mở tập tin và đọc phần đầu, hoặc sử dụng các chức năng để kiểm tra kích thước hình ảnh cũng không phải là bằng chứng đầy đủ. Hầu hết các định dạng hình ảnh cho phép lưu trữ một phần nhận xét có thể chứa mã PHP có thể được thực hiện bởi máy chủ.
Vậy bạn có thể làm gì để ngăn chặn điều này? Cuối cùng, bạn muốn ngăn người dùng không thể thực hiện bất kỳ tệp tin nào họ tải lên. Theo mặc định, các máy chủ web sẽ không cố gắng thực thi các tệp có phần mở rộng hình ảnh nhưng không nên chỉ dựa vào việc kiểm tra phần mở rộng tệp như vậy. Hacker có thể đánh lừa bằng cách dùng 1 tệp có dạng như vầy image.jpg.php.
Một số cách có thể áp dụng như là đổi tên tệp khi tải lên để đảm bảo phần mở rộng tệp chính xác hoặc để thay đổi quyền truy cập tập tin, ví dụ chmod 0666 do đó không thể thực hiện được. Nếu sử dụng * nix bạn có thể tạo tệp tin .htaccess (xem bên dưới) sẽ chỉ cho phép truy cập vào tập tin thiết lập đó và ngăn chặn cách đánh lừa phần mở rộng của tệp tin như đã nói ở trên.

 

Cuối cùng, giải pháp được đề xuất là để ngăn chặn truy cập trực tiếp vào các tập tin tải lên tất cả cùng nhau. Bằng cách này, bất kỳ tệp tin nào được tải lên trang web của bạn sẽ được lưu trữ trong một thư mục bên ngoài webroot hoặc trong cơ sở dữ liệu dưới dạng blob. Nếu tệp của bạn không thể truy cập trực tiếp, bạn sẽ cần phải tạo một tập lệnh để tìm nạp các tệp tin từ thư mục riêng (hoặc trình xử lý HTTP trong .NET) và đưa chúng tới trình duyệt. Thẻ ảnh hỗ trợ thuộc tính src không phải là URL trực tiếp tới hình ảnh, do đó, thuộc tính src của bạn có thể trỏ đến tập lệnh phân phối tập tin của bạn cung cấp cho bạn đặt đúng loại nội dung trong tiêu đề HTTP. Ví dụ:

 

Hầu hết các nhà cung cấp lưu trữ đều phải đối phó với cấu hình máy chủ cho bạn, nhưng nếu bạn đang lưu trữ trang web của bạn trên máy chủ của riêng bạn thì có rất ít điều bạn muốn kiểm tra.

Đảm bảo bạn có một thiết lập tường lửa, và đang chặn tất cả các cổng không cần thiết. Nếu có thể thiết lập một DMZ chỉ cho phép truy cập vào cổng 80 và 443 từ bên ngoài. Mặc dù điều này có thể không khả thi nếu bạn không có quyền truy cập vào máy chủ của mình từ mạng nội bộ vì bạn cần mở cổng để cho phép tải tệp lên và đăng nhập từ xa vào máy chủ của bạn qua SSH hoặc RDP.

Nếu bạn cho phép các tệp tải lên từ Internet thì chỉ sử dụng các phương thức truyền tải an toàn đến máy chủ của bạn như SFTP hoặc SSH.

Nếu có thể, cơ sở dữ liệu của bạn đang chạy trên một máy chủ khác với máy chủ web của bạn. Làm điều này có nghĩa là máy chủ cơ sở dữ liệu không thể truy cập trực tiếp từ thế giới bên ngoài, chỉ có máy chủ web của bạn có thể truy cập vào nó, giảm thiểu nguy cơ dữ liệu của bạn bị lộ.

Cuối cùng, đừng quên giới hạn quyền truy cập vào máy chủ của bạn.

8. HTTPS

Cách bảo mật website với HTTPS.

HTTPS là một giao thức được sử dụng để cung cấp bảo mật qua Internet. 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 khác có thể đánh chặn hoặc thay đổi nội dung mà họ đang xem qua.

Nếu bạn có bất cứ thứ gì mà người dùng của bạn muốn riêng tư, bạn nên chỉ sử dụng HTTPS để phân phối nó. Điều đó tất nhiên có nghĩa là thẻ tín dụng và các trang đăng nhập (và các URL họ gửi đến) nhưng thường xa hơn các trang web của bạn. Một mẫu đăng nhập thường sẽ thiết lập một cookie và được gửi cùng với mọi yêu cầu khác đến trang web của bạn. Một kẻ tấn công trộm cắp được cookie này sẽ có thể bắt chước người dùng một cách hoàn hảo và tiếp quản phiên đăng nhập của họ. Để đánh bại các loại tấn công này, bạn hầu như luôn muốn sử dụng HTTPS cho toàn bộ trang web của mình.

Điều đó không còn khó khăn và tốn kém như trước nữa. Let’s Encrypt cung cấp các chứng chỉ hoàn toàn miễn phí và tự động, bạn cần phải bật HTTPS, và có các công cụ cộng đồng hiện có sẵn cho một loạt các nền tảng và khuôn khổ chung để tự động thiết lập điều này cho bạn.

Đáng chú ý là Google đã thông báo rằng họ sẽ tăng hạng của bạn trong bảng xếp hạng tìm kiếm nếu bạn sử dụng HTTPS, nên cũng sẽ có lợi ích cho SEO.

Bạn đã sử dụng HTTPS ở tất cả các trang? Hãy tiếp tục và xem xét thiết lập HTTP Strict Transport Security (HSTS).

9. Công cụ bảo mật website

Cách bảo mật website với công cụ.

Một khi bạn nghĩ rằng bạn đã làm tất cả những gì bạn có thể thì đó là thời gian để thử nghiệm bảo mật trang web của bạn. Cách hiệu quả nhất để làm việc này là thông qua việc sử dụng một số công cụ bảo mật trang web, thường được gọi là thử nghiệm thâm nhập để xem thử website của bạn có an toàn hay không.

Có rất nhiều sản phẩm thương mại và miễn phí để giúp bạn với việc này. Chúng hoạt động trên cơ sở tương tự như các tập lệnh mà các hacker sẽ sử dụng để kiểm tra tất cả các hành vi khai thác và cố gắng làm tổn hại đến trang web của bạn bằng cách sử dụng một số phương pháp đã đề cập trước đó như SQL injection.

Một số công cụ miễn phí đáng xem:

  • Netsparker (phiên bản cộng đồng miễn phí và phiên bản dùng thử có sẵn). Tốt cho thử nghiệm SQL injection và XSS
  • OpenVAS . Yêu cầu phải là trình quét mã bảo mật mã nguồn mở tiên tiến nhất. Tốt cho việc kiểm tra các lỗ hổng đã biết, hiện đang quét trên 25.000. Nhưng nó có thể khó thiết lập và yêu cầu một máy chủ OpenVAS được cài đặt mà chỉ chạy trên * nix. OpenVAS là một phần của Nessus trước khi nó trở thành một sản phẩm thương mại mã nguồn đóng.
  • SecurityHeaders.io (kiểm tra trực tuyến miễn phí). Công cụ để nhanh chóng báo cáo tiêu đề bảo mật đã đề cập ở trên (chẳng hạn như CSP và HSTS) đã bật và cấu hình một tên miền chính xác.
  • Xenotix XSS Exploit Framework Một công cụ của OWASP (Open Web Application Security Project) bao gồm một loạt các ví dụ tấn công XSS rất lớn mà bạn có thể chạy để nhanh chóng xác nhận liệu các đầu vào của trang web có dễ bị tổn thương trong Chrome, Firefox và IE hay không.
Kết quả từ các bài kiểm tra tự động có thể gây khó chịu, vì chúng thể hiện rất nhiều vấn đề tiềm ẩn. Điều quan trọng là phải tập trung vào các vấn đề quan trọng trước tiên. Mỗi vấn đề báo cáo thường đi kèm với một giải thích tốt về tiềm năng dễ bị tấn công. Có thể bạn sẽ thấy rằng một số vấn đề trung bình / thấp không phải là mối quan tâm đối với trang web của bạn.
Vậy bạn nên thử làm gì để bảo mật web? Nếu bạn có các trang chỉ hiển thị cho người dùng đã đăng nhập thì hãy cố gắng thay đổi các thông số URL như id người dùng hoặc các giá trị cookie. Một khu vực đáng kiểm tra khác là các Form, chuyển sang sử dụng POST để tránh hacker gửi mã để thực hiện XSS hoặc để tải lên một mã lệnh độc hại.

Hy vọng rằng những cách bảo mật website này sẽ giúp giữ cho trang web và thông tin của bạn an toàn. Ngoài ra còn có một số cách bảo mật website khác như sử dụng mô đun hữu ích sẵn có trong CMS để kiểm tra các lỗi bảo mật thông thường như  Security Review cho Drupal và WP Security Scan cho WordPress.

Nguồn: phpcanban.com

Tag: Cách bảo mật website, Cách bảo mật website an toàn.

9 cách bảo mật website an toàn tránh khỏi Hacker
5 (100%) 1 vote

Chia sẻ
Bài trướcUnixCoin là gì? Đánh giá dự án ICO tiềm năng UnixCoin
Bài tiếp theoCách học lập trình web hiệu quả như thế nào?
Mình là Nguyễn Công! Mình bắt đầu kiếm tiền Online từ năm 2017 và nhờ đó mà có thu nhập rất ổn định. Mình chia sẽ những dự án kiếm tiền Online tốt nhất đã được khảo sát và chắt lọc cho các bạn. Hy vọng thông qua những bài viết phân tích đánh giá ICO các bạn sẽ đưa ra quyết định đầu tư thành công!. Chúc các bạn một ngày nhiều niềm vui! Group Facebook: https://goo.gl/CXVpWU Group Telegram: https://goo.gl/7w3c4t

BÌNH LUẬN

Please enter your comment!
Please enter your name here