Ajax: как отдавать xml-документ только определенной странице?

123
dkameleon
На сайте с 09.12.2005
Offline
386
#11

psylosss,

Если задача заключается в том, чтобы не дать конечному пользователю получить результаты data.xml в чистом виде,

то это практически тоже самое, что жабаскрипт вешать на правый клик, запрещая копирование страницы. :)

Дизайн интерьера (http://balabukha.com/)
psylosss
На сайте с 23.12.2005
Offline
126
#12

dkameleon, а что если не в чистом? что если шифровать их и отдавать шифрованными. А JS расшифровывает.

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
S
На сайте с 20.08.2006
Offline
2
#13
psylosss:
dkameleon, а что если не в чистом? что если шифровать их и отдавать шифрованными. А JS расшифровывает.

ну что мешает роботу делать тоже самое?

Продвижение. Долго и недешево. Гарантий нет.
A
На сайте с 21.08.2006
Offline
1
afi
#14
smik:
а что мешает сначала запросить page (и узнав код) дальше использовать data.xml?

Интересно, что ты имеешь ввиду под "дальше использовать data.xml"??

Последовательность действий, пожалуйста?

A
На сайте с 21.08.2006
Offline
1
afi
#15
psylosss:
dkameleon, а что если не в чистом? что если шифровать их и отдавать шифрованными. А JS расшифровывает.

А где хранить ключ для расшифровки?? Да и не во всех браузерах работать будет

psylosss
На сайте с 23.12.2005
Offline
126
#16

afi, да я понимаю что все это не то. Просто обыгрываю варианты разные... Не хочется просто так сдаваться.

S
На сайте с 20.08.2006
Offline
2
#17
afi:
Интересно, что ты имеешь ввиду под "дальше использовать data.xml"??
Последовательность действий, пожалуйста?

Упс :). Обсуждалось вариантов несколько, так что Вы схему защиты опишите сначала. А то так и непонятно о чем речь.

[Удален]
#18

To: psylosss

Железный вараинт:

1. page.html выдавать скриптом page.php

2. page.php сохраняет в базу ip и время.

3. data.xml выдавать скриптом data.php

4. data.php сравнивает ip и время, выдаёт если совпадает ip и время не более 1 минуты спустя.

Ещё один не менее железный вариант:

1. page.html выдавать скриптом page.php

2. page.php создаёт хеш md5 на основе ip и времени, скажем (unix_time/60), который вписывается в код JavaScript (не генерируется JS скриптом а именно php! (поди пойми как хеш генерируется, может там в качестве строки хеша "[ip] [time] наш маленький секретный пароль")).

3. data.xml выдавать скриптом data.php?hash=84357hwet7463rtf34

4. data.php сравнивает хеш и время.

Чуть менее железный вариант:

1. page.html через JavaScript ставит cookies скажем с параметром a=1

2. data.xml выдавать скриптом data.php

3. data.php смотрит наличие cookies.

Куку конечно можно забить вручную в браузер, но вот просить забить её посетителей сторонней паги - глупость которая не пройдёт (впрочем как и просить подменить REFERER).

А со стороннего сервера куку для вашего сервера поставить не могут.

Обратите внимание, у Вас ошибочна формулровка вопроса:

"как отдавать xml-документ только определенной странице?"

Верная формулировка:

"как отдавать xml-документ только определённому пользователю (браузеру)"

Эта формулировка раскрывает ответ на Ваш вопрос - пользователь, которому отдаётся xml документ, должен быть определён, тем или иным способом, а посещение им первой страницы и определяет его, для того, что выдаёт xml.

dkameleon
На сайте с 09.12.2005
Offline
386
#19
Vladimir_Rublin:

4. data.php сравнивает ip и время, выдаёт если совпадает ip и время не более 1 минуты спустя.

А что делать людям с медленным инетом? :(

Да-да, есть ещё и такие :)

А если протормозил и не успел кликнуть, то так же останешься без контента :)

[Удален]
#20

To: dkameleon

Людям с медленным инетом делать то, что они умеют делать лучше всего:

нервничать ожидая загрузки, а если не загрузилось то нажимать "Обновить" в браузере.

Апач, между прочим, тоже ждёт посетителя не бесконечно, а ровно столько, сколько указано в конфигурации.
Про кликнуть речи небыло, речь шла про автоматическую загрузку, как только появился у клиента <head> в которм JS так сразу делается запрос на получение данных.
Прочее ложно.
Дополнительно:
Никто не мешает установить другие ограничения (2,5,10,60 минут).
1 минута, это данные основанные на моём личном опыте и на наблюдениях.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий