Tôi xin lỗi trước vì bản chất chung của câu hỏi của tôi, nhưng tôi không thể tìm thấy bất kỳ lời khuyên hữu ích nào từ những người đang cố gắng làm điều tương tự như tôi trên web. Hãy để tôi mô tả kịch bản của tôi:ASP.NET MVC 3 Razor View Restrictions
Tôi đang cung cấp cho người dùng/nhà thiết kế cuối trang web khả năng tùy chỉnh chế độ xem của họ bằng cách lưu trữ chế độ xem (sử dụng Dao cạo) trong cơ sở dữ liệu. Tôi có tất cả những việc này, nhưng câu hỏi của tôi là như sau; Từ quan điểm bảo mật, làm cách nào tôi có thể đảm bảo và thực thi mã không mong muốn đó không được thực thi trong chế độ xem do người dùng xác định? Có hai cách tiếp cận cơ bản mà tôi nghĩ rằng sẽ làm việc theo khái niệm, nhưng tôi không chắc chắn phương pháp nào khả thi hơn hoặc khả thi hơn.
Tùy chọn 1: Tạo phương thức xác thực trong công cụ quản trị cho phép người dùng nhập mã xem. Điều này sẽ cần hoặc là có một cách tiếp cận danh sách trắng hoặc danh sách đen cho những gì được cho phép hay không.
Tùy chọn 2: Ngăn không cho mã không mong muốn có thể thực thi khi hiển thị chế độ xem. Một ví dụ nhanh về một thứ cần được chặn, chúng tôi sẽ không cho phép truy cập để đọc hoặc ghi tệp, truy cập bất kỳ chức năng truy cập dữ liệu nào hoặc thậm chí truy cập cài đặt cấu hình, v.v. trong web.config . Có thể sẽ có một danh sách các thứ có kích thước rất nhỏ mà có lẽ không nên cho phép, nhưng tôi sẽ cần phải ngồi xuống và cố gắng nghĩ về càng nhiều mối quan tâm liên quan đến bảo mật càng tốt.
Câu hỏi của tôi là, phương pháp nào sẽ là cược tốt nhất? Ngoài ra, bất kỳ hướng nào có thể được cung cấp về cách đi về một trong hai? Tôi nghĩ rằng tôi có thể thay đổi dựa trên mức độ tin cậy, đó là Lựa chọn 2, nhưng không thể tìm ra cách nào để thực hiện công việc đó trong trang viên dựa trên mỗi lần xem (mã quản trị được phép thực thi bất cứ điều gì nó muốn). Tôi nghĩ Tùy chọn 1 sẽ kết thúc là đặt cược tốt nhất và tôi sẽ phải kiểm tra đầu vào của các chức năng khung nhất định không được phép. Có ai có kinh nghiệm làm bất cứ điều gì giống như những gì tôi đang cố gắng làm không? Bất kỳ thông tin phản hồi được nhiều đánh giá cao!
Tùy chọn 2 sẽ khủng khiếp từ góc nhìn của người dùng, những người có thể cố gắng sử dụng mã mà người đó không biết là 'xấu'. Tôi đồng ý với SLaks một cách tiếp cận danh sách trắng sẽ tốt hơn, và tôi không biết bản chất chính xác của dự án của bạn như người tiêu dùng của bạn là ai nhưng điều này sẽ là một nhiệm vụ khó khăn tùy thuộc vào mức độ linh hoạt bạn cần cung cấp cho họ. – AwDogsGo2Heaven
Tôi sẽ đề nghị bạn kiểm tra đánh dấu chất lỏng, sau đó tôi tìm thấy [DotLiquid] (http://dotliquidmarkup.org/try-online). Dường như nó bao gồm những gì bạn đang cố gắng để đạt được (nhưng với Liquid thay vì Razor). –