Trung tâm hỗ trợ

9 thủ thuật bảo mật thiết kế website khỏi hacker


Hai chuyên gia bảo mật web đã tư vấn một số mẹo vặt để tối ưu hóa bảo mật thiết kế web của bạn khỏi sự tấn công của hacker một cách đơn giản và tốt nhất.

Có thể bạn nghĩ rằng trang web của mình không có gì đáng giá để các hacker tấn công, nhưng tất cả đều có thể trở thành đối tượng của hacker từ “non trẻ” tới “chuyên nghiệp”. Phần lớn các vi phạm an ninh website không phải nhằm ăn cắp dữ liệu, thay đổi nội dung website của bạn, mà thay vào đó là nỗ lực sử dụng máy chủ của bạn như một relay email spam, thiết lập các máy chủ web tạm thời nhằm phục vụ các tập tin của một hành động bất hợp pháp.

Các thủ thuật bảo mật web khỏi hacker

Đối với các thiết kế web bán hàng, thương mại điện tử, khi website chứa nhiều dữ liệu riêng tư của khách hàng thì việc bị hacker tấn công sẽ gây ảnh hưởng mạnh mẽ đến tài chính và uy tín của công ty. Dưới đây là 10 lời khuyên của chúng tôi để giúp cho website của bạn được an toàn khỏi tay hacker.

1) Giữ cho phần mềm luôn được cập nhật

Nghe có vẻ buồn cười, nhưng đảm bảo cho các phần mềm luôn được cập nhật là một việc làm quan trọng trong việc bảo mật website. Điều này áp dụng cho cả hai hệ điều hành  máy chủ và phần mềm chạy trên thiết kế web của bạn như một [CMS] hoặc diễn đàn. Khi lỗ hổng bảo mật web được tìm thấy trong các phần mềm, tin tặc nhanh chóng lợi dụng nó để tấn công.

Nếu bạn đang sử dụng một giải pháp managed hosting thì bạn không cần phải lo lắng quá nhiều về việc áp dụng các bản cập nhập bảo mật cho hệ điều hành bởi vì các công ty hosting đã thực hiện điều 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 mình như một CMS hoặc diễn đàn, bạn nên chắc chắn bạn sẽ nhanh chóng sử dụng các bản vá lỗi 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 chi tiết về bất kỳ vấn đề bảo mật web. Wordpress, Umbraco và nhiều CMS khác thông báo với bạn về những bản cập nhập hệ thống ngay khi bạn đăng nhập.

2) SQL injection

Các cuộc tấn công SQL injection xảy ra khi hacker sử dụng một trường mẫu web hoặc tham số [URL] để đạt được quyền truy cập vào cơ sở dữ liệu hoặc thao tác của bạn. Khi bạn sử dụng tiêu chuẩn Transact SQL, rất dễ dàng vô tình chèn mã giả mạo vào truy vấn của bạn mà có thể làm thay đổi bảng, lấy thông tin và xóa dữ liệu trên website. Bạn có thể dễ dàng ngăn chặn điều này bằng cách luôn 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à rất dễ dàng để thực hiện.

 

SQL injection

3) XSS

XSS (Cross site scripting) là lỗ hổng cho phép hacker có thể chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng. 

Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS. Giống như SQL Injection, bản chất của lỗi XSS là không kiểm soát kỹ dữ liệu nhập đầu vào, vì thế biện pháp hiệu quả nhất là kiểm tra kỹ dữ liệu nhập vào từ người dùng, chặn các từ khóa nguy hiểm, chỉ chấp nhận những dữ liệu hợp lệ.

4) Thông báo lỗi

Hãy cẩn thận với những thông tin đưa ra trong thông báo lỗi của bạn. Ví dụ bạn có một biểu mẫu đăng nhập vào thiết kế web của mình, bạn nên suy nghĩ về những từ ngữ mà bạn sử dụng để thông báo về việc đăng nhập thất bại. Bạn nên sử dụng các thông điệp chung chung như “tên đăng nhập hoặc mật khẩu không chính xác”. Nếu hacker cố gắng tạo một cuộc tấn công mạnh trong việc dò tên đăng nhập và mật khẩu người dùng thì nếu thông báo trường nhập không chính xác thì hacker sẽ biết và chỉ tập trung vào trường còn lại.

 

5)  Server side validation

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

6) Mật khẩu

Mọi người đều biết rằng họ nên sử dụng một mật khẩu phức tạp, nhưng không có nghĩa là tất cả đều thực hiện. Sử dụng mật khẩu mạnh là rất quan trọng trong việc bảo mật server và website. Bên cạnh đó, bạn có thể đưa ra các yêu cầu để tăng độ mạnh cho mật khẩu của người dùng trên website để bảo mật thông tin của họ.

Có thể một số người dùng không thực sự thích nó. Yêu cầu mật khẩu tối thiểu 8 ký tự bao gồm ký tự hoa và số sẽ giúp bảo vệ thông tin tốt.

Mật khẩu phải luôn luôn được lưu trữ như là các giá trị được mã hóa, tốt nhất sử dụng một thuật toán hashed password như SHA. Sử dụng phương pháp này có nghĩa là bạn phải chứng thực mình là người dùng chỉ khi so sánh được các giá trị đã mã hóa. Đối với bảo mật trang web phụ, một ý tưởng tốt là sử dụng chuỗi cho mật khẩu. 

Trong trường hợp một người nào đó hack và ăn cắp mật khẩu của bạn, bằng cách sử dụng hashed password có thể giúp hạn chế thiệt hại, chẳng hạn như việc giải mã. Rất may, nhiều CMS cung cấp cho quản trị viên rất nhiều tính năng bảo mật web được xây dựng, có thể để thiết lập mật khẩu mạnh tối thiểu.

7) Tập tin tải lên

Cho phép người dùng tải lên các tập tin trên thiết kế web tiềm ẩn một nguy cơ bảo mật web cao, thậm chí đơn giản chỉ là việc thay đổi avatar. Các rủi ro đó là bất kỳ tập tin được tải lên có thể chứa một kịch bản khi thực hiện trên máy chủ của bạn có thể khiến website bị tấn công.

Nếu bạn có một form biểu mẫu tải lên tập tin, bạn cần phải xem xét các file có nghi ngờ lớn. Nếu bạn đang 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 tin hoặc mime type để biết được tập tin được làm giả. Ngay cả khi mở tập tin và đọc các tiê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 có 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 bình luận trong đó có chứa mã PHP mà có thể được thực hiện bởi các máy chủ.

Vì vậy, những gì bạn có thể làm để ngăn chặn điều này? Bạn muốn ngăn chặn người dùng tải tập tin lên web? Theo mặc định, máy chủ web sẽ không chạy các file có phần mở rộng hình ảnh, nhưng nó cũng không được khuyến khích để chỉ dựa vào kiểm tra phần mở rộng tập tin với các tên image.jpg.php đều được thông qua.

Một số tùy chọn để thay đổi tên của tập tin tải lên trên để đảm bảo các tập tin mở rộng đúng, hoặc để thay đổi quyền truy cập file, ví dụ, chmod 0666 vì vậy nó không thể được thực hiện. Nếu sử dụng * nix bạn có thể tạo một tập tin .htaccess (xem bên dưới) mà sẽ chỉ cho phép truy cập vào các tập tin thiết lập ngăn chặn các cuộc tấn công mở rộng đôi đã đề cập trước đó. 

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

Hầu hết các nhà cung cấp lưu trữ đối phó với các 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ó vài điều bạn phải kiểm tra.

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

Nếu bạn đang cho phép các tập tin được tải lên từ Internet chỉ sử dụng phương pháp vận chuyển an toàn cho máy chủ của bạn như SFTP hoặc SSH.

Nếu có thể có cơ sở dữ liệu của bạn đang chạy trên một máy chủ khác với các máy chủ web của bạn. Việc làm này có nghĩa là các máy chủ cơ sở dữ liệu có thể không được 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 được tiếp xúc.

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

8) SSL

SSL là viết tắt của từ Secure Sockets Layer. Đây là một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết được mã hóa giữa máy chủ web và trình duyệt. Liên kết này đảm bảo tất cả các dữ liệu trao đổi giữa máy chủ web và trình duyệt luôn được bảo mật và an toàn.

SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các trình duyệt được mang tính riêng tư, tách rời. SSL là một chuẩn công nghiệp được sử dụng bởi hàng triệu trang web trong việc bảo vệ các giao dịch trực tuyến với khách hàng của họ.

9) Sử dụng các công cụ bảo mật web

Sau khi đã thử nghiệm tất cả các mẹo vặt bảo mật web ở trên, bạn nên dành thời gian kiểm tra an ninh trang web của mình. Cách hiệu quả nhất để làm điều này là sử dụng một số công cụ bảo mật website, thường được gọi là các thử nghiệm thâm nhập.

Có rất nhiều sản phẩm thương mại và miễn phí để hỗ trợ bạn trong việc này. Tham khảo một số  Công cụ kiểm tra lỗ hổng trên thiết kế web, ứng dụng web và chọn ra cho mình một công cụ phù hợp.

 

Hy vọng rằng những lời khuyên trên sẽ giúp cho trang web và thông tin của bạn được bảo mật an toàn. Hiện nay hầu hết các CMS đều có nhiều tính năng bảo mật web có sẵn nhưng tốt nhất bạn cũng nên trang bị sẵn cho mình một số kiến thức khai thác bảo mật phổ biến để đảm bảo bạn luôn thực hiện đúng cách.

Thiết kế web IMS chúc các bạn thành công!

Hơn +10,000 doanh nghiệp và chủ shop đang bán hàng như thế nào ?
Bạn mong muốn có một website thương hiệu phù hợp với lĩnh vực hoạt động doanh nghiệp. Hãy liên hệ với chúng tôi, mọi mong muốn của bạn sẽ được lắng nghe.Chúng tôi mong muốn nhận thông tin yêu cầu của quý khách hàng qua đường dây nóng 0938 91 96 05 để chúng tôi có thể tư vấn một cách tốt nhất.
IMS luôn sẵn sàng phục vụ quý khách hàng 24/7, mọi thắc mắc xin hãy gọi điện với chúng tôi qua số hotline 0938 91 96 05 để được tư vấn trực tiếp Liên hệ báo giá