Несколько перенаправлений iFrame работают, но заботятся о безопасности PHP - PullRequest
1 голос
/ 19 октября 2011

Это мой первый пост здесь, и я просто хотел бы поблагодарить всех за все, что я узнал от этого форума, это фантастический ресурс!

Я сделал полную ошибку noob и закодировалмой сайт использует много iFrames, которые загружаются по клику.Затем я узнал о SEO.Вместо того, чтобы начать с нуля, я попытался найти обходной путь ... Я нашел тот, который, кажется, работает хорошо, но я немного обеспокоен его уязвимостью для SQL-инъекций и других страшных вещей, о которых я слишком мало знаю.Многие страницы контента на моем веб-сайте написаны на 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');">

1 Ответ

0 голосов
/ 19 октября 2011

Вы не уязвимы для внедрения SQL-кода - весь этот код в Javascript.

Тем не менее, существуют уязвимости XSS, и я рекомендую проверить, что URL-адрес является действительным URL-адресом, прежде чем отображать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...