Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как снять фильтр безопасности на сервере (https://javascript.ru/forum/misc/49838-kak-snyat-filtr-bezopasnosti-na-servere.html)

Corey 30.08.2014 17:39

Как снять фильтр безопасности на сервере
 
Доброго времени суток.
Собственно проблема такая:

С сайта1 отсылается $.ajax post с заранее заполненными данными формы , на сайт2 в php скрипт на другом сервере. При удачном приёме скрипт сайта2 срабатывает и пускает в обработку присланные данные по назначению.......
Но в целях безопасности в скрипте стоит защита от приёма данных со сторонних доменов (подделка запросов и тд...) в виде
$fromurl=getenv("HTTP_REFERER"); if (substr_count($fromurl,$host)<1) exit("Хакер? ха-ха ...\n");

С ним он не пропускает все "левые" запросы со сторонних доменов.
Без этой строчки всё работает нормально!

Вопрос: можно как то , эту строчку переделать чтоб пропускал только запрос с определённого домена , стороннего сайта1 ,только с которого должен принимать данные...

Помогите пожалуйста что с этим можно сделать , я в PHP вообще не разбераюсь.
Заранее спасибо

Rise 30.08.2014 18:44

Corey,
$fromurl=getenv("HTTP_REFERER"); if (!(substr_count($fromurl,$host)||substr_count($fromurl,'сайта1'))) exit("Хакер? ха-ха ...\n");

Corey 30.08.2014 20:09

Спасибо огромное , вроде получилось , даже лучше.
Самое интересное что страница сайта2 с вашим вариантом скрипта , отображается только во фрейме на сайте1 , а на сайте2 всё закрыто....
Очень интересно :blink:

Rise 30.08.2014 21:18

Corey, так и раньше сайте2 на прямую не открывался.

Corey 31.08.2014 13:17

Когда был "голый" исходник всё работало только на сайте2.....не так как нужно.
Потом что бы работал мой $ajax я отключил строчку на сайте2 ,всё сделал (всё лишнее по дизайну убрал.Переменные php не трогал) , включил строчку обратно , перестало работать везде!.
После вашего варианта строчки стало работать только в Iframe на сайте1 (отправка $ajax , отображение и тд...), а на сайте2 все глухо и печально , и даже антифлуд перестал работать....
В идеале хотел получить :
Отображение и приём у сайта2 на сайте1
а на сайте2 только отображение без приёма.....

Мой скрипт , это модуль "сейчас смотрят" Переделанный из гостевой книги на стороннем сервере , из за отсутствия php на основном хостинге.
П.С. Два месяца назад , один умник положил мой скрипт без этой строчки и hostinger.ru забананил тот сайт....

Corey 31.08.2014 15:33

Упппсссссс ошибочка
на сайте2 все глухо и печально
Всё работает! наверно вчера закешировало.... зделал http://мойсайт2?event=clearcooke
:) антифлуд по прежнему не работает...
Может такое быть , что $ajax шлёт запрос , минуя переменные if (($lastmsg+30)>$today) { проверки , на время добавления сообщения ?


Часовой пояс GMT +3, время: 00:54.