多个iFrame重定向工作,但关注PHP安全性

时间:2011-10-19 00:45:08

标签: php javascript mysql security sql-injection

这是我在这里发表的第一篇文章,我非常感谢大家对我从这个论坛学到的一切,这是一个很棒的资源!

我犯了一个完整的noob错误并使用许多加载onclick的iFrame对我的网站进行编码。然后我学习了SEO。我试图寻找一种解决方法,而不是从头开始,我找到了一个似乎很好用的方法,但是我有点担心SQL注入的漏洞以及其他我不太了解的可怕内容。我网站上的很多内容页面都是用PHP编写的,有些还使用MySQL。

我在这里找到了http://www.dynamicdrive.com/forums/showthread.php?t=12512找到的解决方案,但该网站似乎没有太多关于PHP和MySQL,所以我认为最好在这里问我的问题,并获得更全面的图片我应该怎么想这个。我真的很感激任何意见。感谢您阅读这篇文章,即使您无法帮助!

我担心的是重定向页面会生成如下网址:

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');">

1 个答案:

答案 0 :(得分:0)

你不容易受到SQL注入的攻击 - 这些代码都是用Javascript编写的。

但是有XSS漏洞,我建议在显示之前先验证URL是否为实际URL。