Китайское 404, taint в JavaScript, NewOrder и NoNaMe
Вы когда нибудь видели «ошибку 404» (страница не найдена), написанную по-китайски? Я до этого момента — никогда. А вот сегодня увидел. Увиденное меня так поразило, что я тут же решил поделиться этим c вами. :) Красота-то какая! :)
Если просмотреть все сообщения о дырах, найденных в браузерах, за последние пару лет, то видно, что большинство, своим наличием, обязано факту поддержки браузером JavaScript. Почему так сложно сделать защищенный интерпретатор мне не ясно.
С моей точки зрения все просто. Каждый объект в JavaScript (переменная, функция и т. д.) должен иметь два флага защиты. Возведением и снятием каждого из них заведует сам интерпретатор. Если установлен первый флаг, то это говорит о том, что объект принадлежит к классу «внутренних», возведение второго — причисляет его к классу «внешних». Естественно, что флаги эти взаимоисключаемы. Выражение, в котором присутствует объект с возведенным флагом, получает статус этого объекта.
Никакое «внутреннее» значение не может быть присвоено объекту с флагом «внешний». За этим следит строгая, но справедливая система безопасности. Других ограничений нет. Таким образом, буфер обмена получает статус «внутренний», объект location и методы, позволяющие передать информацию во внешний мир (open, replace и т. д.), становятся «внешними», а вот свойства объекта navigator никакого особого статуса не заслуживают.
Единственная сложность — решить к какому классу отнести информацию, полученную от «сторонних» источников — Java-апплетов, приложений ActiveX и проч. Я бы отнес их к классу «внутренних» объектов. Передавать информацию от них во внешний мир через JavaScript я нужды не вижу. Если их собственная система безопасности это позволит, то они прекрасно справятся с этой задачей сами.
По-моему, такой метод разделения объектов на «своих» и «чужих» уже где-то использовался, но я, честно говоря, не помню где, а может я и ошибаюсь. Как бы то ни было, думаю, что в JavaScript он вполне к месту.
Сегодня, в который раз обращаясь за помощью к Astalavita, я нашел там ссылку на сайт, услугами которого я теперь намерен пользоваться достаточно часто. Речь идет о сайте «NewOrder» (наверное можно перевести, как «Новый Порядок» :). Это обширный и, судя по всему, обновляемый довольно часто, каталог всего того, что может понадобится любому человеку, который тесно общается с компьютерной техникой.
Думаю, разделы скажут сами за себя: «Security», «Privacy», «Virii», «Exploits», ну и так далее. Информации и программ очень много, ценно, что все это, вот так вот, собрано в одном месте и разложено по полочкам. На сайте публикуются новости из мира хака, проводятся голосования, есть форумы. Теперь о ложке дегтя (хотя лично для меня она — чайная) — все это на _английском_. Надеюсь, вы ничего другого и не ожидали.
Людям, в силу каких-то причин, читающим только по-русски, я бы порекомендовал посетить сайт «NoNaMe». Направленность — warez, mp3, видео и прочее (о направленности этого самого «прочего» говорит домен сайта — cracks.ru). Момент его появления я пропустил, но, по всему видно, что сайт еще достаточно молодой, но уже очень интересный своим содержанием.
Я, например, уже обзавелся «довеском» к Win 2.80b4, скачанным по ссылке с этого сайта и узнал, что сайт LevelZero, следы которого оборвались на закрытом, с недавних пор, lz.knet.ru, оказывается переехал на другой адрес. Так что очень рекомендую посетить.