LINUX.ORG.RU

[хочу странного] Запуск скрипта из веб-страницы на стороне клиента

 


0

1

Здравствуй ЛОР.

Возникла странная задача. Есть сайт, клиентский ПК и USB-девайс. Задача в том, чтобы рулить девайсом с веб-страницы сайта. Т.е. примерно так: клиент заходит в аккаунт, там заполняет некую форму, сабмитит её и страница каким-то способом запускает USB-девайс с параметрами, введёнными в форму.

Как решить проблему доступа кода веб-страницы к USB девайсу всунутому в клиентский комп? Приходит в голову ActiveX, но решение нужно кроссплатформенное, теоретически даже планшеты под андроидом должны поддерживатся. Думал о локально установленном веб-сервере и ссылках на странице на localhost/somescript.[rb, pl, php], но не уверен почему-то.

Есть какие-нибудь идеи, как сделать такое?

★★★★★

Это же самое явное нарушение безопасности. Придется в обход стандартов работать.

А можно вопрос: зачем так делать? Неужели нельзя на клиенте поднять апач?

Eddy_Em ☆☆☆☆☆
()

правильно понимаю алгоритм: клиент отправляет запрос на управление устройством на сервер, сервер возвращает какой-то ответ, в зависимости от которого с устройством что-то происходит?

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

belka
()

Если я правильно понял задачу, то без специального софта на клиенте - такое не сделать. Ну, разве только пресловутый ActiveX.

Если у вас работа с файлами, то можете посмотреть в сторону исходников клиента dropbox-a.

beka
()

таки да только жаба-апплет. Подписанный жаба апплет имеет доступ к физическому уровню.

JFreeM ★★★☆
()
Ответ на: комментарий от Alve

http://download.oracle.com/javase/1,5.0/docs/guide/plugin/developer_guide/rsa...
http://www.community.terrasoft.ua/blogs/5816
http://www.coderanch.com/how-to/java/HowCanAnAppletReadFilesOnTheLocalFileSystem

и дальше мучать гугл по запросу «signed java applet permissions» или связанному. В ссылках выше были примеры permissions и примеры как их использовать. От это можно отталкиваться.

JFreeM ★★★☆
()
Ответ на: комментарий от LamerOk

Не знал, что ты знаком с Common Lisp?

@Alve. Ты действительно хочешь странного. Это будет нарушение принципов, на которых строится веб. Да, ActiveX позволяет такое. Поэтому его и не любят. Локально установленный сервер тоже решит проблему, но есть ли возможность установить его на клиенте?

dave ★★★★★
()
Ответ на: комментарий от JFreeM

Спасибо, инфа очень помогла понять, что архитектуру придётся пересмотреть. И очень вероятно, что от изначальной идеи откажемся в пользу Jav'ы

Alve ★★★★★
() автор топика
Ответ на: комментарий от dave

Чаще всего на клиенте вообще будет сложно что-либо установить. Поэтому будем думать и искать нормальное решение.

Всем спасибо за советы!

Alve ★★★★★
() автор топика
Ответ на: комментарий от JFreeM

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

dave ★★★★★
()

Имхо, вариант «локально установленный веб-сервер» - наиболее адекватный. Сервер ставится на usb stick, юзер запускает чего через exe/shell лаунчер, веб-страница открывается локально.

На этой странице содержится банальный js, который делает редирект на мастер-сайт. Там показываются все необходимые формочки, а данные заботливо собираются. Затем они возвращаются обратно на страницу (запущенную на локальном сервере). Используем эти данные для управления usb-девайсом.

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

Чтобы юзеру не надо было ставить никаких дополнительных библиотек, все нужные зависимости тупо кладутся на эту же флэшку.

Zloddey
()
Ответ на: комментарий от dave

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

JFreeM ★★★☆
()
Ответ на: комментарий от Eddy_Em

ну почему же. Первый вариант для тестов, второй для продакшена.

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Вот, почему-то не верю :) Может быть, что-то изменилось за последние годы, но по-моему уже в Java2 нужно было редактировать локальное полиси, чтобы запустить с расширенными правами подписанный аплет. Иначе это такая дыра в безопасности. Подписал аплет - и делай что хочешь по всему интернету.

Ладно, пройдусь по твоим ссылкам. Хотя прежде чем писать тот пост, я заглядывал в книгу «Система безопасности Java» от 2001 года.

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.