Выпуск № 253 от 07.06.2009, 18:35
Администратор рассылки: Ерёмин А.А., Советник
В рассылке: подписчиков - 571, экспертов - 119
В номере: вопросов - 1, ответов - 2
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 168789: Здравствуйте. Скажите пожалуйста у меня на страничке подключается файл main.js таким образом : <script type="text/javascript" src="../For_js/main.js"></script> Как можно сделать ,что бы запретить д...
Вопрос № 168789:
Здравствуйте. Скажите пожалуйста у меня на страничке подключается файл main.js таким образом :
Как можно сделать ,что бы запретить доступ к этому файлу если его хотят открыть таким образом http://namedomen/For_js/main.js , а по внутренней ссылке (как сейчас),что бы он подключался и все функции которые в нём работали. Спасибо.
Защитить скрипт не получится. Т.к. javascript выполняется на стороне клиента, т.е. в браузере пользователя, а это означает, что скрипт будет загружен пользователю на компьютер для его последующей интерпретации. Если скрипт загружен, то получить к нему доступ можно простым сохранением страницы и просмотром сохранёных файлов, среди которых и будет искомый скрипт. Можно попытаться запретить доступ к файлу через htaccess, но боюсь в этом случае и конструкция вида ../For_js/main.js
работать тоже не будет.
Ответ отправил: GINes, Студент
Ответ отправлен: 03.06.2009, 09:58
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250302
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Товарищ Бородин, Академик :
Здравствуйте, Dima1967. Давайте попробуем поразмышлять. Скрипт подключается в теге <SCRIPT src="../For_js/main.js"> и просматривается по ссылке http://namedomen/For_js/main.js. Если мы закроем доступ к файлу - изменим права доступа таким образом, что прочесть его будет нельзя, то мы не сможем его прочитать ни по ссылке, ни в SCRIPT. Если мы воспользуемся файлом .htaccess и "замаскируем" путь к файлу, то если он читается одним способом, он также просто прочитается и другим способом.
Чтобы
решить проблему, надо ответить себе на вопрос: различает ли сервер, как обращается клиент к его содержимому? То есть, иными словами, есть ли для файла разница, как его читают - с помощью тега SCRIPT или напрямую? Ответ тут один: файлу абсолютно все равно, каким образом его читают. В данном случае сервер определяет HTTP_USER_AGENT одинаково - это будет браузер пользователя. И в том, и в другом случае. А следовательно, если работает один способ, то работа
ет и второй. Не работает один способ - не работает и другой.
Сделать то, о чем Вы спрашиваете, можно было бы, если бы существовали какие-то "признаки", по которым сервер понимал, что файл, хранящийся на нем, читают именно так, а не иначе. А для него, как назло, что так, что этак - один черт, как говорится... Можно создать упакованную версию файла - читать человеку ее будет труднее, но при желании и ее можно распаковать. Эта защита годится только от чайников, от профессионала же она не спасет.
Загляните в GOOGLE, там много ссылок на такие приложения. Эффективность их сильно различается - одни приложения просто вырезают переносы строк и лепят все в одну строку. Другие приложения заменяют все строковые константы на метки(каждой метке соответствует только одно слово), а в конце создают некий словарь из этих констант. В первом случае справиться с нечитабельностью кода можно просто - файл обрабатывается PHP-скриптом, вставляющим перенос строки после каждой точк
и с запятой. Во втором случае уже будет немножко потруднее, но это задача тоже для PHP-программиста. Если человек не знает языка, умеющего работать с файлами, то он может сделать это и вручную(хотя я ему в этом случае не завидую - если файл большой, то это ж с ума сойти можно!).
Короче, единственный нормальный совет, который Вам можно дать в данном случае - относитесь к этому проще С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин, Академик
Ответ отправлен: 03.06.2009, 13:46
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250315
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.