2011-07-23 36 views
12

Nếu tôi mã hóa phần chuỗi kết nối, bất kỳ ai có web.config đều có thể mã hóa lại thông tin.Mã hóa chuỗi kết nối, ý tưởng là gì?

Không có chìa khóa mật khẩu mà chỉ được biết đến với tôi hay cái gì tương tự ....

ý tưởng ở đây là gì ?? Bất cứ ai sẽ có mà web.config với VS, sẽ có thể giải mã các thông tin ...

Tôi không có ý tưởng ...

+7

bạn chỉ có thể unencrypt giá trị nếu bạn có quyền truy cập vào máy nơi web.config là, hoặc biết chìa khóa máy. Bạn sẽ phải bị tổn hại hoàn toàn để ai đó có được điều đó. – hatchet

+0

nhờ hatchet: Điều đó đã giúp tôi hiểu. –

+0

Lời khuyên của tôi là đọc tài liệu: http://msdn.microsoft.com/en-us/library/53tyfkaw(v=VS.100).aspx và sau đó hỏi một câu hỏi được nhắm mục tiêu nhiều hơn. Câu hỏi của bạn quá mơ hồ như không thể trả lời được. –

Trả lời

17

Bạn giả định sai rằng bất kỳ ai cũng có thể giải mã web.config. Khi phần tập tin cấu hình được mã hóa, nó chỉ có thể được giải mã trên cùng một máy (hoặc máy có cùng một khóa - đây là dành cho trang web).

Thông thường, thật dễ dàng để tải xuống web.config thực tế từ xa (thông qua lỗ hổng bảo mật). Nhưng người dùng độc hại sẽ không có khóa của bạn và sẽ không có thể giải mã tệp (hoặc các phần có dữ liệu nhạy cảm).

Vấn đề ở đây là bạn phải tin tưởng trang web của mình, đó là khóa nhạy cảm sẽ không được phân phối.

+0

câu trả lời tốt đẹp và sạch sẽ cho câu hỏi của tôi. cảm ơn –

0

Tôi không biết liệu công cụ aspnet_regiis.exe sử dụng phím để mã hóa hoặc giải mã web.config. Nhưng Nếu nó lưu trữ trong web.config sau đó Nó sẽ được giải mã bởi bất cứ ai có cài đặt utnetility aspnet_regiis được cài đặt nhưng Nếu nó được lưu trữ trong machine.config hoặc trong thư mục Net Framework của máy tính hơn Nó sẽ không được giải mã bởi bất cứ ai.

+0

Nó thường được đặt trong machine.config hoặc lưu trữ các cửa sổ an toàn. Đó là ** không bao giờ ** được lưu trữ trong web.config chính nó – oleksii

+0

cảm ơn đã xóa tôi. –

1

Bạn có thể chỉ định nhà cung cấp mã hóa, nhưng mặc định là nhà cung cấp RSA. Có một chìa khóa được sử dụng, nhưng nó là 'bí mật'. Vì vậy, ai đó sẽ cần một đặc quyền để chạy các ứng dụng trên máy chủ của bạn hoặc truy cập không hạn chế vào hệ thống tệp để không mã hóa web.config của bạn.

này (đặc biệt là bước 2) nói về nó:

http://msdn2.microsoft.com/en-us/library/ms998283.aspx

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