2013-02-20 2 views
1

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

Возможно ли в javascript скрыть код после завершения загрузки скрипта? Я хотел бы защитить свой сценарий от глазных глаз, за ​​пределами ограничительного режима лицензирования.

Я думаю, что удаление кода приведет к отключению любых интерактивных частей страницы, оставляющих статическую оболочку, в зависимости от библиотеки. Но как люди/отрасль подходят к этой проблеме?

Это просто судебные принудительные режимы лицензирования и регистрация авторских прав? или есть что-то более умное, что можно сделать в программном обеспечении на стороне клиента javascript

+0

http://stackoverflow.com/questions/1547257/how-to-prevent-view-source-of-page-using-javascript – PlantTheIdea

ответ

1

возможно в JavaScript, чтобы скрыть код после завершения сценария загрузки

=> Нет

Я думаю, что удаление кода будет отключить любые интерактивные порции из страница, оставляющая статическую оболочку

=> Вы можете удалить скрипт т теги из HTML структуры, но как код уже были разобраны ваши интерактивные части будут по-прежнему работать

есть что-то более умное, что может быть сделано в программном обеспечении относительно стороны клиента Javascript

= > Признайте, что люди могут читать ваш мини-код и не тратят много времени на его расшифровку, потому что у них уже есть jQuery, магистраль и другие библиотеки. Инвестируйте свое драгоценное время в лучший vnext, а не пытайтесь скрыть текущую версию.

+0

Мне нужно будет проверить это удаление тегов скрипта – CQM

1

Лучшее, что вы собираетесь получить, - это использование минификатора, такого как UglifyJS. Это приведет к запутыванию кода и затруднит чтение людей, но вы не можете скрыть его. Весь ваш код передается в текстовом виде в браузер, чтобы он мог интерпретировать его, и ни один браузер не будет препятствовать тому, чтобы пользователь мог его видеть.

0

Невозможно скрыть код после его выполнения, но вы можете легко запутать его.

0

Это просто невозможно ... Или даже если есть способ, это будет частично, потому что только люди, которые будут интересоваться вашим кодом, являются программистами ... так что им просто нужно загрузить вашу страницу без выполнения JS, чтобы получить источники ... к сожалению:/

«это будет запутать код и сделать его более трудным для людей, чтобы читать» Большинство текстового редактора или веб-браузер имеет подсветку синтаксиса и отступы, так это не решение. (я неправильно понял) Да, это решение

+0

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

+0

Да, я неправильно понял;) –

2

Вы не можете скрыть весь исходный код, поскольку браузер нуждается в нем. Подумайте, как работает контролер огня или дом. Если вы что-то измените, это повлияет на то, что вы видите на экране браузера. Но есть способы сделать его «незаметным» или «почти нечитаемым». Например, если вы используете некоторые средства разработки или скрипты, которые строят скрипт на лету.

Посмотрите на мой сайт http://elmin.org и попробуйте прочитать исходный код. Как вы видите, вы не можете видеть много, и даже если видите, это слишком сложно анализировать или понимать. В этом случае используется веб-инструментарий google.

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

Я бы сказал, что одна идея состоит в том, чтобы ограничить доступ к вашим внешним файлам js за пределами страницы, в которую вы вставляете свой код. Таким образом, если кто-то пытается получить доступ к этому файлу в браузере, доступ будет передан исходному сценарию. На php или любом другом сервере, который вы используете, вы можете контролировать доступ, сравнивая переменную сервера request_uri с доменом.

Но вы должны осознать риск обфускации вашего кода.Только представьте себе, он заменяет четко читаемый JavaScript фрагмент коды:

window.onload = function() { alert("Hi " + username) }; 

по:

eval(unescape("var%20_0xc5b2%3D%5B%22onload%22%2C%22Hi%20%22%5D%3Bwindow"+ 
"%5B_0xc5b2%5B0%5D%5D%3Dfunction%20%28%29%7Balert%28_0xc5b2%5B1%5D+username"+ 
"%29%3B%7D%20%3B")); 

Риск является многими антивирусными или другим программным обеспечением, онлайн защиты может предупредить свои посетитель, что это не безопасно, так как не может обнаружить ли код javascript пытается сделать что-то вредное. Таким образом, проверка может не завершиться.

0

No.

Вот почему PHP имеет большое преимущество в том смысле, - она ​​выполняется на стороне сервера - поэтому зритель никогда не увидит код, полученный конечный код. Но не поймите меня неправильно. PHP имеет свои собственные проблемы безопасности, такие как MySQL Injection Attacks.

+0

Может ли node.js или позвоночник или другие веб-серверы справиться с этой проблемой? специально для выполнения и рендеринга элементов javascript (которые манипулируют элементами html и css), но остаются вне видимости браузера/пользователя? – CQM

+0

Не очень, потому что любой, кто действительно хочет увидеть, что происходит, увидит, что вы вызываете эти файлы, и просто откроете их, поскольку у них будет URL-адрес. –

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