2009-02-19 4 views
2

Я новичок в PHP и Javascript ..страница загрузки в пределах страницы

Я нашел ссылку с http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2

Внутри него есть код, говоря:

function addPanel(location) 
{ 
tabpanel.add({ 
     autoLoad: {url: location}, 
     title: 'More Information...', 
     closable:true, 
     autoScroll:true 
}).show(); 
} 

как использование:

<a href="javascript:void(0);" 
    onclick="addPanel('loadpage.php?a=http://www.google.com')"> 
    head over to Google 
</a> 

Что я хочу спросить .. что такое код loadpage.php?

ответ

0

Похоже, что loadpage.php может использоваться для эха из содержимого www.google.com, используя file_get_contents.

loadpage.php:

<?php 
    // Simplified output - should sanitise $_REQUEST params etc first.. 
    echo file_get_contents($_REQUEST['a']); 
?> 

loadpage эффективно действует как прокси-сервер, позволяя вашей JavaScript называть страницы, которые не находятся на собственном домене.

Как отмечает @annakata в комментариях, код выше неприлично опасен как есть. Код является иллюстрацией базовой идеи прокси-файла - в процессе производства этот файл должен был бы убедиться, что параметры $_REQUEST были дезинфицированы, например. только принимать значения из белого списка.

same origin policy является элементом безопасности javascript, который мешает вам вытаскивать контент из-за пределов вашего домена на вашу страницу с помощью javascript.

Некоторые сайты обходятся этим путем вызова прокси-страницы на своем собственном сервере (loadpage в этом случае), которая фактически просто печатает содержимое целевого URL-адреса. Как это прокси-страница на сервере, это минует тот же вопрос безопасности происхождения, и по-прежнему делает доступным содержимое страницы из другого домена - здесь www.google.com


К сожалению, я несколько глупо не RTFA, но только код в вопросе и предположил, что он может делать. @andynormancx прав в своем ответе относительно того, что на самом деле делает страница, связанная с q.

+0

Поскольку это стоит, что это смехотворно опасно - я надеюсь, что есть белый список или некоторые вменяемость проверки в PHP – annakata

+0

Очень небезопасный код в порядке, бросил его в качестве примера того, что может быть происходит в файле loadpage, но ответ теперь обновляется, чтобы выделить опасности при копировании и вставке, приветствия! – ConroyP

1

Страница PHP не отражает содержание google.com, как это предлагается в другом ответе. Он выводит IFRAME, который указывает на Google:

<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe> 
+0

Так в чем смысл? Это можно было бы легко сделать в JS без дополнительного обратного перехода к серверу. – annakata

+0

Я не знаю, в чем дело, я не вижу, чего он добивается. – andynormancx

+0

Позволяет вам называть ваш сайт «Ajax»! – troelskn

Смежные вопросы