Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разрешить вызов скрипта только с одного сайта 
:(
    Опции темы
AzuManga
Дата 11.12.2007, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



Здравствуйте, форумчане!

Наверняка кто-то из вас уже решал подобную задачу.

Есть страница, которая генерируется PHP и содержит JS с AJAX-запросом к некоему PHP-скрипту на сервере.

Можно ли как-нибудь запретить вызов этого некоего скрипта с других сайтов? То есть, чтобы никто не смог дергать с других хостов этот некий скрипт, получать его результаты работы.

Или ввести какой-нибудь шифр, который предотвращал бы вызов скрипта с других хостов...

Спасибо!

Это сообщение отредактировал(а) AzuManga - 11.12.2007, 18:41
--------------------
 Точка с запятой; 
PM MAIL   Вверх
bars80080
Дата 11.12.2007, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



самое простое?
формировать запрос с get параметром сформированному по известному только этому скрипту закону
а у скрипта проверка на правильность этого запроса 
PM MAIL WWW   Вверх
AzuManga
Дата 11.12.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



bars80080, спасибо за быстрый ответ, но я не очень понимаю, что мешает другим людям скачать себе JS с AJAX-запросом, залить к себе на сервак и использовать?
--------------------
 Точка с запятой; 
PM MAIL   Вверх
Feldmarschall
Дата 11.12.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Нет, разумеется, нельзя.
И при чем здесь вызов с сайтов? К твоей странице обращается браузер. Запретить вызов из браузера можно или только всем, или никому.
Нужно хорошо понимать основы функционирования веб-сайтов, чтобы такие фантазии в голову не приходили
PM   Вверх
AzuManga
Дата 11.12.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



Мне пока сдается, что обфускатор JS-кода и небольшое кодирование выдачи запроса могут помочь...
--------------------
 Точка с запятой; 
PM MAIL   Вверх
euginewm
Дата 12.12.2007, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Drupal Development



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.9.2006
Где: Zaporozhye

Репутация: нет
Всего: нет



Цитата

bars80080 что мешает другим людям скачать себе JS с AJAX-запросом, залить к себе на сервак и использовать?


А что мешает обрабатывать AJAX-запрос на вашем "серваке"?
Я бы его проверял в первую очередь, при поучении
PM MAIL Skype   Вверх
FCCStepan
Дата 12.12.2007, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 31.10.2007

Репутация: нет
Всего: нет



в массиве $_SERVER была переменная которая отвечала за адрес, с которого вызывается текущий скрипт. это не 100% защита но уже что то.
PM MAIL   Вверх
bars80080
Дата 12.12.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата

Есть страница, которая генерируется PHP и содержит JS с AJAX-запросом к некоему PHP-скрипту на сервере

генерируем страницу уже с переменной, что они тогда сольют? морально устаревшую переменную?
PM MAIL WWW   Вверх
BuShaRt
Дата 12.12.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Нереализуемо. Можно безконечно придумывать все более и более бредовые идеи, но все равно, все что "знает" JS модуль, может узнать пользователь и не какие "тайные" шифры не помогут...

Единственно более верное решение, это проверять url, как защита от совсем ламеров, нежелающих учиться, а способных только копи-пастить код и делиться с которыми действительно жалко. Если человек действительно знает PHP и JS, тогда проблем у него не возникнет "обойти" систему, но лично мне не жалко для таких людей своих работ.

Кстати, в дополнение к фильтру по url, можно еще копирайты в комментах кинуть т.к. врядли кто их будет убирать. Получиться, что еще и проPRесь smile
PM MAIL   Вверх
Feldmarschall
Дата 12.12.2007, 10:35 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Мне кажется, что после последнего сообщения топикстартера обсуждать стало нечего. 
Только мусор будет. Все-таки, понятия браузер, хост, запрос основательно перемешались в головах у большинства советчиков. В отличие от них, автор явно понял, что стопроцентной защиты быть не может, и решил сделать простенькую, от совсем ламеров. Я согласен, что это вполне адекватное решение. Те же, кто продолжуют обсуждать принципиальную возможность такой защиты, просто не представляют себе схему взаимодействия браузера с сервером.

bars80080, попробуй распиши на бумаге последовательность запросов. Станет понятнее.

Вообще, если понимать, что AJAX запрос ничем не отличается от обычного (кроме того, что скрыт от наивного юзера), то большинство вопросов снимется. Другое дело, что понять это, как выясняется, многим проблематично.

BuShaRt, ещё HTTP надо знать, да. причем JS, как раз - не обязательно. Только в случае с шифрованием вывода.

Это сообщение отредактировал(а) Feldmarschall - 12.12.2007, 10:39
PM   Вверх
bars80080
Дата 12.12.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата

Нереализуемо. Можно безконечно придумывать все более и более бредовые идеи, но все равно, все что "знает" JS модуль, может узнать пользователь и не какие "тайные" шифры не помогут...

это ко мне?
совершенно не согласен,
что мешает нам при формировании ссылки в js приписать ей в конце значение типа ?secret=kodirivannjatarabarshchina
путём
Код

// всякий код
var perem="<? echo $perem; ?>";
// всякий код
zapros = zapros + '?secret=' + perem;

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

я не говорю, что данный способ оптимальный, но он возможен и на самом деле прост
PM MAIL WWW   Вверх
AzuManga
Дата 12.12.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 12.5.2005

Репутация: нет
Всего: нет



bars80080, гениально!! Большое спасибо и +1 ))

Апдейт: Хотя, может быть такая ситуация, что юзер зашел на сайт в 10:59:50, а нажал на кнопку в 11:00:30. Надо подумать, что будет в таком случае 8)

Это сообщение отредактировал(а) AzuManga - 12.12.2007, 13:36
--------------------
 Точка с запятой; 
PM MAIL   Вверх
Feldmarschall
Дата 12.12.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Чтобы предотвратить дальнейшие споры.
Слово "нереализуемо" относилось к первоначальному вопросу, а не к предложенному способу защиты.


PM   Вверх
bars80080
Дата 12.12.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата
юзер зашел на сайт в 10:59:50, а нажал на кнопку в 11:00:30

это как раз находится в пределах одной минуты  smile 
можно увеличить и до часа

я лично применяю нечто подобное в другом случае (не с js): авторизация в админской части
пользователь авторизуется и пропускается в систему, при этом на него в БД записывается характеристика с указанием ip, даты, код какой-то (уже не помню), и его id, а поверху в сессии идёт только id. при заходе на любую страницу происходит проверка на все эти переменные, причём у клиента нет ничего, кроме id, но через час запись будет уничтожена и ему придётся заново авторизоваться, то бишь выкинет из админки

ну а вообще методы шифрования должен разрабатывать только один человек, имхо что знают двое, знают все
PM MAIL WWW   Вверх
Fally
Дата 12.12.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



Генерь хеш имени скрипта, который обращается к другому, и передавай его. Если то => всё ок, если нет => выдавай ересь.
Помогает. Ересь выдавай затем, чтобы люди ломали голову, почему у них не работает как надо.


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.