2011-10-20 40 views
5

thể trùng lặp:
Empty “for” loop in Facebook ajax
what does AJAX call response like for (;;); { json data } mean?javascript "cho (;;);" cấu trúc

Trong khi phân tích một số facebook ajax yêu cầu cơ thể tôi nhận thấy rằng tất cả các mã bắt đầu với for (;;);, folloed bởi một đối tượng json

một cái gì đó như

for (;;); {"a":1,"b":"\u003cdiv"} 

Tôi googled sau cấu trúc này nhưng không tìm thấy gì.

Điều gì có thể là lý do cho cấu trúc "cho" này ở đầu mỗi phản hồi ajax?

+1

vòng lặp for' vô tận theo cú pháp javascript – user973254

+1

Nó có thể là để ngăn chặn XSS - mã sau cho sẽ không bao giờ được thực hiện ... –

+0

Đây là bản sao của một câu hỏi khác, tôi sẽ xem liệu tôi có thể tìm thấy nó. –

Trả lời

0

Vì lý do bảo mật, ứng dụng này giúp khách hàng khác cố gắng chặn các cuộc gọi AJAX của họ. Về cơ bản nếu bạn đánh giá ngay lập tức trình duyệt của bạn sẽ bị lỗi do vòng lặp vô tận, chúng chỉ thêm một lớp bảo mật khác.

Không có gì phải lo lắng cho bạn.

+0

Điều đó không đánh tôi an toàn. Hoặc thậm chí từ xa khó khăn để có được xung quanh. – Thor84no

+0

Và bây giờ tôi biết điều đó, điều gì ngăn cản tôi loại bỏ phần đầu tiên của câu trả lời và đánh giá phần còn lại? –

+0

Cái gì đó của nó, và nó giữ một số kịch bản-kiddies ra. – TJHeuvel

1

Một for như thế này (lưu ý rằng có không phải là ';' sau khung):

for (;;) 

nghĩa là một vòng lặp vô hạn nơi những điều khoản thi hành là những giữa dấu ngoặc.

Thay vào đó, một cho như thế này:

for (;;); 

nghĩa là một vòng lặp vô hạn không có tuyên bố.