2016-07-19 13 views
6

Để sử dụng các tính năng C# 6 (như ?.) trong tệp .cshtml dưới MVC5, bạn need to include csc.exe and related files in your website's bin folder when you deploy it. Ok, tôi có thể hiểu lý do cho điều đó.Mối quan ngại về bảo mật với bao gồm csc.exe trong thư mục bin của trang web

Tuy nhiên, điều này bây giờ có nghĩa là có trình biên dịch C# đầy đủ đang ngồi trên máy chủ web của tôi, với các quyền tương tự như người dùng trang web. Điều này làm tôi ngại - theo lý thuyết, kẻ tấn công có thể sử dụng nó để chạy mã tùy ý như thể đó là trang web của tôi.

Đây có phải là mối quan tâm bảo mật hợp lệ không?

Tôi có thể thấy cả hai mặt: Một mặt, có thể bạn cần khả năng thực thi mã tùy ý đã để có thể chuyển mã tùy ý đến csc thực thi. Mặt khác, tôi có thể thấy quyền truy cập vào nó đang được sử dụng để truy cập vào các cài đặt trang web nội bộ (như chuỗi kết nối cơ sở dữ liệu) bằng cách chạy mã mà chúng tôi không bao giờ muốn viết.

Tôi có nên quan tâm hoặc điều này được coi là an toàn không?

+0

Tôi nghĩ rằng lợi thế duy nhất mà một hacker sẽ thu được từ đây là khả năng tải mã nguồn vào trang web của bạn và biên dịch nó cục bộ thay vì phải tải lên một chương trình nhị phân đã biên dịch. Tôi có thể thấy khả năng tường lửa chặn hacker tải lên tệp nhị phân lên máy chủ của bạn trong khi nó có thể cho phép họ tải lên mã nguồn - đó chỉ là văn bản. Tôi nghĩ rằng đây là một rủi ro hoàn toàn lý thuyết tuy nhiên vì nếu họ đã có đủ quyền truy cập vào hệ thống của bạn để chạy trình biên dịch, họ cũng có thể chạy những thứ khác nguy hiểm hơn nhiều. – bikeman868

Trả lời

2

Như tôi đã hiểu, khung nhìn MVC Razor có hiệu lực tùy ý mã C#, được biên dịch lại theo yêu cầu sau khi có thay đổi.

Vì vậy, bất kỳ tin tặc nào có quyền truy cập vào máy chủ trang web đều có thể chạy mã C# tùy ý, trong bất kỳ phiên bản nào của MVC.

Tôi đồng ý rằng nó có vẻ như là một rủi ro, bởi vì nó có, nhưng mặt khác bạn có được lợi thế là có thể thay đổi Chế độ xem mà không cần xuất bản lại toàn bộ trang web.

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