2009-06-02 37 views
10

Có bất kỳ thư viện .NET được kiểm tra kỹ lưỡng nào ở đó để vệ sinh đầu vào từ những thứ như tiêm script/sql không?Các thư viện .NET để khử trùng đầu vào?

+0

điều này phải là 2 câu hỏi khác nhau – fretje

+5

@fretje, chỉ có hai câu hỏi khác nhau nếu bạn đã biết rằng không có thư viện nào thực hiện cả hai. – DevinB

+0

khử trùng đầu vào đối với các cuộc tấn công phun sql (thường được thực hiện ở cấp cơ sở dữ liệu thông qua sử dụng các lệnh tham số) là một công cụ ballpark hoàn toàn khác so với khử trùng đầu vào chống lại tấn công xss (thường được thực hiện TRƯỚC KHI lưu đầu vào trong cơ sở dữ liệu) ... – fretje

Trả lời

7

SQL injection và Cross-Site Scripting (a.k.a. XSS hoặc Script Injection) là các vấn đề khác nhau.

1) SQL Injection rất dễ dàng, luôn sử dụng các truy vấn parametrized (SQLParameter) và cố gắng thực sự khó khăn để KHÔNG BAO GIỜ làm sp_exec @query trong các thủ tục lưu sẵn T-SQL. Các truy vấn được tham số .Net sẽ không bảo vệ chống lại lệnh tiêm thứ hai này.

2) XSS khó khăn hơn để giảm thiểu phổ biến vì có quá nhiều vị trí mà JavaScript có thể được chèn vào tài liệu HTML. Các khuyến nghị sử dụng AntiXSS để mã hóa dữ liệu người dùng là đúng. Sử dụng thư viện này trước khi chèn dữ liệu người dùng vào tài liệu đầu ra. Thật không may, nếu bạn đang sử dụng điều khiển máy chủ ASP.Net mã hóa tất cả dữ liệu có thể dẫn đến mã hóa đôi và hiển thị hiện vật. Điều này xảy ra vì một số thuộc tính điều khiển mã hóa dữ liệu trong khi những thuộc tính khác thì không. Tham khảo this table để tìm hiểu các thuộc tính được mã hóa theo mặc định. Sử dụng Anti-XSS trước khi gán cho bất kỳ thuộc tính nào không mã hóa.

5

Sử dụng parameterised commands, thay vì cố gắng vệ sinh chuỗi, để bảo vệ chống lại SQL Injection.

8

Tôi thích sử dụng Microsoft AntiXSS library. Nó hoàn toàn miễn phí và khá dễ sử dụng.

Để chèn SQL, tôi luôn sử dụng tham số. Một lần nữa, họ rất dễ sử dụng và tôi không thích cố gắng để thoát khỏi các nhân vật đặc biệt. Đó là một công thức cho thảm họa nếu bạn hỏi tôi.

2

AntiXSS có thể được sử dụng để ngăn chặn các cuộc tấn công XSS.

0

Tôi đã sử dụng thư viện MS Anti XSS. Nó rất hữu ích và dễ sử dụng. Hãy thử nó cho mình, bạn sẽ tận hưởng. Phiên bản hiện tại là 4.0.

0

Nếu bạn đang sử dụng ASP.NET 4.5, bây giờ bạn có thể sử dụng AntiXSS features that ship in the framework.

Đây là những phần bên ngoài Thư viện AntiXSS đó đã được đưa vào ASP.NET 4.5:

  • HtmlEncode, HtmlFormUrlEncode, và HtmlAttributeEncode
  • XmlAttributeEncodeXmlEncode
  • UrlEncodeUrlPathEncode (mới)
  • CssEncode
Các vấn đề liên quan