2008-09-26 13 views
5

Tôi đã tạo một công cụ được sử dụng với một nhà bán lẻ nhạc khá phổ biến.Đóng khung một cách duyên dáng khung (thanh công cụ) xung quanh khung nội tuyến

Công cụ cung cấp tính năng tìm kiếm nâng cao (kết quả cuối cùng trong suốt.fm, không có quảng cáo, không có độ mềm, không đáng sợ) và tôi thấy cách hữu ích và kín đáo nhất để hiển thị tìm kiếm là thanh công cụ iframe. Điều này cho phép người dùng tải tìm kiếm mà không đánh cắp tiêu điểm của người dùng.

Không phải là một fan hâm mộ đặc biệt lớn của iframe tôi nghĩ nó sẽ là tầm thường để thêm một "đóng khung này" (ala tìm kiếm hình ảnh của Google) liên kết cho phép người dùng nhanh chóng và dễ dàng lấy lại quyền kiểm soát trình duyệt của họ.

Tuy nhiên không giống như google, tôi không biết vị trí của nội dung trong khung nội tuyến là gì (chỉ nơi bắt đầu, thông qua src).

Vì vậy, bây giờ tôi thấy mình trong thế giới của XSS và tất cả các mối quan tâm liên quan đến bảo mật.

Sử dụng Javascript Tôi đã thêm các nút 'quay lại' và 'tiến' với đối tượng lịch sử được gọi từ liên kết trong phụ huynh (khi người dùng thực hiện tìm kiếm kết quả tải vào khung nội tuyến, vì vậy nút quay lại cho phép họ trở lại trang web chính sau khi hoàn thành việc sử dụng/perusing kết quả tìm kiếm).

Có cách nào để gọi vị trí hiện tại trong iframe và tải lại trang (bây giờ sans frames) đến vị trí đó không?

Tôi đã kiểm tra biến PHP $ GLOBAL/$ _ SERVER để xem tôi có thể gặp may mắn. Tôi hiểu rằng có những lo ngại về bảo mật, nhưng tôi không thấy chức năng cụ thể này sẽ khác gì so với history.back(), nơi trình duyệt thực hiện cuộc gọi mà không cần 'thông báo' khung chính của tôi.

Tôi biết tôi có thể truy lục vị trí src từ khung nội tuyến, nhưng tất nhiên giả sử người dùng không điều hướng ngoài trang này và nếu họ không nhớ mất vị trí hiện tại của họ và được chuyển hướng trở lại trang được gọi ban đầu bởi khung (... ah ...).

Dường như các khung hình được thiết kế để ăn cắp các cửa sổ mà không có phương tiện để 'thoát ra' một cách duyên dáng và bảo toàn tính toàn vẹn của phiên người dùng.

Không có gì lạ khi mọi người ghét họ. :)

+0

Tôi không chắc liệu tôi có hiểu được tài liệu bên ngoài trong một tài liệu chính hay không iframe và bạn muốn tài liệu chính tải bất kỳ nội dung gì trong khung nội tuyến dưới dạng tài liệu chính mới? Và bạn không có bất kỳ sự hợp tác nào từ các tài liệu trong iframe? – Jim

Trả lời

2

Trên tìm kiếm hình ảnh của Google khi bạn xóa khung hình hoạt động như bạn hiện đang đề xuất, bằng cách quay lại nguồn khung ban đầu. Vì lý do XSS, việc tìm vị trí hiện tại sẽ không thể thực hiện được, và nếu nó được coi là lỗi và được sửa trong các bản vá trình duyệt tiếp theo, vì vậy có thể không tốt nhất nếu dựa vào một điều kỳ quặc nếu tồn tại. Một cách để thanh lịch thoát ra mà không tiết lộ vị trí sẽ được tốt đẹp, mặc dù. Đây có thể là điều bạn có thể đề xuất với nhóm HTML5.

0

Không thực sự hữu ích lắm, nhưng gần nhất bạn có thể đến là phát hiện xem ai đó có thực sự rời khỏi trang nguồn khung gốc hay không. Khi bạn điều hướng khung, đối tượng lịch sử duy trì mục nhập và nếu độ dài lịch sử ban đầu của bạn khi trang tải lớn hơn độ dài lịch sử khi ai đó nhấp vào "Thoát khỏi khung này ..." thì bạn biết họ đang duyệt trong khung .

0

Tôi đánh giá cao cả bạn (hal10001) và Zach dành thời gian để trả lời. Nó xuất hiện tôi hút (như tôi nghi ngờ) vì các mối quan tâm an ninh xss.

Tôi cho rằng tôi có thể chỉ cần bọc tất cả nội dung trong proxy dựa trên php, nhưng điều đó rõ ràng sẽ xâm nhập vào vùng đáng sợ, chưa kể đến độ trễ được thêm và những gì không.

Tôi sẽ tiếp tục xoay ý tưởng trong trường hợp tôi thấy điều gì đó lành mạnh và có thể sử dụng được, nhưng cho đến lúc đó, tôi đoán tôi sẽ sử dụng phương pháp tiếp cận ít hơn một cách tự do để quảng bá khung gốc và xóa vị trí hiện tại của họ (và nếu họ không thích tôi có thể xem lại tình huống iframe/thanh công cụ

Xin cảm ơn!