Javascript源碼:
復制代碼 代碼如下:
function showImg( url ) {
var imgid = Math.random(),
frameid = 'frameimg' + imgid;
window['img'+imgid] = '<img id="img" src=\''+url+'?kilobug\' /><script>window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\'; }<'+'/script>';
document.write('<iframe id="'+frameid+'" src="javascript:parent[\'img'+imgid+'\'];" frameBorder="0" scrolling="no" width="100%"></iframe>');
}
調用方法:
復制代碼 代碼如下:
showImg('圖片地址');
完整演示代碼:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
兼容性:已測試IE6、IE7、IE8、chrome 7、FF3.6、Opera10.63
防御方法:
1、不允許referer為空(不建議,因在某些開啟隱私模式的浏覽器中,或https頁面引用下,referer是空的);
2、地址變更(lighttpd的是根據有效時間,nginx的根據是md5);
3、登錄校驗(如必須登錄網站帳號後才能訪問);