2012-01-01 41 views
6

Để bảo mật, tôi muốn đặt thời lượng yêu cầu tối đa trong ứng dụng node.js của mình. (Có nhiều lỗ hổng bảo mật tận dụng lợi thế của máy chủ web cho phép độ dài yêu cầu không giới hạn).độ dài yêu cầu tối đa trong node.js

Điều này có khả thi không? Có ai chưa?

+0

có thể trùng lặp của [Node.js HTTP Nhận giới hạn chiều dài URL] (http://stackoverflow.com/questions/32763165/node-js-http-get-url-length-limitation) –

Trả lời

1

Tôi đoán bạn đang đề cập đến dữ liệu mà khách hàng có thể gửi cho bạn thông qua POST. Nếu bạn đang sử dụng Express, bạn có thể sử dụng limit middleware để đạt được điều này: http://senchalabs.github.com/connect/middleware-limit.html

Một phiên bản ngắn của những gì đang thực hiện có:

req.on('data', function(chunk){ 
    received += chunk.length; 
    if (received > bytes) req.destroy(); 
}); 
+1

Tôi cũng đang nói về GET — ví dụ: xem http://nikic.github.com/2011 /12/28/Supercolliding-a-PHP-array.html cho các loại vấn đề có thể đến từ việc chấp nhận dữ liệu từ máy khách mà không có giới hạn. –

+0

Nó dễ dàng hơn cho các yêu cầu GET, ví dụ bạn có thể tạo một phần mềm trung gian chỉ cho phép các biến X tối đa trong một yêu cầu GET. Ví dụ: sử dụng regex bạn xác định số lượng ký hiệu '&' nằm trong url yêu cầu. Nếu vượt quá số lượng tối đa bạn hủy kết nối. – alessioalex

+0

Câu trả lời này đã lỗi thời và không chính xác ngay bây giờ. –

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