Tôi đã đọc qua rất nhiều thông tin đăng trên SO về XSS và cách xử lý. Nói chung, sự đồng thuận là danh sách trắng trong danh sách cấm và tránh sử dụng Biểu thức chính quy (quá nhiều biến thể để xử lý).TinyMCE, AntiXSS, MVC3 và GetSafeHtmlFragment
Tôi đang làm việc trên ứng dụng ASP.Net MVC3. Tôi cần có thể hiển thị HTML từ mục nhập của người dùng (ví dụ: < strong>, < ul>, < li>, v.v ...) nhưng tôi không muốn có bất kỳ rủi ro XSS nào.
Tôi đang sử dụng gói AntiXSS qua Nuget. Trong mô hình của tôi, tôi có
[AllowHtml]
public string UserDetails{ get; set; }
Theo quan điểm của tôi, tôi có TinyMCE nối vào vùng văn bản.
Trong điều khiển của tôi, tôi nhận được bài từ Xem và khử trùng nó:
using Microsoft.Security.Application;
...
string SanitizedDetails = Sanitizer.GetSafeHtmlFragment(model.UserDetails);
Câu hỏi của tôi: Tôi đã làm điều đó đúng không? Tôi có được bảo vệ khỏi hầu hết các vấn đề XSS hay tôi đang sủa cây sai không?