252
Chương 7: ASP.NET và Web Form
Hình 7.4 Trang thử nghiệm upload file
Bạn có thể kiểm tra các thuộc tính của file được chỉ định (bao gồm kích thước của nó) trước
khi lưu để ngăn kiểu tấn công từ chối dịch vụ (lừa ứng dụng ASP.NET để upload các file lớn
làm đầy đĩa cứng). Tuy nhiên, đoạn mã này không ngăn người dùng submit file ngay từ đầu,
điều này vẫn có thể làm chậm server và được sử dụng để mở một kiểu tấn công từ chối dịch
vụ khác—nắm lấy tất cả các tiểu trình thợ ASP.NET đang rảnh. Để ngăn chặn kiểu tấn công
này, bạn hãy sử dụng thẻ
<httpruntime>
trong file Web.config để chỉ định kích thước tối đa
của file (tính theo kilobyte):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpRuntime maxRequestLength="4096" />
<!-- Bỏ qua các thiết lập khác. -->
</system.web>
</configuration>
Nếu bạn không chỉ định kích thước tối đa, giá trị mặc định 4096 (4 megabyte) sẽ áp dụng.
Nếu người dùng cung cấp một file quá lớn, một ngoại lệ sẽ phát sinh ngay khi trang được
post-back.
Có một cách khác để gửi file từ client lên web-server là sử dụng dịch vụ Web
XML ASP.NET. Bạn cần phát triển một ứng dụng dựa-trên-Windows cho phép
người dùng chọn một file và rồi giao tiếp với một dịch vụ Web XML để chuyển
giao thông tin.