Bảo mật website là một việc làm quan trọng giúp cho web của
bạn không bị hack, ăn cắp thông tin hay gặp bất cứ trở ngại gì trong quá trình
làm việc. Dưới đây WEB3A.VN sẽ đưa ra một số điều bạn cần biết trong quá trình
bảo mật website.
Bạn khá yên tâm, tin tưởng và luôn nghĩ rằng website của bạn
sẽ không bao giờ bị tấn công (hack website) bởi vì nhiều lí do khác nhau:
- Lí do 1: Website của bạn chẳng có gì để hack cả. Tôi chỉ thiết kế website giới thiệu công ty thì ai lại “rảnh rỗi” mà đi hack –> thật ra hacker luôn có những lý do khác nhau từ nhỏ đến lớn để hack vào các website như của bạn.
- Lí do 2: Website của bạn đang sử dụng công nghệ ABC và nó rất xịn. Đảm bảo sẽ không ai hack bạn cả –> có thể bạn đúng, nhưng cũng có thể bạn “thiếu”. Những lỗ hổng trong website luôn xuất hiện cho dù vài chục năm nay người ta luôn cố gắn để lấp đầy. Nhưng nó vẫn còn đó và sẽ không ai mạnh miệng khẳng định 100% là không bị hack.
- Lí do 3: Cho dù website tôi có bị hack thì cũng chẳng làm sao với tôi cả. Tôi không quan trọng –> bạn đang đánh giá thấp vai trò trang web của mình và tiềm năng kinh doanh trên mạng internet.
Một số cách thức hữu ích để bảo mật website
Thường xuyên cập nhật phần mềm ứng dụng website
Có vẻ như đây là một điều hiển nhiên, việc đảm bảo 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 tránh
khỏi những nguy hiểm luôn luôn rình rập. Điều này có thể á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 bao gồm CMS hoặc
diễn đàn, khi lỗ hổng bảo mật website được tìm thấy trong phần mềm ứng dụng,
tin tặc sẽ chớp lấy thời cơ nhanh chóng cố gắng lạm dụng chúng.
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 sở hữu đặc quyền sẽ giúp bạn quản lý việc này.
Nếu bạn đang sử dụng phần mềm của bên thứ ba chẳng hạn như một CMS hoặc diễn đàn, bạn nên đảm bảo rằng bạn đã sở hữu một phiên bản bảo mật khác. Hầu hết các nhà cung cấp sản phẩm đều có một danh sách gửi thư thông báo hoặc nguồn cấp dữ liệu RSS nêu rõ bất kỳ vấn đề về bảo mật website liên quan. 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ó trong mỗi lần bạn đăng nhậ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 công bố ở một trong các thành phần website của bạn.
Bảo mật SQL injection
SQL injection là hình thức tấn công trang web phổ biến nhất
dựa trên các thao tác form website, lý do là các nội dung này thường không được
mã hoá chính xác và công cụ hacking tận dụng các điểm yếu này để hoạt động phá
hoại, loại khai thác này rất dễ dàng để đạt được mục đích ngay cả những tin tặc
thiếu kinh nghiệm cũng có thể thực hiện hành động này, nghiêm trọng hơn, nếu lỗi
này được thực hiện bởi các tin tặc có tay nghề cao, chỉ cần một điểm yếu trong
source code website có thể tiết lộ quyền truy cập root của các máy chủ web và từ
đó tin tặc có thể tấn công sang các máy chủ mạng khác.
Structured Query Language (SQL) là ngôn ngữ gần như phổ quát
của cơ sở dữ liệu cho phép lưu trữ, thao tác và truy xuất dữ liệu. Cơ sở dữ liệu
sử dụng SQL bao gồm MS SQL Server, MySQL, Oracle, Access… và dĩ nhiên, các cơ sở
dữ liệu này cũng phải chịu cuộc tấn công SQL injection. Các chương trình chống
vi-rút cũng không mấy hiệu quả để có thể chặn các cuộc tấn công SQL injection,
đơn giản vì chúng được sử dụng để phát hiện và ngăn chặn một loại dữ liệu hoàn
toàn khác.
Cách phòng ngừa SQL injection phổ biến nhất được tạo thành từ hai thành phần. Đầu tiên là thường xuyên cập nhật và vá lỗi của tất cả các máy chủ, dịch vụ và ứng dụng, sau đó sản xuất và sử dụng tốt source code đồng thời kiểm thử source code trang web không cho phép tồn tại các lệnh SQL có dấu hiệu bất thường.
Bảo mật website với XSS
Tấn công cross-site scripting (XSS) hay tấn công JavaScript
độc hại vào website 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 web 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 một thông điệp 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ọ, từ đó cho phép xảy ra cuộc tấn công nhằm 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 vào các trang đang hoạt động 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 xử lý front-end như Angular và Ember. Các frameworks này cung cấp nhiều sự bảo vệ XSS nhưng lại kết hợp liên lạc giữa máy chủ và truy cập của khách hàng đôi lúc có thể tạo ra các đường tấn công mới phức tạp hơn, không chỉ là tích hợp JavaScript vào HTML hiệu quả, mà bạn còn có thể chèn nội dung source code bằng cách chèn các lệnh Angular hoặc Ember.
Chìa khóa ở đây là tập trung vào nội dung do người dùng tạo
ra có thể thoát khỏi giới hạn mà bạn mong đợi và được trình duyệt hiểu như là một
khía cạnh khác mà bạn đang dự định, điều này cũng tương tự như bảo vệ chống lại
SQL injection. Khi tự động tạo ra HTML, sử dụng các hàm rõ ràng để thực hiện
các thay đổi bạn đang tìm kiếm (ví dụ: sử dụng element.setAttribute và
element.textContent, chứ không phải tự thiết lập element.innerHTML bằng tay) hoặc
sử dụng các hàm trong frameworks tự động chạy phù hợp hơn là kết nối chuỗi hoặc
thiết lập nội dung HTML.
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 thuộc tính 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 JavaScript được thực hiện như thế nào trong website, 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 tên miền của bạn, không cho phép JavaScript inline hoặc vô hiệu hóa hàm eval(), điều này làm cho các tập lệnh của tin tặc khó làm việc hơn, ngay cả khi chúng có thể đưa vào trang web của bạn.
Bảo mật với các thông báo lỗi website
Hãy cẩn thận với thông tin bạn hiển thị trong các thông báo lỗi, chỉ cung cấp những lỗi tối thiểu cho người dùng để đảm bảo rằng không bị rò rỉ bí mật trên máy chủ của bạn (ví dụ: 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ệ 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 trở nên dễ dàng hơn, lưu trữ 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.
Phê duyệt / xác nhận hợp lệ bảo mật website phía máy chủ
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 bỏ trống hoặc khi bạn nhập văn bản vào các trường số. Tuy nhiên, thỉnh thoảng 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ì không thực hiện được điều đó có thể dẫn đến tình huống mã độc được chèn vào cơ sở dữ liệu có thể gây ra các kết quả không mong muốn trong trang web của bạn.
Cài mật khẩu có độ bảo mật cao
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 sẵn sàng thực hiện điều đó. Điều rất quan trọng
là sử dụng mật khẩu đủ mạnh cho máy chủ và khu vực quản trị website, nhưng cũng
cần nhấn mạnh mật khẩu tốt cho người dùng của bạn để bảo vệ tính bảo mật tài
khoản của họ. 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 tuyệt đối an toàn.
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ì khó có thể giải
mã được chúng.
Bên cạnh đó bạn cũng cài đặt mật khẩu hai lớp cho tất cả các công cụ làm việc online của mình, từ tài khoản email, tài khoản hosting, tài khoản quản trị website. Tâm lý của tin tặc là chọn những trang nào lơ đễnh, ít phòng bị thì nó sẽ tấn công trươc, những trang nào có độ bảo mật cao, khó quá thì cho qua.
Bảo mật 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 tương tác với máy chủ mong
đợi và không ai khác có thể chặn hoặc thay đổi nội dung mà họ đang xem.
Nếu có bất cứ thứ gì mà người dùng muốn riêng tư, bạn nên chỉ
sử dụng HTTPS để phân phối nó. Một form đăng nhập thường sẽ được thiết lập
cookie, được gửi cùng với mọi yêu cầu khác đến trang của bạn mà người dùng thao
tác đăng nhập và được sử dụng để xác thực các yêu cầu đó, tin tặc sẽ có thể bắt
chước người dùng một cách hoàn hảo và từ đó tiếp quản phiên đăng nhập của họ. Để
đối phó các loại tấn công này, hãy sử dụng HTTPS cho toàn bộ website của mình.
Điều đó không còn khó khăn và tốn kém như trước nữa, bạn chỉ cần bật HTTPS và
có các công cụ cộng cộng hiện có cho các frameworks để tự động thiết lập điều
này cho bạn.
Thêm vào đó, Google đã thông báo rằng họ sẽ tăng xếp hạng tìm kiếm của website nếu bạn sử dụng HTTPS, đây là một điều hoàn toàn có lợi cho việc SEO trang web
Hy vọng rằng những lời khuyên trên đây sẽ giúp cho trang web và thông tin của bạn an toàn.
>>> Xem thêm:
Bình luận bài viết