Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка откуда пришёл запрос
 
 автор: DEM   (31.08.2012 в 05:26)   письмо автору
 
 

Я делаю API, суть которого такова:
Партнёры инклюдят себе JavaScript файл и ставят div с определённым id (что бы там сразу заполнилась форма с помощью jQuery из этого файла). Данные из формы отправляются AJAX`ом на мой файл API.php на нашем сервере и мне надо, что бы я проверил откуда пришёл запрос (сайты партнёров известны, так что я думаю просто искать gethostbyaddr($_SERVER['REMOTE_ADDR']) в таблице БД) и если с сайта партнёра - обрабатывать...
Но меня пугает тот факт, что тот же cURL легко может подделать этот заголовок, поэтому я ещё думаю, может есть ещё какая защита?

  Ответить  
 
 автор: mihdan   (31.08.2012 в 21:39)   письмо автору
 
   для: DEM   (31.08.2012 в 05:26)
 

REFERER смотрите.

PS: Любую защиту при желании можно обойти.

  Ответить  
 
 автор: DEM   (02.09.2012 в 16:05)   письмо автору
 
   для: mihdan   (31.08.2012 в 21:39)
 

тут вы правы, но не пытаться защититься - тоже не лучший вариант :)

PS. а нельзя ли проверить, это AJAX-запрос или нет?

  Ответить  
 
 автор: Rolex   (02.09.2012 в 17:07)   письмо автору
 
   для: DEM   (31.08.2012 в 05:26)
 

Здравствуйте. Можно примерно так:


<?php

$array_sites 
= array('site1.com''site2.com''site3.com''site4.com');

$host gethostbyaddr($_SERVER['REMOTE_ADDR']);

if( !
in_array(array_sites)) exit('Ошибка подключения к интерфейсу!');

?>

  Ответить  
 
 автор: DEM   (09.09.2012 в 02:37)   письмо автору
 
   для: Rolex   (02.09.2012 в 17:07)
 

Такой вопрос возник: а если это идёт AJAX-запрос с какого-то сайта - он укажет в REMOTE_ADDR ip сайта с которого запрос посылается?

  Ответить  
 
 автор: confirm   (09.09.2012 в 04:04)   письмо автору
 
   для: DEM   (09.09.2012 в 02:37)
 

XMLHttpRequest - это объект браузера, и технология AJAX - это технология клиент-сервер. Каким образом сайт может послать на другой сайт AJAX-запрос?
Можно только послать заголовки типа HTTP_X_REQUESTED_WITH, и кучу любых иных, но не AJAX-запрос сделать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования