Pull to refresh

Comments 41

а как это расширение попадет в браузер? И что будет с security (риторический вопрос)?
Как явствует из первого примера, библиотека js-ctypes будет доступна каждому такому расширению, которое подгрузит её с адреса «resource://gre/modules/ctypes.jsm» (адрес этот локальный).

Безопасность будет достигнута за счёт того, что эта библиотека доступна только для расширений (которые и без неё могут сделать всё что угодно), а не для сайтов большой и страшной Паутины.
Ну мне кажется очень сложно будет такое применить безопасно)
Минус-то обоснуйте. Один бес, расширения могут творить что угодно, а кроме как им, js-ctypes больше ничему не доступен. Ну и где тогда проблема?
Расширения могут взаимодействовать с открытыми страницами. Были уже уязвимости в расширениях, с этим связанные. (В том числе в грязной обезьяне и фаербаге с выполнением любого кода в контексте расширения).

Например, расширение берёт какую-нибудь строку с открытой страницы и передаёт её в функцию WinAPI, которой надо явно указывать длину, и в результате переполнение.
Я не минусовал) Увидим скоро, как окажется на самом деле) возможно вы и правы)
Прочитайте ещё раз, на что вы отвечали.

Плагины и сейчас могут всё.
Местный код — это пздц. Написал бы хотя бы «родной».
Расширению он не родной совсем.
Ну и ни разу не «местный».
Мицгол, спасибо тебе за перевод, но использование слова «местный» в значении «нативный» не красит ни тебя, ни твой текст. И не делает обоих русскими.
Я что-то в тексте ни одной ссылки не могу найти. Где встречать-то?
Видимо в 3.7 ее можно загрузить вот так: resource://gre/modules/ctypes.jsm
Вообще, идея хорошая, с ее помощью можно будет еще больше частей Firefox'а переписать на Javascript.
Плохая идея, негодная. С её помощью родится куча расширений, привязанных к операционной системе.
Уже сейчас можно запросто написать расширение, которое будет привязано к системе.
Разработка расширений для Firefox уже сейчас — рокет сайнс, еще больше ее усложнить уже кажется нереально, поэтому еще один стотысячный путь сделать что-то неправильно вряд ли усугубит ситуацию.
Насчёт запросто — не знаю. Каким образом? Привязаться к системным путям?
Коллега, у нас процентов 20 ошибок связаны с работой расширения на разных ОС. Пути и методы их формирования, конечно, первый путь, но обычно ошибки не так очевидны, связаны с различиями в управлении окнами, фокусом, скинами, выводом графики и пр.
Понятненько. Ну, теперь этот процент будет выше :)
А вот ActiveX тут совсем непричем.
В 1996-м году ActiveX тоже был секьюрным и всячески волшебным. А спустя 5 лет вы сами знаете что случилось. Сейчас FF займёт ещё 10% рынка и мы поимеем все «прелести» популярности. Только в этот раз счастье будет не только у пользователей Windows, но и у пользователей Linux и MacOS X.

И не надо рассказывать про то, что без рута ничего сделать нельзя — качать порно-траффик можно и под обычным юзером.
Вы путаете.
ActiveX — решение контекста пользовательской страницы. Но оно даже проектировалось не как шибко безопасное.
Firefox extension — решения контекста браузера.
Любой расширение для Firefox абсолютно не безопасно (об этом вас четко предупреждают при его установке), оно может выполнить абсолютно любое действие с правами самого браузера. Более того, расширение может ненароком добавить в ваш браузер уязвимость, которая позволит сторонним веб-страницам получить эти же самые права.
Я не путаю. Уже были наработки на тему несанкционированной скрытой установки расширений. Учитывая возможности экстеншенов такая установка может выпонить заливку какого-то кода на комп и удаление расширения. В итоге пользователь вообще ничего не заметит.
Может быть вы и не путаете, но логики в ваших словах точно не много. Перечитайте весь тред и обоснуйте ваши соображения об ущербе безопасности еще раз подробно.
Расширения — изначально большая дырка. Теперь «портировать» известные мальвари будет ещё проще. А так ничего особенно не поменяется.
Я воздержусь от оценки безопасности Firefox'а.
Но если представить гипотетическую угрозу, то сегодня на XPCOM было бы весьма удобно писать кросс-платфоменное «мальваре».
Тут уже исключительно вопрос рыночной доли. С выходом IE8 + Win7 ломать IE стало настолько сложно (не невозможно, но экономически нецелесообразно), что сейчас все силы идут на эксплойты продуктов Adobe.
UFO just landed and posted this here
Вообще-то в 3.6 уже есть этот модуль.
resource://gre/modules/ctypes.jsm
let EXPORTED_SYMBOLS = [ "ctypes" ];
const init = Components.classes["@mozilla.org/jsctypes;1"].createInstance();
init();
А использовать получается? В браузерах встречается функционал, который, вроде, есть, но не анонсирован и не работает.
Возможно, ещё не настолько навороченный? (А иначе чего это тот блоггер, которого я перевёл, говорит именно о следующей версии Файерфокса?)
Я человек далёкий от программирования, и смысл статьи, к сожалению, почти не уловил.
Возможно ли, с помощью описанного решения, подключить к лисе, например, библиотеки кодека H.264 и заставить лису при проигрывании ролика кодированного этим кодеком отображать его через тег <vidео> описанный в HTML 5? Просто временный костыль, до которого я сумел додуматься — довольно убогое решение, до которого я пока сумел додуматься.
Нет, потому что тег <video> не настолько скриптуется.

Можно было бы расширением заменять его на <object> для использования плагина.

Но тут js-ctypes не нужен.
ой мне кажется не туда они полезли… лучше бы увеличили нормальное апи для базовых функций
Постскриптум.   Возможен вызов библиотеки с подбором расширения в зависимости от платформы. Согласно комментарию 4 к багу 518130, вот этот вызов:
var name = ctypes.libraryName("foo");
возвращает «foo.dll», или «libfoo.so», или «libfoo.dylib» (в зависимости от платформы). Он реализован в баге 577589.
Sign up to leave a comment.

Articles