2011-10-19 50 views
1

這是我在這裏的第一篇文章,我非常感謝大家對我從這個論壇學到的一切,這是一個很棒的資源!多個iFrame重定向工作,但擔心PHP安全

我做了一個完整的noob錯誤,並使用大量加載onclick的iFrame編碼我的網站。然後我瞭解了SEO。我沒有從頭開始,而是試圖找到一種解決方法......我找到了一個似乎很好的方法,但我有點擔心它很容易被SQL注入以及其他我知之甚少的可怕東西。我網站上的很多內容頁面都是用PHP編寫的,有些用到了MySQL。

我tweeked在這裏找到的解決方案http://www.dynamicdrive.com/forums/showthread.php?t=12512,但該網站似乎並沒有太多處理PHP和MySQL,所以我認爲最好在這裏問我的問題,並更全面地瞭解我應該如何想想這個。我會很感激任何輸入。感謝您閱讀這篇文章,即使您無法幫助!

我擔心的是,重定向的頁面生成像一個URL:

http://website/?framepage=http://website/folder/index.php 

爲使用iframe頁面(主頁)的腳本:

<script type="text/javascript"> 

function loadframe(){ 
if(window.location.replace) 
window.frames.Frame1.location.replace(get('framepage')); 
else 
window.frames.Frame1.location.href=get('framepage'); 
} 

{ 
if(window.location.replace) 
window.frames.Frame2.location.replace(get('framepage')); 
else 
window.frames.Frame2.location.href=get('framepage'); 
} 

{ 
if(window.location.replace) 
window.frames.Frame3.location.replace(get('framepage')); 
else 
window.frames.Frame3.location.href=get('framepage'); 
} 

function get(key_str) { 
var query = window.location.search.substr(1); 
var pairs = query.split("&"); 
for(var i = 0; i < pairs.length; i++) { 
var pair = pairs[i].split("="); 
if(unescape(pair[0]) == key_str) 
return unescape(pair[1]); 
} 
return null; 
} 
if (location.search&&get('framepage')!=null) 
if (typeof window.addEventListener != "undefined") 
    window.addEventListener("load", loadframe, false); 
else if (typeof window.attachEvent != "undefined") 
    window.attachEvent("onload", loadframe); 
else { 
    if (window.onload != null) { 
     var oldOnload = window.onload; 
     window.onload = function (e) { 
      oldOnload(e); 
      loadframe(); 
     }; 
    } 
    else 
     window.onload = loadframe; 
} 
</script> 

,然後腳本內容頁面(將顯示在上述iFrame中):

<script type="text/javascript"> 
function load_content (page) { 
if (window.location==top.location) 
if (window.location.replace) 
top.location.replace(page+'?framepage='+top.location.href); 
else 
top.location.href=page+'?framepage='+top.location.href; 
} 
</script> 

不要忘記html內容頁面:

<body onload="load_content('index.html');"> 

回答

0

你不容易SQL注入那裏 - 該代碼都是在Javascript中。

但是,存在XSS漏洞,我建議在顯示URL之前首先驗證該URL是否爲真正的URL。

+0

太棒了!謝謝。 – user1002191