gpt4 book ai didi

php - 多个 iFrame 重定向有效,但担心 PHP 安全

转载 作者:行者123 更新时间:2023-11-30 23:35:28 25 4
gpt4 key购买 nike

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

我犯了一个彻头彻尾的菜鸟错误,并使用大量加载 onclick 的 iFrame 对我的网站进行编码。然后我了解了SEO。我没有从头开始,而是试图找到一种解决方法……我发现了一个似乎运行良好的方法,但我有点担心它容易受到 SQL 注入(inject)和其他我知之甚少的可怕事情的影响。我网站上的很多内容页面都是用 PHP 编写的,有些还使用 MySQL。

我推特了在这里找到的解决方案 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');">

最佳答案

在那里你不会受到 SQL 注入(inject)的攻击——代码全部在 Javascript 中。

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

关于php - 多个 iFrame 重定向有效,但担心 PHP 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com