2012-04-20 5 views
0

Существует Javascript на веб-странице, но мне нужно, чтобы скрыть это от своих пользователей (я не хочу, чтобы они могли видеть его, потому что он содержит ответы на некоторые из игры.)JQuery нагрузки, чтобы скрыть содержимое

Итак, я попытался использовать Jquery .load, чтобы скрыть содержимое (я загружаю содержимое из внешнего js-файла с этим вызовом). Но он не смог загрузить. Поэтому я попробовал ajax, и это тоже не сработало.

Может быть, проблема исходит из того, что я пытаюсь загрузить файл, расположенный в моем корневом каталоге, в то время как исходная страница находится в «корневой/public_html/основной/странице»:

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
     url : "../../../secret_code.js", 
     dataType: "text", 
     success : function (data) { 
      $("#ajaxcontent").html(data); 
     } 
    }); 
}); 
</script> 

1) Почему я не могу загрузить файл из корневого каталога с помощью метода ajax или load? 2) Есть ли другой способ?

PS: Я помещаю файл в корневом каталоге так что люди не могут получить к нему доступ непосредственно из их браузеров ...

+0

На самом деле это ничего не будет скрывать от ваших пользователей, только сделать его очень труднее найти. – jimw

+0

@jimw Как это? Как вы можете видеть JS загружен асинхронно? Есть ли способ скрыть это правильно? –

+0

Просто совет, я делаю это в течение всего дня, если вы используете .load для загрузки «просмотра частичного» с js в нем, только скрипт html и style (если он доступен) появится в консоли ошибок, сам js добавляется в заголовок страницы, но не легко становится видимым, хитроумный пользователь всегда может получить js на странице. если вам нужна реальная безопасность, используйте $ .ajax и откройте свою «ответную» серверную сторону, отправляя только то, что нужно видеть клиенту, и возвращая информацию о клиенте, чтобы получить следующий ответ или что угодно. – SpYk3HH

ответ

0

Вы можете загружать только файлы, которые доступны непосредственно из браузеров, например, http://www.mydomain.com/secret_code.js

Если доступ к браузеру невозможен, браузер не может получить доступ через ajax. Однако вы можете использовать .htaccess, чтобы пользователи не открывали файл js напрямую , хотя это не мешает им смотреть на него в консолях Google Chrome или Firebug.

Если вы хотите сохранить это в секрете, не позволяйте ему добраться до браузера.

+0

Как бы вы запретили прямой доступ к скрипту с htaccess? –

+0

На самом деле это невозможно. Я не уверен, о чем я думал. –

0

Перейдите к URL-адресу, а не к каталогу. Как

$.ajax({ 
     url : "http://domain.com/js/secret_code.js", 

.. 
+0

Я не хочу, чтобы пользователи имели доступ к нему напрямую через Интернет. С вашим решением они могут видеть secret_code.js, если они попытаются получить к нему доступ ..., поместив его в корневой каталог, я его скрою. –

+0

Ввод его в корневой каталог (или любой другой каталог, недоступный для веб-сайтов) - это единственный способ запретить пользователям видеть javascript. Однако это также предотвращает просмотр кода. Невозможно запустить код в браузере, скрывая его. –

+0

@AdamStrudwick. Невозможно остановить пользователя, чтобы он не видел скрипты, которые уже загружены на них. – Starx

1

1), если файл не доступен через веб-браузеры, чем это не доступны через AJAX (Ajax является частью веб-браузеров

2) попробовать /secret_code вместо ../../../secret_code.js

+0

Я не хочу, чтобы мои пользователи имели доступ к JS –

+0

@AdamStrudwick, если вы используете js-файл, который пользователь может увидеть. Невозможно предотвратить это. – noob

+0

Извините, браузер не черный ящик (ну, IE есть, но не хорошие). Может быть, вы хотите сделать собственное настольное приложение вместо веб-страницы? – JasonWoof

0

Даже если вы загружаете свой контент динамически, довольно легко увидеть содержимое файла с помощью firebug, fiddler или любого прокси-сервера. Я предлагаю вам использовать obfuscator. Это будет труднее для пользователя, чтобы найти ответ

0

Посмотрите на функцию jQuery.getScript(), она предназначена для загрузки файлов Javascript через AJAX и должна делать то, что вам нужно.

0

Попробуйте метод jQuery $ .getScript() для загрузки внешних файлов Сценарий, однако вы можете легко увидеть содержимое файла сценария с помощью Firebug или панели инструментов разработчика!

0

безопасности первого

Вы не можете получить доступ к корневой директории с JavaScript, потому что люди будут читать ваши пароли в базе данных, FTP пароль Асо. если бы это было возможно.

+0

, так есть ли реальный способ предотвратить доступ JS к пользователям? –

+0

@AdamStrudwick Да, однако он не будет доступен для браузера и вашего приложения (что делает его бесполезным). –

1

Какая у вас настройка системы? Вы используете CMS?

Даже если вы добавите javascript на страницу после загрузки страницы, пользователь с помощью инструмента, такого как firebug, может пойти и просмотреть его. Я не думаю, что то, что вы делаете, действительно обеспечит его. Альтернативное решение состоит в том, что вы можете минимизировать и запутывать javascript, который вы используете в своей производственной среде.Это создаст почти нечитаемый, но функциональный код javascript. Существует ряд инструментов, которые вы можете запустить для своего кода, чтобы минимизировать и обфускации. Вот один из инструментов, которые вы могли бы использовать: http://www.refresh-sf.com/yui/

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

+0

Я на VPS, поэтому у меня есть полный доступ. По вашему мнению, я должен запутывать и минимизировать код - и могу ли я добавить дополнительное ограничение htaccess, чтобы пользователи не могли получить доступ к самому js? Какая строка была бы (я не очень хорошо знаком с htaccess, за исключением страниц с ошибками ...) Спасибо –

+0

Насколько я знаю, если браузер может получить доступ к вашему файлу javascript, чтобы вы могли его запустить, то пользователь тоже может это сделать. Я не думаю, что вы можете предоставить доступ к браузеру, а не пользователю. Если вам нужно скрыть данные или логику, тогда вам нужно будет жить в серверном коде. – bygrace

Смежные вопросы