Показать сообщение отдельно
  #7 (permalink)  
Старый 01.11.2009, 19:38
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

Кратко опишу суть элемента
RAM-Disk в HTML - некий select-подобный список. Имеет свойство innerFile например.
innerFile - Array массив, в котором перечисленны все файлы/каталоги. Скрипт видит в следующем виде:
Код:
this.innerFiles = new Array
(
  {
    "name": "Music",
    "date": "12:12:12 12/12/2012",
    "attr": "folder",
    "data": new Array
    (
      {
        "name": "..",
        "date": "12:12:12 12/12/2012",
        "attr": /*здесь указать на каталог-родитель не получится без алгоритмической рекурсивной ссылки */,
        "data": ""
      },
      {
        "name": "conyon.mid",
        "date": "12:12:12 12/12/2012",
        "attr": "normal",
        "data": "base64, ..."
      }
    )
  },
  {
    "name": "read_me.txt",
    "date": "12:12:12 12/12/2012",
    "attr": "normal",
    "data": "Hello! World!!!<br/>This is RAM-Disk tag!"
  }
)
и никакой реальной файловой системе ничем не угрожает. Пользователь может спокойно блуждать по мнимой файловой системе.
Уникальная возможность: Контекстным меню кликнув на нужный пункт списка можно выбрать опции "Переименовать", "Вырезать", "Вставить", "Удалить", "Копировать", "Клонировать". При этом произойдёт лишь внутренняя реорганизация всего Array. А скрипт будет оповещён лишь абстрактно - onChange...
Ещё в контекстном меню пользователь найдёт пункт "Извлечь". Это равносильно как у картинки "Сохранить как...". Открывается диалог с предложением выбрать имя сохраняемого файла и папки.
При этом скрипт оповещён о действиях пользователя не будет, или будет, но абстрактно, как onSelect или onClick...
Ещё можно взять любой файл проводника и перетащить его прямо в список файлов в окне браузера. Сразу произойдёт реорганизация Array, будет добавлена новая структура. А содержимое реального файла преобразуется в "data": "base64, ... etc"... При этом скрипт будет оповещён событием onChange.

Таким образом, новый элемент - RAM-Disk на HTML странице никак не может стать потенциальной дырой в безопасности и защите. Так-как элемент управляется браузером, а скрипту лишь остаётся анализировать Array-структуру, не имея к реальной файловой системе никакого доступа и отношения!

Вот теперь можете высказывать свои мнения. Очень прошу, однако, вникнуть в суть хоть чуточку. А не гноитьсразу
Ответить с цитированием