2015-05-28 2 views
-26

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

var App_Version = 1; 
var App_id = 35; 
var Speaker = "password"; 
+8

Вы не можете, единственное, что вы можете сделать, это хэш пароля, вы можете использовать MD5. – jcubic

+5

Единственный способ сохранить ключ безопасности - это сохранить его на стороне сервера через что-то вроде php. – Grallen

+0

@jcubic Я хочу узнать другие возможности iam, используя приведенный выше код в angularjs –

ответ

0

с помощью JWT мы можем зашифровать data.try это link

1

Ну, вы не можете «спрятать» javascript.

Вы можете зашифровать его с помощью обфускатора, но большинство людей может его расшифровать с помощью программы красоты. Однако проверить это:

OBFUSCATOR

+0

OBFUSCATOR можно легко расшифровать –

+0

То, что я написал :) –

+0

если мы используем facebook login в angularjs.how, чтобы скрыть учетные данные –

0

, хотя это не вполне ясно из небольшого кода при условии, защищая его от консоли браузеров прямо вперед IF мы только говорить о ком-консоли .logging значение (как ваш вопрос, кажется, намекнуть).

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

var app = (function() { 

    var Speaker = "something"; 
    // only available on app declaration as the function is immediately called 
    return // some object/function protecting the speaker value 
})(); 

console.log(Speaker); // gives an error 
console.log(app.Speaker); // gives an error 

Это, конечно только останавливает кто-то использует основные инструменты Dev как console.log, это не остановит кого-то добавление точек останова. природа javascript, я боюсь

+0

Я имею в виду использование метода проверки браузера, мы можем просмотреть код js –

+0

Я вижу, тогда, как говорили другие, нет, он не может быть скрыт. если браузер не видит его, он не может его запустить. сказав, что все, что безопасно, как пароль, должно/должно быть зашифровано в любом случае. здесь лучше использовать серверное решение. возможно, если проблема была описана, мы можем лучше понять цель – atmd

+0

в случае использования угловых символов в интерфейсе, как это можно защитить –

1

В Javascript нет способа скрыть содержимое переменной, не отменяя эту переменную, что бесполезно для вас, если вам нужно ссылаться на то, что это значение было позже. Несколько вариантов на выбор, в зависимости от того, что именно вам нужно было бы это:

хеширования значения

Вы могли бы имеет значение с MD5 или SHA. Таким образом, пользователь не знает, что это значение, но вы все равно можете отправить его на сервер и сохранить его таким образом

магазин значение на сервере

Вы можете хранить значение на сервер и ссылаться на него с помощью своего рода ключа. Таким образом, пользователь никогда не видит фактическое значение, они просто проверяют сервер, чтобы узнать, совпадает ли его значение с тем, что имеет сервер.

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

1

Код Javascript считается умеренным, поэтому вы не можете скрыть пароль в своем коде. Лучшей практикой является использование oAuth2, который использует временные токены (для отсрочки от passwortds), которые в сочетании с такими вещами, как CSRF, могут сделать ваш код на стороне клиента более безопасным. Вот библиотека one, которая может помочь вам сделать это в JS. Это требует, чтобы на вашей стороне сервера при доступе к ресурсам вам нужно было проверить этот токен (желательно при каждом вызове). Кому-то, если вам нужно сохранить пароль в браузере, чтобы войти на сервер - нет. Позвольте пользователю войти в систему, а затем использовать проблемы маркера на сервере или использовать сторонний вход и использовать маркер, полученный с стороннего сервера аутентификации.

+0

кажется, что это не настоящее решение, спасибо за отзыв –

1

Хороший вопрос, даже если бы я столкнулся с такой ситуацией, когда мой ключ API и токен аутентификации были видны на стороне клиента. Лучше всего использовать файл Javascript на стороне клиента. Вы можете использовать UglifyJS для обфускации клиентского кода. А также должны быть разрешения на стороне сервера для создания и удаления объектов.

8

Если var Speaker = "password"; жестко закодирован где-то в вашем клиентском коде, вам не повезло. См.: Password encryption at client side и Howto hide Credentials in a pure Javascript HTML Web App и Is it worth hashing passwords on the client side, потому что каждый скажет, что не следует скрывать/обфускать пароль на стороне клиента.


Однако, если вы на самом деле, действительно просто хотите удалить пароль вообще из вашего кода клиента, а затем использовать серверный скрипт для «прокси» ваш запрос AJAX и молча добавить пароль, параметр POST (например) в пути к истинному адресату. См Angular REST API security


Если вы твердо уверены в использовании своего рода шифровании на стороне клиента, я нашел angularjs-crypto, который является «AngularJS модуль для decrytion/шифрования JSON в HTTP-запросов/ответов». Он основан на crypto-js. Однако я все же решительно против ввода жесткого пароля и шифрования его на стороне клиента.

+0

, похоже, это не настоящее решение, спасибо за отзыв –

+0

Мы по-прежнему можем вам помочь.Нам просто нужно больше деталей о том, что вы действительно хотите сделать. В противном случае используйте прокси-сервер сервера, чтобы добавить пароль в пути. – Drakes

+0

Я хочу передать заголовки и другие учетные данные, такие как клавиши приложения facebook и т. Д. –

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