PDA

Просмотр полной версии : защита PHP скриптов от запуска с других серверов


Ckazkatmn
04.03.2010, 18:03
Суть проблемы такая, есть Flash который использует php скрипты.
как мне защитить их(скрипты) от использования с других серверверов, т.е. проверять что флешь запустил их с етого сервера а не скоко-нибуть другого сервера, или запушеного с локал(скаченного предварительно)

вот ета запись работает как надо ... но неработает в Mozile...
if(!ereg('^http://'.$HTTP_HOST,getenv('HTTP_REFERER'))){}else{exit;}
кто что может посоветовать

Frozzeg
06.03.2010, 05:52
реферер можно подменить

никак, в общем

etc
06.03.2010, 14:36
У меня вообще referer всегда пуст.

wvxvw
06.03.2010, 16:45
Вот именно для этого и придуман crossdomain.xml - пропишите в нем только имена своих друзей и друзей своих друзей, - кроме них никто ваши скрипты и не запустит.

Ckazkatmn
07.03.2010, 19:09
Т.е. я правильно понимаю создаю файл с именем crossdomain.xml и содержимым:
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="www.My.ru" />
<allow-access-from domain="My.ru" />
</cross-domain-policy>
и кидаю его в корень сайта MY.ru/crossdomain.xml
И поидее флешка сможет загрузить скрипты если она была запушена с My.ru ..
Но почему я запуская флеш с локала ..и она благополучно их запускает и обрабатывает ?Что не так ?

udaaff
07.03.2010, 21:17
Потому что это при тестировании локально.

Ckazkatmn
07.03.2010, 21:50
Тоесть какой-то Вася скачал флеш себе на компьютер декодировал ... поставил прямые сылки (http://my.ru/dsfds/dsfds.php) скомпилировал обратно.. и запустил у себя на компьютере И ОНА будет работать прекрасно мол этоПотому что это при тестировании локально...А вчем тогда безопасность, разве что её на другом сайте не разместят.
и еще вопрос ....
вот етот xml лежит в корне сайта а сама флешь в имя.ru/папка/папка/myflash.swf
будет действовать или надо кинуть рядос флешкой

wvxvw
07.03.2010, 22:22
А какая разница, как человек запустит ваш скрипт, зайдя на ваш сайт со своего локального компьютера или обратившись к вашему же сайту со своего локального компьютера? Я чет не уловил.
crossdomain-ов может быть много, можно в каждую папку положить если нужно, главное, чтобы тот, который в корне разрешал это делать.

Ckazkatmn
07.03.2010, 23:05
Дело в том что у меня флешь скажем так постепенно собирает информацию проверяя её с базой ... а последний скрипт ПИшет в базу .. а скопировав его на локал разобрать, все остальные шаги можно легко удалить и зразу записать.Вот по етому мне надо сделать проверку ОТ куда был запущен флешь .
Может все таки есть какая то возможность реализовать какую - нибуть проверку ?

spl33n
11.03.2010, 13:43
В пхп можно прописать защиту от запуска самого пхп скрипта с других доменов.


$domain = str_replace( "www.", "", getenv( "HTTP_HOST" ) );
if ( $domain != "flasher.ru" )
{
exit( );
}

wvxvw
16.03.2010, 14:22
Дело в том что у меня флешь скажем так постепенно собирает информацию проверяя её с базой ... а последний скрипт ПИшет в базу .. а скопировав его на локал разобрать, все остальные шаги можно легко удалить и зразу записать.Вот по етому мне надо сделать проверку ОТ куда был запущен флешь .
Может все таки есть какая то возможность реализовать какую - нибуть проверку ?

Клиент вообще не должен решать когда писать в базу, а когда нет, это должен решать PHP исходя из какой-то своей логики. то, как клиент авторизировался: из браузера, или без него - не должно влиять на эту логику вообще.