![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
firedrago |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 22.9.2005 Репутация: 2 Всего: 3 |
Всем привет!
Есть ли вариант как сделать это красивее, или это самая нормальная и быстрая возможность ?
Это сообщение отредактировал(а) firedrago - 16.11.2011, 12:10 |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
Само появление такой необходимости кажется странным.
|
|||
|
||||
firedrago |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 22.9.2005 Репутация: 2 Всего: 3 |
||||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
Вполне сгодится, как быстрая возможность. Собственно понятие скрипта то и подразумевает - дать пользователю возможность самому вводить, или изменять какие-то алгоритмы в программе. Вопрос правда о безопасности, если пользователь хакер, то ввести может не только мат формулу ![]() Так что нужно бы как-то верифицировать вводимое на предмет допустимости операций. |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
А что пользователь может ввести в данном случае, чтобы похакать программу?
|
|||
|
||||
firedrago |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 22.9.2005 Репутация: 2 Всего: 3 |
![]()
в моем случае, это не актуально...
теоретически - любой код, любой длины на JS (хотя я думаю, что скорее всего ничего ужастного сделать не получится), практически - надо разбераться.... |
||||
|
|||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
В пределе - считайте что поставил на рабочее место свою программу. По удобству прямого и полного доступа к ScriptEngineManager та же SQL иньекция - просто муки адовы для хакера ![]() Вспомнился пример использования, в ERP ADempiere очень много можно кастомизировать с помощью js кода. Защиту не смотрел. В случае с мат вычислениями, можно попробовать организовать проверку на допустимые лексемы и имена констант, и разрешенных функций. Нужно как-то конечно и пользовательские функции разрешить, вносить их в список разрешенных лексем. Но, в конце концов это можно и позже прикрутить, когда первый релиз будет сдан в эксплуатацию. |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Любопытно было бы посмотреть на строку, при выполении которой делается что-то типа "rm ~ -rf".
И интересно, js который в java, умеет работать с файлами? Ведь в бразуерах на это ограничение. Я так понимаю, что к внутренностям программы просто так из js кода не получишь доступ - там же нет замыкания на переменные метода, из которого вызван скрипт? А вообще по сабжу - мне кажется, что это самое быстрое и простое решение проблемы. Нет нужны заморачиваться с приведением выражения к обратной польской нотации и т.п. Другое дело, что про безопастность выполнения таких скриптов я никогда не думал. |
|||
|
||||
Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
Он работает со всеми классами из JRE. "Своей" библиотеки у него нет. Только движок JavaScript'а. Вот если Jython подцепить, ну тогда к JRE еще и питоновская библиотека будет.
Зато есть все та же интроспекция, создание объектов и т.д. С некоторыми нюансами. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |