UDF является кандидатом. Это работает out-of-the-box над Linux> = 2.6.31, Windows> = Vista, MacOS> = 9 и на многих BSDs.
Примечание: UDF существует различных версий, которые одинаково не поддерживаются на всех платформах, видят Википедию - Совместимость.
UDF может быть создан на Linux с инструментом mkudffs
от пакета udftools
.
В Debian /etc/network/interfaces
(или любое другое распределение с помощью ifupdown утилиты Debian), последовательность новой строки обратной косой черты удалена, и обратная косая черта не является особенной больше нигде. Символ двойной кавычки не специален также. Символ #
запускает комментарий, если это - первый непробельный символ на (непродолжение) строка. Пустые байты рассматривают как символы новой строки (я думаю — синтаксический анализатор использует струны до и не имеет никакой специальной обработки для пустых байтов, таким образом, они могли бы вызвать дополнительный вред).
Строки конфигурации принимают форму имени опции, сопровождаемого значением, разделенным пробелом. При продвижении и запаздывании проигнорирован пробел. Некоторые встроенные опции далее анализируют строку в слова; значение опций к iface
всегда выполнения в конец строки.
Например, строка
wpa-ssid "a b" "cd"
устанавливает опцию wpa-ssid
к 12 символьным строкам "a b" "cd"
(внутренний пробел сохраняется).
ifupdown сценарий Суппликанта WPA разделяет двойные кавычки вначале и в конце wpa-ssid
строка конфигурации, строка выше эквивалентна wpa-ssid a b" "cd
. Таким образом, у Вас может быть ведущий и запаздывающий пробел в SSID.
Я не могу найти проблему заключения в кавычки в Суппликанте WPA ifupdown сценариями, таким образом, он похож на что-либо, что произведет ifupdown, безопасно.
Таким образом можно позволить любой строке как SSID быть введенной в /etc/network/interfaces
, при условии, что это не содержит новой строки или пустого байта. Добавьте двойные кавычки вокруг строки (если Вы не делаете, SSIDs с продвижением или запаздывающим пробелом или тем концом с \
, или это начинается или заканчивается "
, будет искажен).
Это ТАК названные Вопросы и ответы: существует ли стандарт, который определяет то, что допустимый SSID и пароль? ответы некоторые Ваши вопросы.
выборка
Раздел 7.3.2.1 из 802.11-2007 спецификаций (http://standards.ieee.org/getieee802/download/802.11-2007.pdf) определяют SSIDs.
Допустимый SSID является 0-32 октетами с произвольным содержанием. SSID с 0 длинами указывает на подстановочный знак SSID (в тестовых кадрах запроса, например).
Нет никакого набора символов, связанного с SSID - 32 строки байтов NUL-байтов являются допустимым SSID.
Это подразумевает:
- Вы никогда не должны использовать нормальные строковые функции при управлении универсальным SSIDs (strcpy () и друзья).
- Вы не должны предполагать, что SSID является печатаемым когда, например, регистрируя его к диску
Существует также этот комментарий к ответу на ТАК вопрос:
Существует обновленная версия стандарта (http://standards.ieee.org/getieee802/download/802.11-2012.pdf), который определяет
SSIDEncoding
поле. Это может бытьUNSPECIFIED
(для произвольных данных) илиUTF8
.
Таким образом, я обратился бы к последнему стандарту для руководства и удостоверился бы, что можно иметь дело с тем, что законно на основе этого.
Дополнительно я мог бы быть склонен охранять, мои сам нормализуют вход пользователя с помощью некоторой формы функции кодирования URL (что-то, что работало бы с SSID's, очевидно), или просто разделите запрещенные символы и просто не позвольте им до записи этих строк в этот файл.
Единственные проблемы я мог найти со странными / специальными символами связанный с interfaces
файл был этими типами ошибок, которые были зарегистрированы против debian-установщика.
debian-установщик запросил мою информацию беспроводных сетей и успешно использовал ее для соединения с помощью беспроводных технологий с сетью. Это также записало мою информацию о беспроводных сетях в/etc/network/interfaces. Однако ключ WPA, который я ввел содержавший по крайней мере один специальный символ и debian-установщик, не вышел или заключил специальный символ (символы) в кавычки в/etc/network/interfaces. Результат состоял в том, что на перезагрузке система, подвешенная в течение очень долгого времени во время процесса начальной загрузки, поскольку, это пыталось (неудачно) снова соединиться с беспроводной сетью. Я решил проблему путем простого заключения в кавычки ключа WPA, перечисленного в/etc/network/interfaces. Это должно произойти автоматически, если ключ содержит специальные символы.
Также были эти ошибки, один связанный к пробелам в SSID, другие связанные с паролем:
В любом случаи казалось бы, что обертывания строк с двойными кавычками достаточно для защиты значений для обоих.
Официальные документы
При рытье через официальную документацию я нашел этот бит здесь:
Официальные документы показывают этот пример:
ap_scan=2
network={
ssid="test adhoc"
mode=1
frequency=2412
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="passphrase"
}
Таким образом, казалось бы, что пробелы позволяются, пока они заключаются в кавычки правильно. Также существует этот пример, объясняющий, как предоставить SSID пробелы к iwconfig
инструмент:
Добавьте имя (ssid) для сети, которую Вы хотите создать/присоединиться. Используйте одинарные кавычки, если существует пространство на имя.
$ sudo iwconfig eth1 essid 'name'
Webconverger
Я нашел этот пример, который надеется быть Debian под капотом, таким образом, пример может соответствовать Вашей ситуации, но трудно сказать наверняка. Я поднимаю его только потому, что это показывает пример того, как я ожидал бы, что метод кодирования URI будет выставлен для защиты от запрещенных символов.
выборка
Пример 4 "Пробелов в ESSID", широковещательно передавая essid 'Hopstock Gjestenett', с ключом WPA uiopzxcv
Избегайте пробелов в ESSIDs. В этом случае мы обходное решение с encodeURI ('Hopstock Gjestenett'), для получения следующего рецепта начальной загрузки:
wpa-ssid=Hopstock%20Gjestenett wpa-psk=uiopzxcv
Таким образом, Вы смогли кодировать пробелы, которые обнаруживаются в использовании SSIDs %20
.
При рытье еще глубже я нашел этот комментарий от страницы Wikipedia на Сервисном наборе (802,11 сети).
Каждый BSS или ESS определяются сервисным идентификатором набора (SSID) - 1 - 32 строки байтов. Это обычно - человекочитаемая строка и таким образом обычно называло "сетевое имя".6 В IBSS, SSID выбран клиентским устройством, которое запускает сеть, и широковещательная передача SSID выполняется в псевдослучайном порядке всеми устройствами, которые являются членами сети.
Этот комментарий сохранен этой презентацией из ЕС Blackhat 2013, названный: Практическая Эксплуатация Используя Злонамеренный Сервисный Идентификатор Набора (SSID).
выборка
- Никакие определенные ограничения относительно того, какие символы могут использоваться в SSID (Станд. IEEE 802.11™-2012)
- Некоторое ограничение на основе продуктов
- Некоторое символьное ограничение (только ASCII)
- Unicode
Таким образом, технически любой символ позволяется в SSID, различные реализации, такие как Windows XP, Windows 7, по сравнению с различными версиями Linux позволяет/запрещает подмножества символов в SSIDs.
/etc/network/interfaces
?
– Gilles 'SO- stop being evil'
26.11.2013, 01:46
wpa-ssid my ssid
. – hultqvist 26.11.2013, 11:22wpa-ssid=my ssid
? – slm♦ 26.11.2013, 18:48/etc/network/interfaces
не использует=
в его синтаксисе я попробовал прямо сейчас, и он не работает с=
. – hultqvist 27.11.2013, 11:34my ssid
? – slm♦ 27.11.2013, 15:00