Как узнать, что php файл загружен из исходного кода - PullRequest
0 голосов
/ 23 ноября 2011

Я работаю с моими JS-файлами, теперь у меня есть уникальный php-файл с JS-заголовком, если задана переменная, она включает в себя настоящий js-файл, что нормально.

На «домашней» странице есть тег script для файла php-js:

<head>
    <script type="text/javascript" language="javascript" src="bootstrap.php"></script>
</head>

В файле bottstrap.php есть что-то вроде:

if(isset($hostData) && !empty($hostData)) {
    include('bootstrap.js');
}else {
    echo "document.write('<center><bold>PLEASE DO SOMETHING...!</bold></center>');";
}

все, что кажется нормальным, однако при просмотре исходного кода (CTRL + U) браузер отображает часть «bootstrap.php» в виде ссылки, при щелчке по которой он, очевидно, перенаправляет на http://mydomain/bootstrap.php и js код можно легко увидеть, а это именно то, чего я не хочу ...

Итак, мой вопрос: есть ли php-способ узнать, загружается ли файл из браузера в режиме «рендеринга» или загружается из браузера в «представлении исходного кода» ???

Любая помощь действительно ценится =)

Ответы [ 6 ]

1 голос
/ 23 ноября 2011

Честно говоря, я не думаю, что вы действительно можете скрыть это так.Я предполагаю, что лучшее, что вам нужно сделать, это строка useragent, но я предполагаю, что если вы «просматриваете исходный код» в браузере, он все равно будет отправлять обычные заголовки.

Единственный способ, которым яМожно подумать о добавлении включения JS без его появления, когда в режиме просмотра исходного кода фактически загружается внешний файл с помощью javascript (можно даже разбить путь файла js на переменные, чтобы он не читался человеком), что я бы не сталсоветовать.

Если кто-то захочет получить доступ к вашему javascript, он не сможет избежать этого.

1 голос
/ 23 ноября 2011

Нет способа скрыть код JavaScript.Это должно быть выполнено клиентом, и даже если вы попытаетесь скрыть это, плохо отформатировав код, такие инструменты, как firebug, могут легко проанализировать код и извлечь его.

1 голос
/ 23 ноября 2011

Короче, нет.Вы не можете скрыть свой источник скрипта от своих пользователей.Лучшее, что вы можете сделать - это запутать его с помощью таких инструментов, как YUICompressor .

1 голос
/ 23 ноября 2011

и код js можно легко увидеть, а это именно то, чего я не хочу ...

Вы не хотите, чтобы JS был виден, но вы делаетехотите использовать его ???


Что-то не так с вашим кодом, хотя, если вы хотите, чтобы файл js использовался на вашей странице.

Вы должны включить / потребоватьfile:

<script type="text/javascript" language="javascript" src="<?php include bootstrap.php ?>"></script>

В противном случае браузер загрузит содержимое файла начальной загрузки, но вы захотите запустить код внутри него (что можно сделать только на сервере).

Также:

изменить:

include('bootstrap.js');

на

echo bootstrap.js;

РЕДАКТИРОВАТЬ

, перечитав свой вопрос (и другиеответы) это именно то, что вы хотите: сделайте свой код JS невидимым (исправьте меня, если ошибаетесь).

Ответ на этот вопрос: Нет, не может быть сделано.

Вы можете попытаться запутать кодно кому-то понадобится несколько секунд, чтобы «расшифровать».

0 голосов
/ 10 июля 2012

Мне очень жаль, что я пропал отсюда ... Лучшее решение, которое я решил реализовать, довольно простое: не показывать ЛЮБОЙ URL или PHP-файлы в коде JS ;поэтому в последние месяцы я использовал уникальный PHP-файл для выполнения всех необходимых запросов к базе данных, хранимая процедура динамически генерирует все URL-адреса, необходимые из JS.Таким образом, URL-адреса меняются каждый раз, и то, что я назвал «плохой логикой», предоставляется пользователям бесплатно для просмотра / копирования. Я не против того, чтобы данные на сервере были безопасны.

СПАСИБО ВСЕМ ЗА ВАШИ ЦЕННЫЕ ОТВЕТЫ!!!

0 голосов
/ 23 ноября 2011

Попробуйте использовать $_SERVER["HTTP_referer"], у которого есть URL, который вызвал этот файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...