2008-08-13 40 views
7

Tôi có một trang web hoạt động đúng theo IIS 6.0: Nó xác thực người dùng bằng thông tin đăng nhập cửa sổ và sau đó khi nói chuyện với dịch vụ truy cập DB, nó sẽ vượt qua các thông tin đăng nhập.Mạo danh trong IIS 7.0

Trong IIS 7.0, cùng một cài đặt cấu hình không vượt qua thông tin xác thực và DB bị tấn công với NT AUTHORITY \ ANONYMOUS.

Có điều gì tôi thiếu không? Tôi đã tắt ANONYMOUS truy cập trong trang web IIS 7.0 của tôi, nhưng tôi không thể có được điều để làm việc.

Đây là những thiết lập mà tôi đang sử dụng trên cả hai IIS 6.0 và 7.0:

<authentication mode="Windows"> 
<identity impersonate="true"> 

gì thay đổi 6,0-7,0?

Trả lời

8

Đã có các thay đổi giữa IIS7 và IIS6.0. Tôi tìm thấy cho bạn một bài đăng trên blog có thể thực sự giúp bạn (click here to see it).

Bạn có đang chạy ứng dụng của mình ở Chế độ tích hợp hoặc ở chế độ cổ điển không? Từ những gì tôi thấy, việc đặt thuộc tính Mạo danh ở đúng sẽ hiển thị cho bạn lỗi 500 với thông báo lỗi sau:

Lỗi máy chủ nội bộ. Đây là HTTP Lỗi 500.19: Không thể truy cập trang được yêu cầu vì dữ liệu cấu hình có liên quan cho trang này là không hợp lệ.

Dưới đây là cách khắc phục được đề xuất:

Cách giải quyết:

1) Nếu ứng dụng của bạn không dựa trên mạo danh người dùng yêu cầu trong BeginRequest và giai đoạn AuthenticateRequest (các chỉ các giai đoạn trong đó mạo danh không phải là có thể ở chế độ Tích hợp), bỏ qua lỗi này bằng cách thêm thông tin sau vàoweb.config 210 ứng dụng của bạn:

<validation validateIntegratedModeConfiguration="false" 

/>

2) Nếu ứng dụng của bạn dựa vào mạo danh trong BeginRequest và AuthenticateRequest, hoặc bạn không chắc chắn, di chuyển đến chế độ cổ điển.

Tôi hy vọng rằng sẽ hữu ích khi hiểu IIS 7.0 hoạt động như thế nào.

+0

@Maxim, Đây không còn là vấn đề đối với tôi, nhưng nó chắc chắn sẽ giúp bạn giải quyết vấn đề. Cảm ơn! –

+0

Thêm rằng nút dưới giải quyết vấn đề cho tôi trong IIS 7.5 – MrDustpan

0

Thú vị ... Tôi có vấn đề ngược lại - Không thể để xác thực được chuyển từ trình duyệt khách, qua máy chủ web và vào cơ sở dữ liệu trong mạng công ty lớn trên tường lửa.

Tôi cũng cảm thấy rằng xác thực "từ đầu đến cuối" đối với cơ sở dữ liệu là ý tưởng tồi và rủi ro bảo mật tiềm ẩn. Không có gì ngăn người dùng cuối tải lên truy vấn SQL và kết nối trực tiếp với cơ sở dữ liệu của bạn, vì vậy bạn nên khóa lược đồ của mình đi!

@Esteban - Làm rõ của tôi không hữu ích khi giúp bạn câu trả lời.

0

Thông thường nếu bạn đang thực hiện xác thực hai bước như thế này, Kerberos thường tham gia trừ khi xác thực đầu tiên là Cơ bản.

tôi sẽ kiểm tra xác thực trên các máy chủ IIS 6 và chắc chắn rằng nó giống trên IIS 7.

Nếu IIS 6 hộp được thiết lập để Windows tích hợp, sau đó bạn cần phải xác minh các thiết lập Kerberos - SPN , Phái đoàn, vv

1

Máy chủ IIS của bạn có được thiết lập để được ủy nhiệm bởi ủy nhiệm của SQLServer không? Tôi đã chạy vào điều này trước khi với WebDAV, nơi chúng tôi đã có máy chủ chạy IIS tin cậy của máy chủ tập tin để xác thực thay mặt cho máy chủ tập tin.

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