2008-11-24 32 views
5

Có thể chặn mọi yêu cầu được thực hiện từ một trang bằng javascript không? tức là nhấp vào liên kết, tải hình ảnh, yêu cầu ajax ...Chặn mọi yêu cầu bắt nguồn từ một trang web

+0

Bạn có thể mô tả mục tiêu nhiều hơn một chút không? Giải pháp có thể quá rộng lớn. – Loki

+0

Mục tiêu của tôi là viết lại tất cả các yêu cầu bắt nguồn từ một trang? Một cách để làm là chạy qua DOM và viết lại tất cả các liên kết, nhưng thậm chí sau đó một vài URL được tạo động sẽ bị bỏ qua. – akshat

Trả lời

7

Trong một từ, không. Không có nơi nào bạn có thể móc vào để có được tất cả các yêu cầu.

Có nói rằng, bạn có thể javascript để đặt trình xử lý sự kiện trên các liên kết, hãy xem thuộc tính src của thẻ hình ảnh, v.v. Không có cách "chung" để nối vào tất cả các yêu cầu AJAX - nó phụ thuộc vào thư viện bạn đang sử dụng.

Có những thứ khác cần xem xét, chẳng hạn như hình nền CSS, Flash (nếu tệp flash tạo yêu cầu?).

Nếu có thể bạn nên sử dụng trình duyệt riêng của mình (ví dụ Firebug) hoặc một proxy (ví dụ Fiddler) hoặc một gói sniffer (ví dụ như Ethereal ... có vẻ là WireShark bây giờ)

+1

Tôi đã có thể nối vào yêu cầu Ajax – xybrek

0

đúng của Greg, không có một nơi bạn có thể móc vào tất cả các yêu cầu. Có nói rằng, mục tiêu cuối cùng của bạn là viết lại tất cả các yêu cầu? Nếu bạn cần thêm "tham số" vào mọi yêu cầu và sau đó sử dụng nó ở phía máy chủ, một cách để thực hiện nó là tiêu đề máy chủ. Bạn có thể sửa đổi tiêu đề máy chủ ở phía máy chủ (tức là chuyển hướng người dùng từ your-site.com đến your-parameter.your-site.com) và tất cả các yêu cầu sau đó sẽ có * tham số của bạn "trong đó. phía máy chủ, bạn có thể sử dụng kỹ thuật viết lại url để sửa đổi url thành your-site.com?parameter=your-parameter.

Để chuyển hướng sử dụng mã phản hồi http 302. Thành phần viết lại url thích hợp sẽ cần được thiết lập ở phía máy chủ (mod_rewrite cho apache, ISAPIrewrite cho ASP.NET)

Một số điểm cần lưu ý: 1) Người dùng sẽ không bị đăng xuất vì tên miền phụ và miền chia sẻ cookie phiên 2) Bạn sẽ cần thiết lập ánh xạ ký tự đại diện trên DNS của bạn erver 3) Bộ nhớ đệm của trình duyệt sẽ không có hiệu quả 4) Bạn cần phân tích "tác động kinh doanh" của url đã thay đổi

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