Bảo mật website ASP.NET là tiêu chí số 1 khi thiết kế ra một website. SecurityBox đã tổng hợp và gửi đến các “coder” 6 tiêu chí đáng lưu tâm sau đây.
Tổng hợp 6 nguyên tắc bảo mật website ASP.NET “Coder” phải biết
- Website phải được an toàn trước khả nǎng bị tấn công Cross-Site Scripting
Theo SecurityBox, cách tấn công Cross-Site Scripting dễ dàng thấy nhất là khi hacker có ý định chèn một đoạn mã độc vào mẫu điền(form) nhập thông tin. Nội dung input vào có thể chứa các tag <object> hoặc là <script> đi kèm với những đoạn mã độc vô cùng nguy hiểm. Khi trình duyệt của bạn truy cập vào trang đó, nó sẽ cho rằng các đoạn mã này là do máy chủ gửi đến. Sau đó, nó sẽ chạy đoạn mã này ở cấp độ bảo mật thông thường, tất nhiên người dùng sẽ lãnh hậu quả nghiêm trọng khi chạy đoạn mã đó.
Lời khuyên của SecurityBox gửi đến các bạn đó là muốn an toàn trước kiểu tấn công Cross-Site Scripting cần để tâm đến các điều sau đây. Thứ nhất đó là thường xuyên cập nhật tất cả những bản vá bản sửa lỗi mới nhất từ IIS và Windows. Thứ 2 đó là phải luôn lọc toàn bộ những ký tự đặc biệt từ người dùng nhập vào ví dụ như < > ” ‘ % ( ) & + – -. Phải lọc những ký tự này để kết xuất dựa trên cơ sở dữ liệu người dùng nhập vào.
Code:
Để lọc được các dữ liệu đặc biệt cần phải xác định được chính sác lược đồ mã hóa kỹ tự trên những website, ở trong <meta> hoặc phần <header>.
Code:
2.Application có thể không dùng những cookie thường trực
Trước khi nói đến vấn đề bảo mật website ASP.NET , SecurityBox sẽ giúp bạn hiểu cookie thường trực là gì. Nó thông thường sẽ là những folder và được những application của website gửi đến trình duyệt của người dùng và sẽ tồn tại trong ổ cứng của người sử dụng kể cả khi họ không dùng đến trình duyệt. Chúng sẽ lưu trữ lại tất cả những thông tin về người dùng để những application website có thể tùy biến nội dung để phù hợp với tất cả những người sử dụng hay có thể cho phép người dùng bỏ qua bước đăng ký hoặc đăng nhập.
Cookie không thường trực sẽ được lưu trong máy tính của người dùng và tồn tại trong một khoảng thời gian nhất định khi người dùng sử dụng trình duyệt. IIS sẽ dựa vào những cookie đó để có thể xác định 1 phiên ASP. Nếu không có nó, IIS sẽ không thể duy trì một một phiên làm việc. Nếu như trang của bạn dùng cookie thường trực , không nên để IIS lưu chúng trong log của IIS. Nếu như log đã lưu lại toàn bộ thông tin đăng nhập của người dùng thì sẽ có khả năng các thông tin này sẽ bị lộ ra ngoài bởi một thỏa hiệp nào đó.
SecurityBox khuyên bạn nên cân nhắc để đưa ra lựa chọn sáng suốt cho mình khi muốn bảo mặt website ASP.NET của bạn.
- Dùng SSL với toàn bộ các site “nhạy cảm” được chuyển ở trên Internet
SSL sẽ có nhiệm vụ mã hóa tất cả những thông điệp TCP/TP để chúng không bị “nhòm ngó” ở trên đường truyền hoặc là có một giải pháp khác đó là mã hóa VPN. Những điều này là rất cần thiết nếu như bạn muốn gửi các thông tin tối mật như số thẻ tín dụng của bạn qua mạng Internet. Khả năng xâm nhập đường truyền rồi lấy cắp những thông tin tuyệt mật sẽ là rất thấp nhưng không phải là không có.
Theo nghiên cứu của SecurityBox, người dùng sẽ không đặt quá nhiều niềm tin vào website của bạn nếu như toàn bộ thông tin của họ không được mã hóa một cách toàn diện. Tuy vậy, mặt không tốt của SSL là sẽ có thể làm chậm lại hiệu năng thực thi của những ứng dụng. Mức độ sử dụng tài nguyên trong CPU yêu cầu ở trong tiến trình mã hóa và phiên dịch cho một trang SSL sẽ cao hơn từ 10 % đến 100% khi so sánh với những trang không bình thường. Nếu như máy chủ có mật độ những trang SSL cao, bạn sẽ phải để tâm đến việc dùng thêm bộ tăng tốc cho SSL phần cứng.
- Người dùng sẽ phải đăng nhập khi muốn dùng ứng dụng
Nguyên tắc bảo mật website ASP.NET này, SecurityBox khuyên các bạn áp dụng nó cho những application mà có yêu cầu việc đăng nhập. Việc này có nghĩa là đăng nhập tự động dựa vào cookie sẽ là không được chấp nhận. Tuy người dùng có thể sẽ cảm thấy phiền phức nhưng nếu cho người dùng tự động đăng nhập tự cookie đó sẽ có vô vàn hiểm nguy.
Một giải pháp để bảo vệ mật khẩu của bạn mà SecurityBox muốn gửi đến các bạn trong trường hợp này đó là tắt tính năng Autocomplete của trình duyệt trong những ô điền mật khẩu. Việc này có thể dễ dàng làm được bằng cách thêm autocomplete = “off” cho tag <form> hay <input>.
Code:
- Người dùng sẽ được đăng xuất khi thoát khỏi site
SecurityBox sẽ đưa đến cho bạn một ví dụ bảo mật web service ASP.NET cụ thể với phần này. Ví dụ như có một người dùng đang lướt một trang trên website của bạn, và rồi họ thoát khỏi và vào một website mới nhưng lại không thích rồi trở lại website của bạn bằng phím mũi tên ⇐ trên trình duyệt của bạn.
Ở trong trường hợp này, application phải đưa ra yêu cầu người dùng đăng nhập lại. Có những trường hợp giống như trường hợp ở trên của người dùng phải phụ thuộc toàn bộ vào những script chạy ẩn ở trong trình duyệt mà không thể dựa vào máy chủ bởi vì nó không thể biết người dùng đã lướt những trang nào đã ở những đâu.
SecurityBox khuyên bạn trong trường hợp này cách bảo mật website ASP.NET tốt nhất cho vấn đề này đó là dùng bảo mật Proxy Server giống như của Netegrity SiteMinder. Giải pháp này sẽ kiểm tra và giám sát toàn bộ những request Website từ trình duyệt của bạn và chép lại mọi địa chỉ mà trình duyệt của bạn đã vào và để application có thể xem xét và kiểm tra. Một cách thức không hoàn chỉnh ở trong việc xem xét những hạn chế site có thể làm được bằng cách nhập đoạn mã sau
Code:
Ví dụ như người dùng muốn truy cập vào bất kể một website nào đó không giống với website đã được từ một link của một website khác, thì chúng sẽ phản hồi bằng 1 lệnh từ chối. Mặc dù vậy, cách này sẽ không ngăn chặn được việc một người dùng rời bỏ website của bạn đến một trang khác nhưng rồi lại trở lại trang của bạn và tiếp tục công việc của họ.
6.Ngắt kết nối khi người dùng không có tác động đến website sau thời gian
SecurityBox đưa ra cho bạn 2 lựa chọn để bảo mật website ASP.NET cho vấn đề này.
Giải pháp thứ nhất đó là ta sẽ dùng IIS manager rồi sau đó đặt giới hạn cho phiên làm việc ASP với một khoảng thời gian cụ thể hoặc bạn mong muốn trong bao lâu. Ở trong ứng dụng, lưu dữ liệu truy cập vào trong 1 biến phiên làm việc và sau đó sẽ xem xét và kiểm tra ở trên tất cả website mà người dùng duyệt qua. Nếu như thông tin truy cập không nằm trong 1 biến phiên, người dùng đó sẽ bị ngắt kết nối tới website và ứng dụng sẽ cần chuyển hướng họ đến trang đăng nhập hệ thống.
Theo nghiên cứu của SecurityBox, nếu như chưa phải tin cậy tuyệt đối, chính bạn hãy viết một đoạn mã để xử lý ngắt kết nối người dùng ở trong “Session_OnEnd ở tệp Global.asa”. Giải pháp bảo mật website ASP.NET này phía client dùng một chút JS(JavaScript), cho thêm đoạn mã sau vào đầu của tất cả những website kết xuất từ ứng dụng
Code:
Để ngắt kết nối người dùng ứng dụng chúng ta sẽ dùng trang “Logout.ASP”. Với 9000000 mili giây chính là khoảng thời gian lớn nhất mà người sử dụng vẫn có thể giữ phiên làm việc của họ ở trong khi không có một hoạt động nào liên quan đến website của bạn.
Như vậy, SecurityBox đã gửi đến các bạn những nguyên tắc bảo mật website ASP.NET giúp bạn có thể bảo mật website của bạn an toàn hơn trước những tin tặc có ý định đánh cắp dữ liệu từ site của bạn. Hãy truy cập site của chúng tôi thường xuyên để tìm hiểu thêm những thông tin mới nhất về lĩnh vực bảo mật nhé. SecurityBox chúc các bạn có một ngày làm việc vui vẻ!