Definisi: framekiller
Kode JavaScript tertanam di halaman Web yang mencegah halaman dari yang digunakan di situs Web pihak ketiga yang menggunakan frame HTML. Kode ini mendefinisikan lokasi halaman sehingga tidak akan ditampilkan dengan benar dalam bingkai. Lihat frame .
Sebuah framekiller (atau framebuster atau framebreaker) adalah teknik yang digunakan oleh web applications untuk mencegah mereka web pages dari yang ditampilkan dalam frame . Sebuah frame adalah pembagian jendela browser Web dan dapat bertindak seperti jendela kecil. Ini biasanya digunakan untuk mencegah frame dari sebuah situs web eksternal yang dimuat dari dalam frameset tanpa izin sering sebagai bagian dari clickjacking serangan.
Framekillers Pertama Secara historis, script framekiller pertama adalah sesederhana ini:
<script type="text/javascript">
if(top != self) top.location.replace(location);
</script>
Logika di sini adalah untuk menampilkan halaman, tetapi memeriksa apakah lokasi atas adalah sama dengan halaman saat ini, dan mengganti puncak dengan saat ini jika tidak.
Ada banyak variasi script ini. Contoh ini adalah cross-browser yang kompatibel, menghindari benda-benda usang, dan menggunakan menggantikan yang mempertahankan back-button pengguna. Membandingkan referensi objek, restoran, diri dan lokasi langsung sedikit lebih efisien, dan ringkas.
Framekiller modern Pada tahun 2010 Gustav Rydstedt, Elie Bursztein, Dan Boneh dan Collin Jackson menerbitkan sebuah makalah yang menyoroti keterbatasan teknik frame-penghilang saat ini dan yang diusulkan mengikuti versi perbaikan: [1]
<style> html{display:none;} </style>
<script>
if(self == top) {
document.documentElement.style.display = 'block';
} else {
top.location = self.location;
}
</script>
Logika script ini adalah untuk menonaktifkan penyajian halaman secara default dan mengaktifkannya hanya di atas lokasi.
Pembunuh Framekiller Framekillers sederhana dapat dicegah dari bekerja dengan JavaScript berikut bersama dengan server yang merespon dengan
HTTP/1.1 204 No Content
, seperti yang ditemukan dalam blog ini . Hanya tempat kode berikut di frame atas. Ia bekerja karena dalam kebanyakan browser yang 204 respon HTTP akan melakukan apa-apa, berarti ia akan meninggalkan kita pada halaman saat ini. Namun upaya permintaan akan menggantikan frame penghilang sebelumnya upaya, render itu tidak berguna. var prevent_bust = 0;
// Event handler to catch execution of the busting script.
window.onbeforeunload = function() { prevent_bust++ };
// Continuously monitor whether busting script has fired.
setInterval(function() {
if (prevent_bust > 0) { // Yes: it has fired.
prevent_bust -= 2; // Avoid further action.
// Get a 'No Content' status which keeps us on the same page.
window.top.location = 'http://server-which-responds-with-204.example.com/';
}
}, 1);
Alternatif solusi Sebuah pilihan alternatif adalah untuk memungkinkan pengguna untuk menentukan apakah akan membiarkan pekerjaan framekiller.
var framekiller = true;
window.onbeforeunload = function() {
if(framekiller) {
return "..."; // any message that helps user to make decision
}
};
dan kode di bawah ini harus ditambahkan setelah tag frame:
//"my_frame" should be changed according to the real id of the frame in your page
document.getElementById("my_frame").onload = function() {
framekiller = false;
};
Keterbatasan Framekiller Client-side JavaScript solusi bergantung pada browser pengguna akhir menegakkan keamanan mereka sendiri. Hal ini membuat alat yang bermanfaat, tetapi tidak dapat diandalkan, dari pelarangan halaman Anda untuk dimasukkan dalam halaman lain. Situasi berikut dapat membuat script di atas berguna:
- Agen pengguna tidak mendukung JavaScript.
- User agent mendukung JavaScript tetapi pengguna telah berubah dukungan off.
- Dukungan JavaScript pengguna agen cacat atau sebagian dilaksanakan.
- Perilaku pengguna agen dimodifikasi oleh virus atau plug-in (mungkin tanpa sepengetahuan pengguna) dengan cara yang merusak script framekiller.
Definisi: frame
Sebuah fitur tata letak HTML yang membuat beberapa dokumen (file HTML) pada halaman Web pada saat yang sama. Frame digunakan di situs web mirip dengan cara aplikasi menampilkan beberapa jendela. Hal ini memungkinkan data statis akan terlihat sepanjang waktu, sementara data lain yang sam. Sebagai contoh, menu dapat ditemukan di bagian atas halaman dengan link ke artikel di bawah ini. Artikel-artikel dapat menggulir tanpa mengubah posisi menu pada halaman.
Bingkai mungkin berisi konten dari situs yang berbeda, seperti link di situs Web dapat mengambil halaman Web dari server apapun. Frames otomatis menyediakan scroll bar jika konten lebih besar dari bingkai jendela.
Sebuah Fitur Contentious
Frames telah menjadi kontroversi sejak hari pertama di Web. Browser sebelumnya tidak membuat frame yang sama atau mungkin tidak sama sekali, itulah sebabnya mengapa situs berbingkai biasanya menawarkan "no-frame" versi. Pengguna tidak dapat selalu penunjuk frame, dan mengklik tombol Back dan Forward browser tidak bisa bergerak konten dalam frame yang Anda inginkan.
Bingkai juga dapat menunjukkan dokumen HTML pada server pihak ketiga dan memberikan kesan bahwa konten tersebut berasal dari situs yang sama. Hal ini memungkinkan konten untuk dapat dengan mudah dikumpulkan, tetapi juga memungkinkan konten pihak ketiga dapat dicuri dari situs lain kecuali tindakan pencegahan yang diambil di situs tersebut (lihat framekiller ).
Selain itu, frame dapat dihindari oleh pengembang Web karena mesin pencari tidak dapat mengindeks konten dengan benar. Bingkai juga tidak ramah untuk browser audio untuk tunanetra (lihat Browser suara ). Lihat frameset , iFrame dan XFrames .
HTML Frames
aaaaaaaaaaaaaaaaaaa
Definisi: iFrame
(1) (I-frame) Sebuah keyframe di kompresi interframe. I-frame frame video sepenuhnya utuh, dari mana frame berikutnya berasal. Lihat interframe coding .
(2) Sebuah format video digital dari Apple. Lihat Apple iFrame .
(3) (I nline FRAME) Struktur HTML yang memungkinkan dokumen HTML lain yang akan dimasukkan ke dalam halaman HTML.
IFrame diatur sebagai bingkai jendela dari ukuran tertentu yang
gulungan bersama dengan sisa halaman, tapi isinya iFrame itu sendiri
bisa menggulir jika lebih besar dari jendela iFrame.
Tidak seperti biasa fungsi frame HTML, yang digunakan untuk membagi
layar menjadi beberapa jendela, iFrame yang biasanya digunakan untuk
menyisipkan iklan atau sejumlah kecil teks di tengah halaman. Lihat frame , XFrames dan HTML .
Sebuah iFrame dalam Bingkai
Definisi: XFrames
Versi W3C frame HTML.
Dirancang untuk mengatasi bookmark, navigasi dan masalah lain yang
terkait dengan frame biasa, XFrames diharapkan untuk akhirnya
menggantikan frame HTML dan iFrame fungsi, yang keduanya tersingkir di
XHTML 1.1. Lihat frame .