Комментарии 95
О чем статья то?
Первое, что приходит на ум — выделиться из серой массы и использовать в названии сети смайлики Emoji.
Мне не приходит. ЧЯДНТ? :-)
UPD: ладно, поигрался 15 минут и вернул как было, благо редактирование у коммента полчаса. Если кто не в курсе, подобные игры с emoji и mysql в особо криворуких случаях могут приводить даже к XSS (но на Хабре у меня не получилось)
Нужно просто, находясь на странице редактирования SSID, написать в консоли:
window.validate_ssidchar = function () { return true; };
Источник: www.reddit.com/r/javascript/comments/5zcb8m/can_you_help_me_allow_my_router_to_accept_as_the
UPD ЧТобы эмодзи можно было указать и в пароле, нужно выполнить отключить еще одну функцию валидации:
window.validate_string = function () { return true; };
И вот теперь самое сложное. Как ввести пароль UTF-8?
Очевидное решение — QR-код с реквизитами подключения. Удобно не только для ввода эмодзей, но и вообще.
Хммм. Минимальная длина пароля 8 символов, в андроиде даже кнопка подключения не загорается если их меньше.
Предложенные два эмодзи в UTF-8 кодировке занимают 8 байт, это и есть минимальная необходимая длинна пароля. А вот в ASCII 8 байт это 8 символов, по-этому все и привыкли в 8ми символам.
а проверяется ли длина пароля в байтах? Или проверяется всё-таки в количестве символов? Если второе, то всё равно сколько фактически в байтах занимает символ
разговор за проверку на стороне Android был, а не со стороны роутера
Хм… Galaxy S8+, при подключении к вайфаю из клавиатуры пропадает русская раскладка и эмодзи, при попытке вставить скопированный эмодзи из буфера всплывает ошибка "Неверный символ" и ничего не вставляется :(
Например: перебрать пароль из 2 Emoji, это не тоже самое что перебрать 8-и значный пароль.
Сколько вариантов эмодзи? А если не только эмодзи, но и полный набор utf-8 символов? Нужно считать… Опять-таки, сейчас если кто и брутфорсит пароли, то используют словари на базе латинских букв и цифр, эмодзи никто не переберает...
Согласно 11 версии Unicode сейчас 1212 Emoji. В одном байте 256 значений (проигнорируем недопустимые символы).
Рассчитываем количество комбинаций.
256^8 = 18 446 744 073 709 551 616 (символов)
1212^2 = 1 468 944 (Emoji)
Разница колоссальная.
Так что 1,5 млн комбинаций из 2х эмодзи значительно сложнее поддаются перебору, чем любимые всеми даты рождения и номера телефонов. А ещё эмодзи легче запомнить, а значит можно сделать пароль из большего числа символов, а там уже и комбинаций значительно больше. А ещё кроме эмодзи в UTF-8 много других символов…
Фараон: Здравствуйте, можно забронировать столик на имя Сакрахотеп?
Администратор: Продиктуйте, пожалуйста, по буквам.
Фараон: Птичка, два треугольника, волнистая линия, солнце, опять птичка, собачья голова, скарабей.
У меня мак и роутер тоже эпл)
RouterOS 6.43.11, iOS 12.1.2
/interface wireless set [find name="wlan2"] ssid="\f0\9f\a7\99"
Вот этим к примеру: ssid "\xf0\x9f\x93\x9e\xe2\x91\xa4\xe2\x91\xa2-\xe2\x91\xa3\xe2\x93\xaa-\xe2\x93\xaa\xe2\x91\xa1"
Это только название из символов так в этом файле выглядит. С паролями не заморачивался вообще.
Но нет значка Wi-Fi. Yandex Translate предлагает:
— mobile phone
— wlan, wireless
— antenna with bars
Как жить-то дальше?
Не совсем верно говорить о «поддержке стандарта Unicode в паролях» (к слову, SSID это касается ровно в той же степени — имя сети моего hotspot-а на телефоне — emoji с лягушачьей головой и осьминогом). Что пароль, что SSID, согласно стандарту — просто последовательность octet-ов, то есть байтовая последовательность, а даже не последовательность символов.
А вот уже формы ввода (и даже, вероятно, операционные системы активных сетевых устройств) — препятствие для набора произвольных последовательностей или их правильного сохранения в настройках. По идее, в соответствии с тем, что это просто байтовая последовательность, любая такая форма ввода должна бы принимать ее в виде какой-нибудь escape-последовательности, но в реальности это совершенно не так, потому что SSID и пароль стало принято интерпретировать, как строку символов.
за любовь к
Router Scan by Stas'M.
В пролете
и дома и на работе.
Одно успокаивает,
здесь большинство также в пролете!
Какая можель и прошивка? Через web интерфейс настраивали? Пароли utf-8 принимает?
Прошивка родная. Пароль не пробовал.
Телефон на Android в списке сетей emoji не показывает. MacOS и Windows 10 показывают.
D-Link DIR630 (старый домашний роутер dlink): Смайлы в SSID отображаются корректно, но ввод настройки ограничен Javascript'ом на странице (запрещён Unicode).
Обычным POST-запросом дело не решилось (не копался), переопределил функцию проверки в консоли:
strchk_unicode = Object.assign(function (str) { return false; }, strchk_unicode);
Завтра вечером/ночью протестирую роутер TP-Link.
Работает, проверка только JS. Можно отослать повторный POST со своим текстом на изменение через инструменты разработчика — что я и сделал.
В JS две разных функции: doSubmit() для SSID из /userRpm/WlanNetworkRpm.htm и checkpwd() из /userRpm/WlanSecurityRpm.htm (по прямой ссылке не грузятся).
Опосля заметил, что телефон имя даже в шторке отображает, забавно вышло: i.imgur.com/BfYHR1V.jpg
Установить пароль в виде emoji не позволил, сработала валидация.
Когда Вы вводите текст в мессенджеры, то там и раскладка клавиатуры специальная есть с иконками Emoji. Но при вводе пароля Wi-Fi доступна только стандартная клавиатура!Очень давно пользуюсь клавиатурой SwiftKey на Android, там можно включать Emoji при вводе пароля
SSID успешно задаётся
Про пароль говорит «This field can only contain spaces or printable ASCII characters in the length of 8-63.» (валидацию пока отключить не нашёл как)
UTF-8 кодировка в названиях и паролях Wi-Fi (Emoji)