Как снять фильтр безопасности на сервере
Доброго времени суток.
Собственно проблема такая: С сайта1 отсылается $.ajax post с заранее заполненными данными формы , на сайт2 в php скрипт на другом сервере. При удачном приёме скрипт сайта2 срабатывает и пускает в обработку присланные данные по назначению....... Но в целях безопасности в скрипте стоит защита от приёма данных со сторонних доменов (подделка запросов и тд...) в виде $fromurl=getenv("HTTP_REFERER"); if (substr_count($fromurl,$host)<1) exit("Хакер? ха-ха ...\n"); С ним он не пропускает все "левые" запросы со сторонних доменов. Без этой строчки всё работает нормально! Вопрос: можно как то , эту строчку переделать чтоб пропускал только запрос с определённого домена , стороннего сайта1 ,только с которого должен принимать данные... Помогите пожалуйста что с этим можно сделать , я в PHP вообще не разбераюсь. Заранее спасибо |
Corey,
$fromurl=getenv("HTTP_REFERER"); if (!(substr_count($fromurl,$host)||substr_count($fromurl,'сайта1'))) exit("Хакер? ха-ха ...\n"); |
Спасибо огромное , вроде получилось , даже лучше.
Самое интересное что страница сайта2 с вашим вариантом скрипта , отображается только во фрейме на сайте1 , а на сайте2 всё закрыто.... Очень интересно :blink: |
Когда был "голый" исходник всё работало только на сайте2.....не так как нужно.
Потом что бы работал мой $ajax я отключил строчку на сайте2 ,всё сделал (всё лишнее по дизайну убрал.Переменные php не трогал) , включил строчку обратно , перестало работать везде!. После вашего варианта строчки стало работать только в Iframe на сайте1 (отправка $ajax , отображение и тд...), а на сайте2 все глухо и печально , и даже антифлуд перестал работать.... В идеале хотел получить : Отображение и приём у сайта2 на сайте1 а на сайте2 только отображение без приёма..... Мой скрипт , это модуль "сейчас смотрят" Переделанный из гостевой книги на стороннем сервере , из за отсутствия php на основном хостинге. П.С. Два месяца назад , один умник положил мой скрипт без этой строчки и hostinger.ru забананил тот сайт.... |
Упппсссссс ошибочка
Всё работает! наверно вчера закешировало.... зделал http://мойсайт2?event=clearcooke :) антифлуд по прежнему не работает... Может такое быть , что $ajax шлёт запрос , минуя переменные if (($lastmsg+30)>$today) { проверки , на время добавления сообщения ? |
Часовой пояс GMT +3, время: 17:49. |