Adminer và iframe

Nếu chúng ta cần nhúng adminer vào ứng dụng web của mình bằng cách gọi adminer từ iframe, cần biết rằng điều đó là rất khó.

Adminer nói rằng không cho chạy adminer trong iframe vì lý do bảo mật, nhưng lại cho phép một addon là frames dùng để hóa giải điều cấm adminer chạy trong iframe. Những tưởng đây là một tùy chọn, người dùng quyết định xài addon thì tự chịu trách nhiệm, nhưng không, có vấn đề bên trong.

Cho dù đóng gói adminer trong bao nhiêu lớp

<div><iframe src="https://domain.com/adminer" width="100%" height="100%"></iframe></div>

thì khi được nạp lên, adminer tìm cách sổ lồng, thoát khỏi iframe và div bao quanh, về top-level. Xem trong page source chúng ta thấy nội dung của trang adminer chèn trực tiếp trong trang chủ, không được bọc trong iframe và div như được thiết kế.

Có một số cách chặn trang ở iframe về top-level như dùng javascript hay đơn giản nhất với HTML5 là dùng sandbox, nhưng không có tác dụng với adminer, dường như adminer tự copy nội dung trang adminer thay cho các khối bọc quanh nó.

Việc adminer về top-level gây ra nhiều rắc rối như 2 lần gọi session_start(), các link của adminer sai địa chỉ… Tóm lại là adminer không chạy trong iframe, cho dù dùng addon frames.

Comments Off on Adminer và iframe

Filed under Software

Comments are closed.