просмотреть все переменные JavaScript приложения GWT - PullRequest
3 голосов
/ 05 апреля 2011

Этот вопрос в основном в целях безопасности. Мне нужно знать, возможно ли каким-либо образом просмотреть (плагины, программно или что-то еще) список всех переменных и их значений в приложении gwt, скомпилированном в javascript.

Допустим, у меня есть переменная x, созданная gwt в обычном режиме развертывания .... давайте просто проигнорируем, как получилось значение ... Может ли пользователь каким-то образом узнать, что существует переменная с именем x и ее значение ...

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

Большое спасибо ..

Ответы [ 3 ]

3 голосов
/ 05 апреля 2011

Короткий awnser ... да ..

GWT компилируется в javascript и запутывает все, что сказано, вся информация доступна из скомпилированного источника, если кто-то знает, что искать. Если кому-то удастся внедрить простой тег сценария в ваше приложение, он может просто получить все сценарии через XMLHttpRequest и проанализировать их как текст. Независимо от того, насколько запутанным, теоретически возможно получить то, что вы хотите, из любого источника javascript. Если вы видите его в необработанном файле сценария, он достижим, не имеет значения, заблокирован ли он в анонимных замыканиях или еще чем-то, любой механизм безопасности JS можно обойти.

Главное условие - получить контроль над страницей (внедрение скрипта).

Процитирую себя: «Я знаю, что у меня не должно быть ничего чувствительного к клиенту с самого начала ...»

Если стоит взломать, люди попробуют.

2 голосов
/ 05 апреля 2011

GWT-код компилируется в javascript.Таким образом, в конечном итоге пользователь может использовать javascript introspection , чтобы обнаружить все объекты и их свойства.

1 голос
/ 05 апреля 2011

Краткий ответ - Нет, нет, если вы не знаете, что ищете.

Компилятор GWT выполняет то, что называется кросс-компиляцией, он преобразует код Java в скрипт Java / ECMA.Соотношение между переменной в Java и переменной в сгенерированном скрипте не является прямым.Семантика языка не одинакова;компилятор пытается оптимизировать и генерирует запутанный JS (чтобы уменьшить размер).Вы можете настроить это в определенной степени, передав аргументы во время компиляции (установив PRETTY).Это все еще не гарантирует однозначное сопоставление.

С другой стороны, даже декомпилированный код Java не похож на исходный код.(это сложность проблемы)

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