Можно ли скрыть код Javascript из html веб-страницы, когда исходный код просматривается через функцию просмотра исходного кода браузера?
Я знаю, что можно обфускать код, но я предпочел бы, чтобы он был скрыт от функции источника просмотра.
Можно ли скрыть код Javascript из html веб-страницы, когда исходный код просматривается через функцию просмотра исходного кода браузера?
Я знаю, что можно обфускать код, но я предпочел бы, чтобы он был скрыт от функции источника просмотра.
Я не уверен, что кто-то другой фактически обратился к вашему вопросу напрямую, который просматривается кодом из команды View Source. [/p >
Как говорили другие, нет способа защитить javascript, предназначенный для работы в браузере от определенного зрителя. Если браузер может запустить его, то любой определенный человек может его просмотреть и запустить.
Но, если вы поместите свой javascript в внешний файл javascript, который входит в состав:
<script type="text/javascript" src="http://mydomain.com/xxxx.js"></script>
тогда код javascript не будет сразу виден с помощью команды "Просмотр источника" - только тег script будет таким образом виден. Это не означает, что кто-то не может просто загрузить этот внешний файл javascript, чтобы увидеть его, но вы спросили, как сохранить его в браузере View Source, и это сделает это.
Если вы хотите действительно сделать больше работы для просмотра источника, вы сделаете все следующее:
С учетом сказанного, я думаю, вам следует сосредоточиться на производительности, надежности и отличном приложении. Если вам абсолютно необходимо защитить какой-то алгоритм, поставьте его на сервер, но, помимо этого, соревнуйтесь в том, чтобы быть лучшим у вас, а не секретами. В конечном итоге, как успех работает в Интернете в любом случае.
Нет, это невозможно.
Если вы не отдали его браузеру, то браузер его не имеет.
Если вы это сделаете, то это (или просто последующая ссылка на него) является частью источника.
Использовать Html Encrypter. Часть головы, которая имеет
<link rel="stylesheet" href="styles/css.css" type="text/css" media="screen" />
<script type="text/javascript" src="script/js.js" language="javascript"></script>
copy and paste it to HTML Encrypter and the Result will goes like this
and paste it the location where you cut the above sample
<Script Language='Javascript'>
<!-- HTML Encryption provided by iWEBTOOL.com -->
<!--
document.write(unescape('%3C%6C%69%6E%6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74%22%20%68%72%65%66%3D%22%73%74%79%6C%65%73%2F%63%73%73%2E%63%73%73%22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%22%20%6D%65%64%69%61%3D%22%73%63%72%65%65%6E%22%20%2F%3E%0A%3C%73%63%72%69%70%74%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%73%63%72%69%70%74%2F%6A%73%2E%6A%73%22%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%3C%2F%73%63%72%69%70%74%3E%0A'));
//-->
HTML ENCRYPTER Примечание. Если у вас есть java script на вашей странице, попробуйте экспортировать в .js файл и сделать это как пример выше.
И также этот Encrypter не всегда работает в некотором коде, который заставит сайт ur запутаться... Выберите лучшую часть, которую вы хотите скрыть, например, в <form> </form>
Это может быть наоборот от пользователя, но не всех нубов, как я, это знает.
Надеюсь, это поможет
Мое решение вдохновлено последним комментарием. Это код invisible.html
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="invisible_debut.js" ></script>
<body>
</body>
Открытый код invisible_debut.js:
$(document).ready(function () {
var ga = document.createElement("script"); //ga is to remember Google Analytics ;-)
ga.type = 'text/javascript';
ga.src = 'invisible.js';
ga.id = 'invisible';
document.body.appendChild(ga);
$('#invisible').remove();});
Обратите внимание, что в конце я удаляю созданный script. invisible.js:
$(document).ready(function(){
alert('try to find in the source the js script which did this alert!');
document.write('It disappeared, my dear!');});
invisible.js не отображается в консоли, потому что он был удален и никогда не был в исходном коде, потому что создан javascript.
Что касается invisible_debut.js, я обфускал его, а это значит, что очень сложно найти url invisible.js. Не идеально, но достаточно сложно для обычного хакера.
"Невозможно!"
О да, это....
//------------------------------
function unloadJS(scriptName) {
var head = document.getElementsByTagName('head').item(0);
var js = document.getElementById(scriptName);
js.parentNode.removeChild(js);
}
//----------------------
function unloadAllJS() {
var jsArray = new Array();
jsArray = document.getElementsByTagName('script');
for (i = 0; i < jsArray.length; i++){
if (jsArray[i].id){
unloadJS(jsArray[i].id)
}else{
jsArray[i].parentNode.removeChild(jsArray[i]);
}
}
}
Я не уверен, что есть способ скрыть эту информацию. Независимо от того, что вы делаете, чтобы запутать или скрыть все, что вы делаете в JavaScript, все равно приходит к тому, что вашему браузеру необходимо загрузить его, чтобы использовать его. У современных браузеров есть инструменты для отладки/анализа веб-страниц, которые делают извлечение и просмотр скриптов тривиальными (например, нажмите F12 в Chrome).
Если вы беспокоитесь о том, чтобы разоблачить какую-либо коммерческую тайну или алгоритм, тогда ваш единственный призыв состоит в том, чтобы инкапсулировать эту логику в вызов веб-службы и заставить вашу страницу ссылаться на эту функцию через AJAX.
Вы можете использовать document.write
.
Без jQuery
<!DOCTYPE html>
<html>
<head><meta charset=utf-8></head>
<body onload="document.write('<!doctype html><html><head><meta charset=utf-8></head><body><p>You cannot find this in the page source. (Your page needs to be in this document.write argument.)</p></body></html>');">
</body></html>
Или с помощью jQuery
$(function () {
document.write("<!doctype html><html><head><meta charset=utf-8></head><body><p>You cannot find this in the page source. (Your page needs to be in this document.write argument.)</p></body></html>")
});
Я думаю, что нашел решение скрыть некоторые JavaScript-коды в источнике просмотра браузера. Но для этого вам нужно использовать jQuery.
Например:
В вашем index.php
<head>
<script language = 'javascript' src = 'jquery.js'></script>
<script language = 'javascript' src = 'js.js'></script>
</head>
<body>
<a href = "javascript:void(null)" onclick = "loaddiv()">Click me.</a>
<div id = "content">
</div>
</body>
Вы загружаете файл в тело html/php, вызванное функцией jquery в файле js.js.
js.js
function loaddiv()
{$('#content').load('content.php');}
Вот трюк.
В вашем файле content.php поместите другой тег заголовка, затем откройте другой файл js.
content.php
<head>
<script language = 'javascript' src = 'js2.js'></script>
</head>
<a href = "javascript:void(null)" onclick = "loaddiv2()">Click me too.</a>
<div id = "content2">
</div>
в файле js2.js создайте любую функцию, которую вы хотите.
Пример:
js2.js
function loaddiv2()
{$('#content2').load('content2.php');}
content2.php
<?php
echo "Test 2";
?>
Пожалуйста, следуйте ссылке, затем скопируйте ее в имя файла jquery.js
http://dl.dropbox.com/u/36557803/jquery.js
Надеюсь, это поможет.
Невозможно!
Единственный способ - обфускать javascript или минимизировать ваш javascript, что затрудняет реинжиниринг конечного пользователя. однако его невозможно перестроить.