2009-03-06 41 views
16

Cách tốt nhất để quản lý chuỗi kết nối trong ứng dụng web là gì, từ quan điểm bảo mật? Tôi đã thực hiện nó theo nhiều cách khác nhau. Tôi đã lưu trữ chúng như là các phím thiết lập web.config văn bản thuần túy. Tôi cũng đã tạo một lớp "Constants" có các thuộc tính chuỗi chỉ đọc công khai cho mỗi chuỗi kết nối.Chuỗi kết nối Các phương pháp hay nhất

Có ai có bất kỳ đề xuất nào để quản lý các chuỗi kết nối theo cách mà tôi sẽ không lo ngại về việc chúng bị phát hiện độc hại không? Tôi chắc chắn mở để mã hóa.

Trả lời

3

bạn có thể encrypt your connection strings trong tệp web.config của mình.

lưu trữ chuỗi kết nối trong một lớp dưới dạng thuộc tính hoặc hằng số không an toàn. bất cứ ai sử dụng một disassembler có thể thấy chuỗi kết nối của bạn.

cách tốt nhất là mã hóa cấu hình.

+0

Bạn cũng có thể muốn sử dụng SecureString thay vì chuỗi thông thường, do đó, kết xuất bộ nhớ sẽ không hiển thị nó ... nếu bạn đang theo cách đó. – Stimul8d

2

Bạn có thể mã hóa và giải mã các phần của web.config của bạn bằng cách sử dụng công cụ dòng lệnh aspnet_regiis:

Encrypt: aspnet_regiis -pef "connectionStrings" "c: \ thư mục \"

Decrypt: aspnet_regiis -pdf "connectionStrings" "c: \ thư mục \"

1

@vartec: đó không phải là khá SNAFU ..

IIS thực sự có thể đọc văn bản được mã hóa nếu bạn mã hóa nó bằng cách sử Đô chuẩn Cơ chế mã hóa ET không phá vỡ bất kỳ mã hóa UTF8 hoặc Unicode nào. Microsoft cũng khuyến khích điều này như một phương pháp hay nhất.

Bạn có thể xem mẫu trên mã hóa chuỗi kết nối từ này:

"Làm thế nào để: Strings kết nối an toàn khi sử dụng Data Source Controls"

http://msdn.microsoft.com/en-us/library/dx0f3cf2.aspx

2

Nếu bạn có toàn quyền kiểm soát máy chủ bạn cũng có thể lưu trữ chuỗi kết nối trong Machine.Config của bạn. Điều này có thể thuận tiện nếu bạn có nhiều ứng dụng hoạt động với cùng một máy chủ DB.

Tôi không chắc liệu giá trị của nó có mã hóa nó hay không vì bạn phải truy cập vào máy chủ ở nơi đầu tiên để xem machine.config. Và nếu máy chủ của bạn bị xâm phạm thì Encyrption sẽ không ngăn hacker lấy thông tin từ tập tin cấu hình.

+0

Nó bảo vệ bạn khỏi vô tình phơi bày nội dung của web.config, miễn là kẻ tấn công không thể tải lên tệp .aspx của riêng họ vào thư mục ứng dụng của bạn. – finnw

+0

Một báo trước tương tự áp dụng cho việc băm mật khẩu người dùng - nó bảo vệ bạn chỉ khỏi các bản sao lưu cơ sở dữ liệu bị rò rỉ. Cả hai đều vô dụng nếu kẻ tấn công có quyền kiểm soát máy chủ web - nhưng chúng đáng làm. – finnw

+0

Chúng tôi làm điều này ở nơi tôi làm việc cho các máy chủ khác nhau của chúng tôi (dev, test, prod) để chuỗi kết nối phù hợp luôn được sử dụng cho mỗi máy chủ. Hoạt động rất tốt. – spilliton

Các vấn đề liên quan