Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2018, 17:53   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

не работает.

index.html
Код:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Test Document</title>
</head>
<body>
<a href="D:\test\LAB28.doc">LAB28.doc</a>
</body>
</html>
при клике ничего не происходит.
в консоли разработчика отображается ошибка:
error1.png

что дальше?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2018, 18:12   #12
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
скачивается.
значит не скачиается, вы эту ссылку копировали в браузер вставляли?
я сейчас всё это проделал и браузер отказывается работать с локальными файлами.
делайте на localhost веб сервер.

самое просто поставить denver

у них походу такая защита в современных браузерах не работать с локальными файлами, вероятно, чтобы скрипты в автоматическом режиме не поскачивали ваши файлы с компа, так как это разумно, значит никак вы не обратитесь из браузера к локальному файлу.
Alar вне форума Ответить с цитированием
Старый 26.09.2018, 19:51   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

значит, это не решаемая задача?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2018, 20:22   #14
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

решаемая, поставьте апаш, это не сложно.
Alar вне форума Ответить с цитированием
Старый 26.09.2018, 22:09   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

у меня установлен Apache и под Windows (в составе ZendServer) - на скриншоте как раз под Windows обращение к локальному серверу по адресу 127.0.0.1

и Apache установлен на сервере в локалке (там апач под Ubuntu).

И там и там доступ не работает, т.к. очевидно, что доступ не разрешён в рамках клиента (браузера), которому политика безопасности и не даёт обращаться к файлам, лежащими вне сервера с веб-сервером (с этим самым Apache).

я же и говорю, что-то я делаю не так.
А как надо правильно, видимо, мне никто не подскажет
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2018, 23:38   #16
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
очевидно, что доступ не разрешён в рамках клиента (браузера), которому политика безопасности и не даёт обращаться к файлам, лежащими вне сервера с веб-сервером (с этим самым Apache).
Для схемы URI file:// вебсервер не нужен. Через file:// открываются как локальные файлы, так и сетевые папки в локальной сети если они расшарены в Windows.

Просто ссылки со схемой file:// в документах HTML, загруженных по протоколу HTTP, не работают в браузерах по соображениям безопасности. При нажатии на такие ссылки не происходит ни навигации, ни показа сообщения об ошибке, хотя сообщение об ошибке может быть записано в консоли ошибок.

Но приложениям Windows файлы по схеме file:// полностью доступны.Так, если вставить file:///C:/boot.ini руками в адресную строку браузера - файл откроется. И, написав свой браузер на опенсорсном движке, можно сделать в нём такие ссылки рабочими.


Но file:// это старая схема URI (даже не протокол). Из протоколов для этих целей есть Peer-to-peer file sharing, на Хабре есть статья P2P передача файла прямо из браузера.
На P2P работала известная Kazaa, через которую раньше народ через интернет шарился друг у друга по компам и скачивал музыку. Но потом "умники" сообразили, что через эту Kazaa можно искать на чужих компах не только музыку, но и .DAT-файлы, и стали угонять 5-значные номера ICQ.


Так же есть ed2k:// URI схема гиперссылок для скачивания файлов через P2P. Возможно, для неё есть опенсорсные решения. Вот статья на Хабре Гиперссылки в формате «ed2k://…» и их применение.


Но, самая "круть" это IPFS - распределённая файловая система с контентной адресацией для децентрализованной раздачи контента.


Serge_Bliznykov, вы хотите что-то совсем готовое найти для решения вашей задачи, или собираетесь разрабатывать софт?
Безопасность с Content Security Policy

Последний раз редактировалось Ottava; 26.09.2018 в 23:46.
Ottava вне форума Ответить с цитированием
Старый 27.09.2018, 01:01   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Ottava, спасибо большое за ответ!!!

я точно не буду делать новый браузер и не хотелось изобретать велосипед (в качестве своего приложения).
Ведь по сути мне "всего-то" нужно на клиенте (например, на JS) запустить MS Word и передать туда командную строку в виде имени файла. И всё. Мне не нужно, чтобы JS имел доступ к этому файлу, не нужно содержимое этого файла загружать в браузер и т.п.

Но, по всей видимости, пока я вижу только такой рабочий вариант - на сервере Ubuntu подмонтировать удалённую папку, делать на веб-сервер запрос, он будет читать файл с удалённого сервера к себе и потом отдавать содержимое файла в браузер. Это криво ужас как! Но по другому я не вижу варианта.

А если абстрагироваться от файлов, путей, URI и прочего..
На JS можно открыть (запустить) приложение Windows? MS Word можно стартовать?
Без написания своего браузера/клиента/расширения под браузер ?
Или есть такие готовые расширения под Хром, например?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.10.2018, 01:13   #18
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

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


1. Из IE вроде бы можно запускать программы Windows через ActiveX. Вот так вроде как можно вызвать calc.exe на JS:
Код:
<button onclick='(new ActiveXObject('WScript.Shell')).Exec('calc.exe')'
>Run Calculator</butoon>
Но надо разрешить исполняться неподписанным ActiveX'ам.


2. Можно написать расширение(addon) к Хрому или FireFox. Там тоже JS, но он имеет доступ к файловой системе.
Вроде бы вот этот addon к FF https://addons.mozilla.org/ru/firefo...n/ipprotocols/ запускает cmd.exe/ping.exe/telnet.exe

Кстати, эти расширения/addon-ы скорее всего смогут сделать ссылки с file:// кликабельными, у аддонов повышенные права доступа до компа пользователя, и в браузере они могут творить что хотят.
В Хроме есть API доступа к FS, то есть Расширение к Хрому имеет туда доступ. На счёт запуска файлов - не знаю, но скорее всего, раз браузер может запустить MS Word, то и Расширение к браузеру тоже сможет.

Но у меня нет опыта написания таких addon-ов. Я только знаю, что раньше народ массово скупал всякие расширения Xрома/FF, и потом подменял рекламу в браузерах, где эти расширения были установлены.
Безопасность с Content Security Policy

Последний раз редактировалось Ottava; 05.10.2018 в 01:25.
Ottava вне форума Ответить с цитированием
Старый 05.10.2018, 01:33   #19
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от Ottava Посмотреть сообщение
раньше народ массово скупал всякие расширения Xрома/FF
под вирусы

Цитата:
Сообщение от Ottava Посмотреть сообщение
Я только знаю
возможно и от меня, я тут старший параноик смены )
возможно я даже кого-то надразумел их скупать.
Alar вне форума Ответить с цитированием
Старый 05.10.2018, 11:38   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ottava Посмотреть сообщение
Обычный JS не может вылезти за пределы браузера, файловая система ему недоступна. Иначе сайты смогут тырить файлы у посетителей и запускать вирусы на их компах.
Да, я это уже понял.
Имхо, они с безопасностью даже переборщили.
Для меня стало шоком, что если в HTML открыть файл для загрузки
(<input type="file" />) то в JS можно получить имя файла, размер, дату создания, и даже содержимое. А вот полный путь - ФИГУШКИ! <цензура>


Цитата:
Сообщение от Ottava Посмотреть сообщение
Но надо разрешить исполняться неподписанным ActiveX'ам.
хуже. нужно поставить расширение (например, в Chrome можно поставить расширение "IE Tab", открыть страницу через это расширение, тогда сработает ActiveX.

Но, в любом случае, спасибо большое за пример!
Буду знать, как можно обойти эту паранормальную безопасность, если уж сильно прижмёт.
Ваш пример, кстати, после исправления опечаток, в окне "IE Tab" сработал нормально!



Цитата:
Сообщение от Ottava Посмотреть сообщение
2. Можно написать расширение(addon) к Хрому или FireFox. Там тоже JS, но он имеет доступ к файловой системе.
спасибо.
У меня тоже нет опыта написания расширений.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открыть проводник по ссылке Juls16 Общие вопросы Web 6 12.10.2017 08:18
Открыть Word документ dmitriegorovih Общие вопросы Delphi 10 04.03.2011 22:00
Открыть документ в Opera RIO Софт 5 19.08.2010 13:38
Открыть документ WORD Maxx Microsoft Office Excel 0 15.02.2010 17:37