|
|
|
| Я содержу в папке ajax скрипты:
Я обращаюсь к ним по AJAX, но если пользователь посмотрит исходный код страницы, то он увидит адреса к моим скриптам. Если он сделает обращение по адресу: site.ru/ajax/script1.php - он у него отобразиться, только коряво - ведь скрипт должен показывать как одна из частей моих страниц.
Как сделать, чтобы пользователь не смог обращаться к моим ajax-скриптам, только кроме как мои же скрипты в моих страницах? | |
|
|
|
|
|
|
|
для: maxam
(17.04.2010 в 12:07)
| |
<?php
//script1.php
if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) ) {
//код который отвечает на аякс запросы
}
?>
|
| |
|
|
|
|
|
|
|
для: Lelik
(17.04.2010 в 12:36)
| | Попробовал - AJAX вообще не выполняется! | |
|
|
|
|
|
|
|
для: maxam
(17.04.2010 в 13:15)
| | Никак. JavaScript - это механизм, работающий на машине клиента, и чтобы он работал, у машины клиента должен быть доступ на выполнение запрашиваемых скриптов.
Задайтесь вопросом - для чего вам их скрывать? Может быть, есть способ обойти это, если не хочется показывать клиенту какой-то код? | |
|
|
|
|
|
|
|
для: aexb
(18.04.2010 в 18:41)
| | вы ошибаетесь. решение - выше. | |
|
|
|
|
|
|
|
для: AlexSol
(19.04.2010 в 06:43)
| | Ретивый пользователь (тот, который по предположению maxam полезет смотреть скрипты)сэмулирует AJAX и все равно залезет в их код, скрывай его через распознаватель или нет. Поэтому я и задал вопрос - стоит ли огород городить. | |
|
|
|
|
|
|
|
для: aexb
(19.04.2010 в 08:06)
| | Пользователь должен будет имитировать реферрер, который проверяется в PHP-скрипте, как и предложено выше.
А это для подавляющего большинства пользователей - невыполнимая задача. В независимости от их "ретивости". | |
|
|
|
|
|
|
|
для: maxam
(17.04.2010 в 12:07)
| | Насколько я понял script1.php и script2.php в главном файле используются примерно так
include('script1.php');
include('script2.php');
|
Можно заменить на вот так:
include('ajax/script1.php');
include('ajax/script2.php');
|
А в каталог ajax положить файл .htaccess с содержимым
Тогда запуск script1.php и script2.php будет не возможен прямой ссылкой, а инклудиться они будут нормально. | |
|
|
|