Đỉnh NGUYỄN

life's a journey not a destination

Security (C# Programming Guide)

Leave a comment


Security cần thiết cho mỗi ứng dụng C#, và phải được xem xét trong mỗi giai đoạn của quá trình phát triển phần mềm (phase), chứ không riêng gì thiết kế hay cài đặt hay làm xong rồi mới kiểm tra bảo mật.

C# Specific Security Recommendations

Đây không phải danh sách toàn diện về những vấn đề bảo mật tiềm tàng. Trọng tâm và những vấn đề phổ biến và hay mắt phải trong khi phát triển.

– Dùng từ khóa checked để điều khiển để kiểm tra overflow các toán tử và sự chuyển đổi toán học.

– Luôn dùng các kiểu dữ liệu hạn chế tham số. Ví dụ, khi truyền giá trị cho phương thức để mô tả kích thước cấu trúc dữ liệu, dùng unsinged interger thay vì integer (vì kích thước không âm). Các bạn thường lạm dụng int

– Không nên quyết định dựa trên tên tập tin. Tên tập tin có thể diễn tã theo rất nhiều cách khác nhau.

– Đừng bao giờ đưa password hay các thông tin nhạy cảm vào mã

– Kiểm chứng (validate) tất cả dữ liệu nhập vào mỗi phương thức. System.Text.RegularExpressions có ích để đảm bảo dữ liệu nhập đúng định dạng, như địa chỉ email chẳng hạn.

– Không được hiện thông tin exception: nó cung cấp thông tin cho kẻ tấn công

– Chắc rằng ứng dụng chạy trong quyền hạn ít nhất có thể mà vẫn đảm bảo yêu cầu. Nhiều ứng dụng bắt buộc user phải login.

– Không được dùng thuật toán mã hóa của chính bạn. Hãy dùng System.Security.Cryptopraphy

– Không lưu thông tin nhạy cảm trong tập tin xml và config

– Kiểm tra managed code có bao đóng native code không, 1 cách hết sức cẩn thận. Chắc rằng native code được bảo đảm

– Chạy Visual Studio Code Analysys để phân tích, dò và sửa managed code.

– Microsoft FX Cop sẽ hữu dụng khi tìm lỗi bảo mật trong assembly (chỉ có từ Visual Studio 2008)

Advertisements

Author: dinhnn

Senior software developer, a technical leader. You can be reached at via email to dinhnguyenngoc@gmail.com, via my blog at dinhnguyenngoc.wordpress.com, and on Twitter @dinhnguyenngoc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s