php — Как правильно работать с кириллицей в url?
Вопрос задан
Изменён 7 лет 1 месяц назад
Просмотрен 10k раз
Решил использовать кириллицу в url
. Ссылки на картинки и сами url
вида site.com/картинка.jpg
и site.com/news/главная-новость-дня
я вывожу из бд обычным способом.
Нужно ли текст кодировать, декодировать как написано тут?
Текст отображается как надо в ссылках, правда, одно но, при копировании адреса изображения и последующей вставки куда-нибудь, почему-то вставляется в закодированном виде, но, при переходе по ней обращается обратно в нормальную кириллицу.
Со ссылками на страницы сайта, такого нет.
- php
- url
- кириллица
Большинство браузеров умеют автоматически кодировать адреса если это нужно. А современные браузеры умеют еще и декодировать URL в адресной строке для показа пользователю (при этом запросы на сервер идут всегда с кодированным URL). Но на это лучше не полагаться — ведь разные браузеры могут использовать разные кодировки. И если эта кодировка не совпадает с той, которую использует сервер при декодировании URL — все «поломается».
Поэтому лучше кодировать URL на стороне сервера, где вы точно знаете ту кодировку, в которой потом будете декодировать.
7
Я использую urldecode urlencode
для
запросов, для остальных случаев думаю не нужно, то есть когда передаю данные в ссылке, потому что, даже один пробел может попортить много нерв.
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
javascript — Передать кириллицу в параметрах URL
Задать вопрос
Вопрос задан
Изменён 4 года 8 месяцев назад
Просмотрен 6k раз
Добрый день!
Коротко: Мне нужно передать кириллицу в качестве параметра URL. Google Chromе справляется с этим прекрасно, но богомерзкий IE почему-то отправляет его в другой кодировке.
Вот мой простой код, который это делает:
location.assign("http://127.0.0.1/cs105/livelink/Open/myreport?param=Параметр")
Я продебажил бекэнд и увидел, что, когда я вызываю этот код из хрома, в качестве значения param приходит русское слово «Параметр», но при отправке из IE10 прилетает слово «Параметр» в кодировке ISO-8859-1, т.е. в виде кракозябр.
Обычно, я мог бы сделать какой-нибудь EncodeURI и потом на бекенде преобразовать это обратно в кириллицу, но сейчас, в силу невожности редактирования кода на бекенде, я этого сделать не могу.
Есть ли какой-нибудь способ заставить IE нормально отправлять киррилицу в качестве URL-параметров?
Спасибо.
- javascript
6
Используйте URL-кодирование перед передачей на сервер. Хром это делает автоматически — и если с ним у вас все работает как надо — то достаточно закодировать ссылку правильно.
На чистом js это делается так:
location.assign(encodeURI("http://127.0.0.1/cs105/livelink/Open/myreport?param=Параметр"))
Но не все параметры так можно закодировать. К примеру, если в параметре будут не только русские символы — но и знак & — обработчик опять поймет вас неправильно. Поэтому лучше собирать ссылку из кусочков:
location.assign("http://127.0.0.1/cs105/livelink/Open/myreport?param=" + encodeURIComponent("Параметр"))
Ну а если вы используете еще и jquery — то можно воспользоваться функцией
, что куда более удобно при наличии нескольких параметров:
location.assign("http://127.0.0.1/cs105/livelink/Open/myreport?" + $.param({ param: "Параметр"}))
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Chrome блокирует хитроумный метод фишинга URL-адресов
Google на этой неделе обновил веб-браузер Chrome для защиты от метода манипулирования Unicode, который фишинговые мошенники могут использовать для обмана посетителей Интернета, заставляя их посещать вредоносные веб-сайты.
Зарегистрировав URL-адрес, состоящий из символов нелатинского алфавита, мошенники могут сделать его почти идентичным веб-сайту, который они пытаются имитировать, как продемонстрировал на этой неделе блогер по безопасности Сюйдун Чжэн(Открывается в новом окне). Чжэн зарегистрировал доменное имя «xn--pple-43d.com», формулу Unicode, известную как «punycode(открывается в новом окне)», которую Chrome, Firefox и другие браузеры будут отображать как практически идентичную «www.apple». ком.»
Этот метод известен как атака с использованием омографа, и его использование для фишинговых атак на веб-сайты теоретически возможно с 2009 года, когда Интернет-корпорация по присвоению имен и номеров одобрила добавление доменных имен верхнего уровня с наборами символов, отличными от латинского. Он оставался в относительной безвестности до последних нескольких месяцев, когда исследователи безопасности и специалисты по поиску ошибок начали обсуждать его на Reddit и различных форумах разработчиков. (Открывается в новом окне)
Повышенное внимание заставило Google изменить(открывается в новом окне) способ отображения URL-адресов в браузере Chrome. Начиная с версии Chrome 58, URL-адреса, содержащие символы кириллицы, будут отображаться в виде текста только в том случае, если домен также содержит нелатинские символы. Если пользователь попытается загрузить веб-сайт из домена, такого как «.com» или «.net», с кириллицей в URL-адресе, браузер заблокирует его как опасный сайт.
Производитель Firefox Mozilla не объявил о конкретных исправлениях и заявил, что реестры доменов должны выявлять атаки с использованием омографов.
«Мы продолжаем исследовать способы дальнейшей борьбы с визуальными спуфингами, которые сложно устранить с помощью технологии только в браузере», — говорится в заявлении представителя Mozilla. «Реестры доменных имен находятся в идеальном положении, чтобы помочь решить эту проблему, потому что у них есть необходимая информация для выявления этих потенциальных атак до того, как они произойдут».
Чжэн отметил, что пользователи Firefox могут реализовать собственную блокировку, изменив код конфигурации своего браузера. Для этого введите «about:config» в адресную строку и установите для параметра «network.IDN_show_punycode» значение «true».
Рекомендовано нашими редакторами
Не поддавайтесь на эту изощренную фишинговую аферу Gmail
Неясно, планирует ли Microsoft реализовать аналогичные исправления для своего браузера Edge. Microsoft не сразу ответила на запрос о комментарии. По словам Чжэна, другие малоиспользуемые браузеры, в том числе Safari от Apple, не подвержены уязвимости.
Примечание редактора: эта статья была обновлена 21 апреля с комментариями от Mozilla.
Лучшие технические продукты 2018 года
Нравится то, что вы читаете?
Подпишитесь на информационный бюллетень SecurityWatch , чтобы получать наши главные новости о конфиденциальности и безопасности прямо на ваш почтовый ящик.
Этот информационный бюллетень может содержать рекламу, предложения или партнерские ссылки. Подписка на информационный бюллетень означает ваше согласие с нашими Условиями использования и Политикой конфиденциальности. Вы можете отказаться от подписки на информационные бюллетени в любое время.
Спасибо за регистрацию!
Ваша подписка подтверждена. Следите за своим почтовым ящиком!
Подпишитесь на другие информационные бюллетени
фальшивые URL -адреса с кириллическими буквами
- Гарантия возврата денег
- БЕСПЛАТНАЯ ДОСТАВКА Великобритании
- Мировой доставка
- Гарантия лучшей цены
- Secure Online Payment
Мошенники создали поддельный URL-адрес службы обмена сообщениями WhatsApp, используя буквы кириллицы, похожие на буквы латинского алфавита (используемого в английском языке). На скриншоте видно, что буквы «w» и «t» в адресе www. whatsapp.com заменены. Преступники надеются, что вы этого не заметите.
URL появляется в рекламе инструмента, который обещает изменить цвет WhatsApp. Если вы нажмете на ссылку, вы будете перенаправлены на мошеннический сайт, который попросит вас поделиться ею с друзьями , который получит сообщение «Мне нравятся новые цвета для WhatsApp» и ссылку на поддельный сайт. Затем вам предлагается установить расширение Chrome BlackWhats, но на самом деле это рекламное ПО.
Что делать?
Компания Google удалила BlackWhats из своего магазина, устранив эту конкретную угрозу. Но хакеры никуда не делись и, вероятно, ищут новые способы обмана людей с помощью кириллических букв. Это не новая тактика, и атаки не ограничиваются кириллицей 9.0032 . Как поясняется в Википедии (www.snipca.com/24405), хакеры также использовали армянские, еврейские, китайские и греческие буквы для создания поддельных URL-адресов.
Но кириллица (используемая в Восточной Европе) является фаворитом мошенников, потому что она состоит из 11 строчных символов, которые идентичны или очень похожи на латинские буквы и цифры. Следовательно, есть больше возможностей обмануть пользователей.
Как и в случае с поддельными URL-адресами банков, о которых мы предупреждали в выпуске 502, самый надежный способ обезопасить себя — никогда не нажимать на ссылку в Интернете . Вместо этого добавьте свои любимые сайты в закладки или введите URL-адрес в строку браузера. Также скептически относитесь к рекламе, которая утверждает, что меняет работу популярных сайтов и сервисов. Обычно это мошенники.
Новые инструментыЕсли вы думаете иначе, «windows01» — паршивый пароль. Мы убедились в этом на новом сайте, который использует искусственный интеллект для анализа качества паролей. Если ему не нравится ваше предложение, он объясняет, почему. Большинство других измерителей паролей просто дают вам большой палец вниз, но не дают подробностей.
Итак, когда мы ввели windows01 в поле для пароля, сайт дал нам три причины, почему это ревун: оно содержит слово прямо из словаря, в нем нет цифр посередине, и оно состоит всего из 9 символов. Рядом с каждым предупреждением есть ссылка «почему?» — нажмите на нее, чтобы получить более полное объяснение.
Сайт, созданный исследователями из Университета Карнеги-Меллона в Питтсбурге и Чикагского университета, использовал нейронную сеть для «считывания» паролей, созданных 4500 человек. Вскоре компания узнала, что делает пароль плохим, и предложила более безопасные альтернативы. В нашем случае это было «wi01n7d7wS», что может быть трудно запомнить, но хакерам также трудно угадать.
AI Измеритель пароля www.snipca.com/24374
SCAMWATCH