Bảo mật website cơ bản

Để bảo mật website không phải dễ, website và phần mềm chạy online trên nền web cần phải quan tâm về vấn đề bảo mật hơn rất nhiều so với phần mềm truyền thống, Vì đa số phần mềm truyền thống chạy cục bộ và ít khi chạy online mà có chạy online thì ít vấn đề bảo mật hơn chạy online. Chạy online thì ai cũng có thể tiếp cận website và phần mềm vì thế phải cẩn thận về vấn đề bảo mật.

Ở bài này mình sẽ giới thiệu chung về bảo mật websitephần mềm chạy online trên nền web ở những cấp cơ bản nhât và những con hướng mà Hacker hay nhắm đên. Tuy là cơ bản nhưng nó vẫn bảo vệ rất tốt cho website và phần mềm của bạn đây nếu làm đúng các bước sau:

Bảo mật cho website

Website là nơi dễ bị tấn công nhất vì mọi vấn đề đều hiển thị cho người dùng xem cũng vì thế mà bạn cần quan tâm nhiều hơn còn nếu website không quan trong với bạn hay công ty bạn thì không cần quan tâm cũng chả sao. Đối với website bạn cần bảo mật ở 2 nơi chính sau:

  1. Giao diện bên Ngoài của người sử dụng
  2. Phần quản trị website (đăng bài nhập bài)

Ngoài ra còn phần bảo mật máy chử web (hosting,server) mình sẽ đề cập ở bài khác.

1. Bảo mật website ở giao diện người sử dung

Đa số các vụ tấn công website đều tập trung ở phần này vì nó dễ thực hiện hơn những phần khác vì thế bạn cần quan tâm ở phần này nhiều hơn vào những vấn đề sau:

A. Form tiếp nhận dữ liệu từ người dùng: đa số website đêu có form tiếp nhận dữ liệu người dùng như form liện hệ, form đăng bài hoặc ít nhất là form tìm kiếm..

form tiếp nhận dữ liệu từ người dùng

Vì sao cần quan tâm đến khâu tiếp nhận dữ liệu người dùng?

người dùng bình thường thì sẽ không sao nhưng với hacker thì sẽ khác nhiều đấy nhé mình ví dụ sơ cho các bạn thấy như form liên hệ thường sẽ có các fields nhập liệu sau:

Họ và Tên, Địa chỉ, Email, Nội dung liên hệ...

Đối với người sử dụng bình thường thì họ và tên người ta sẽ nhập họ tên của họ, tương tự cho những ô nhập khác

Đối với hacker thì sao? bạn có ghi họ tên hay cái gì đi nữa thì họ sẽ nhập khác đi ví dụ họ nhập một đoạn code nào đó

ví dụ website của bạn sử dụng PHP thì hacker sẽ nhập 1 đoạn code PHP để lấy dữ liêu... hoặc 1 đoạn code javascript thường thì hacker sẽ nhập 1 đoạn code javascript hoặc 1 đoạn mã HTML đơn giản để kiểm tra xem khâu xử lý dữ liệu trên website của bạn như thế nào để xem thử có tấn công được không? Sau khi phát hiện website của bạn xử lý dữ liệu không tốt có thể tấn công được thì hacker sẽ tiếp tục tìm cách tấn công...

Một vấn đề nữa của form tiếp nhận dữ liệu người dùng và hiển thị lại thông tin. Ví dụ form tìm kiếm sẽ có "từ khóa tìm kiếm" khi người dùng nhập vào từ khóa tìm kiếm khi trả về kết quả, các bạn hạn chế hạn chế hiển thị lại từ khóa họ nhập kiểu như không tìm thấy "từ khóa tìm kiếm" hoặc kiểu đã tim thấy 50 kết quả cho từ khóa "từ khóa tìm kiếm"...Nếu bạn muốn hiển thị kiểu này thì hãy xử lý thật kỹ dữ liệu người nhập ở phía server nhé. 

Lời khuyên của mình là các bạn nên qua tâm dữ liệu ở phía server nhé. Nhiều lập trình viên chưa có kinh nghiệm chỉ xử lý dữ liệu ở phía client (máy khách)...

Vì sao phải xử lý dữ liệu ở phía server?

Thường các form sẽ có phần sử lý dữ liệu ở phía client kiểu như kiểu của trường nhập đó là số không cho nhập chữ hoặc chiều dài của ô nhập đó tối đa 50 ký tự chẳn hạn...Đối với người sử dụng bình thường thì có kết quả nhé nhưng đối với hacker thì nhưng cái này không có tác dụng chỉ cần một thủ thuật nhỏ là có thể họ muốn nhập gì nhập và muốn nhập bao nhiêu tùy thích vì thế mình nhắc lại là hãy xử lý dữ liệu ở phía server. Form dữ liệu người dùng cũng thường hay dùng để tấn công kiểu XSS (Cross-Site Scripting) nhiều người nói kiểu tấn công XSS không nguy hiểm chỉ ảnh hưởng ở client đây là quan niệm sai lầm. 

B. Thanh địa chỉ của website (url alias)

bảo mật website url alias

Một số website mình thấy chấp nhận mọi ký tự trên thanh địa chỉ (URL) điều này rất nguy hiểm cho website hãy hạn chế tối đa các ký tự được phép nhập vào URL ví dụ chỉ cho các ký tự chữ cái, số và một số ký tự sau (-?,&)..Cần lại phải cấm hết vì các bạn để ký tự gì cũng được thì Hacker có thể truyền dữ liệu bằng phương thức GET đến server...

Thêm những phần sau ở phần giao diện người sử dụng như: 

- Hãy sử dụng https (SSL) thay vì http HTTPS sẽ giúp web tăng cường thêm bảo mật ngoài ra nó cũng giúp tăng tốc website vì HTTP/3 (QUIC) hay HTTP/2 đều chạy trên https.

- Nếu giao diện người dùng có phần đăng nhập cho thành viên thì phần mật khẩu hãy yêu cầu chiều dài tối thiểu và các ký tự đặc biệt để tăng độ mạnh cho mật khẩu...

- Nếu phân giao diện người dùng có cho upload file (file đính kèm,hình ảnh...) bạn cần phải giới hạn các loại file dược tải lên server (chú ý phần giới hạn này nên thực hiện ở 2 phía là máy khách "client" và máy chủ "server"). 

2. Bảo mật website ở phần quản trị (nhập liệu)

Ở phần này các bạn cần quan tâm những vấn đề sau:

bảo mật website phần quản trị

- Mật khẩu đăng nhập phải mạnh (đủ chiều dài, kèm các ký tự chữ hoa chữ thường, số, ký tự đặc biệt #@$...)

- Đổi đường dẫn đăng nhập mặc định ví dụ wordpress đường dẫn đăng nhập mặc định là /wp-amdin thì đổi thành đường dẫn khác.

- Phần upload hình ảnh phải hạn chế các loại file được upload lên server. Phân quyền upload... Nếu sử dụng CKFinder thì phải thiết lập bảo mật phần upload. Tức là sau khi đăng nhập mới được upload bằng CKFinder còn nếu chưa đăng nhập thì có truy cập vào CKFinder cũng không upload được.

Đối với wordpress thì thường xuyên cập nhật những bản mới nhật của các plugin mà website đang xử dụng. Hạn chế tối đa sử dụng các plugin crack nhé.

Một phần nữa mình muốn nhắc nhở tuy nó không nằm trong 2 phần bảo mật này nhưng nó cực kỳ quan trọng, nó thuộc về phần bảo mật server hoặc trên code đó là khi chạy trên server thì hãy tắt ngay những thông báo lỗi. Ở server các bạn chạy PHP thì có thể cầu hình trong php.ini, trên code PHP thì các bạn có thể chèn đoạn code sau vào phần đầu tiên của file index.php

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 0);

Nếu bạn thực hiện kỹ những phần này thì đã hạn chế rất nhiều bị hacker tấn công website bạn rồi đó. Để bảo mật toàn diện website bạn cần phải kết hợp nhiều thứ như kết hợp thêm bảo mật website ở cấp server. Vì server giống như căn nhà, mã nguồn website như đồ vật trong căn nhà đó. Nếu căn nhà bảo mật không tốt thì trộm vào muốn lấy món nào trong nhà không được. Chúc bạn bảo vệ website bạn thành công.

 

 

 

Bài viết liên quan

Thiết kế website

Thiết kế website

Thiết kế web Liên Hoàn Phát (LHP) Với đội ngũ nhân viên giàu kinh nghiệm (công ty thành lập năm 2009). Đã thiết kế web cho rất nhiều lĩnh vực như bất động sản, du lịch, bán hàng, rao vặt, giới thiệu công, tin tức...

Thiết kế website giá rẻ

Thiết kế website giá rẻ

Website giá rẻ là gì? sự khác nhau giữa web giá rẻ và web chất lượng như thế nào?. Mọi người đều muốn có một website vừa rẻ và chất lượng có được hay không? mời bạn đọc tiếp bài sau đây.

Thiết kế website bán hàng

Thiết kế website bán hàng

Website bán hàng cần có những chức năng gì? một website bán hàng đạt chuẩn cần phải có những yêu cầu gì? website bán hàng khác với facebook như thế nào?