Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как добавить Юникод строку в HTML через JavaScript? (https://javascript.ru/forum/misc/54392-kak-dobavit-yunikod-stroku-v-html-cherez-javascript.html)

Armen 15.03.2015 21:47

Цитата:

Сообщение от рони (Сообщение 361389)
Armen,
ок подождём гуру, который и вам поможет и я смогу узнать в чём была ваша проблема.

Ладно, пока ждем я объясню.
С сервера приходит строка, чтобы обезопасить сайт от xss(ведь кто знает, что мне сервер может прислать, это может быть и javascript), который если я вставлю в свой элемент, он же атрибут, то будет ой как не хорошо.
Вот я и хочу закодировать символы, которые будут приходить с сервера и при этом отображаться корректно в атрибутах.
Кстати, как вариант - можно использовать hex, то есть:
var hex = '&'.charCodeAt().toString(16); // 26
div.setAttribute('title', "\x" + hex); // error
div.setAttribute('title', "\x26"); // СУПЕР

Как видите, я не могу писать так "\x" + hex сразу ошибка.

Armen 15.03.2015 22:20

А вот и решение, может кому-то пригодится
var hex = '&'.charCodeAt().toString();
div.setAttribute('title', String.fromCharCode(hex));

bes 15.03.2015 22:25

Цитата:

Сообщение от Armen
Да какая разница зачем? Вот нужно так, если не знаете, как помочь, то зачем такие вопросы задавать?

потому что ты наверное плохо объясняешь, неужели не понятно?

Цитата:

Сообщение от Armen
А вот и решение, может кому-то пригодится
var hex = '&'.charCodeAt().toString();
div.setAttribute('title', String.fromCharCode(hex));

приведи пример, как ты можешь пострадать в указанном тобою случае, чтобы делать то, что ты предлагаешь

Armen 15.03.2015 22:36

Цитата:

Сообщение от bes (Сообщение 361392)
потому что ты наверное плохо объясняешь, неужели не понятно?


приведи пример, как ты можешь пострадать в указанном тобою случае, чтобы делать то, что ты предлагаешь

придет с сервера вот такая штука <script>alert("xss")</script>

bes 15.03.2015 23:53

Цитата:

Сообщение от Armen
придет с сервера вот такая штука <script>alert("xss")</script>

пришёл, ты вставил это в атрибут или даже в innerHTML, скрипт исполнился?

laimas 16.03.2015 03:05

придет с сервера вот такая штука <script>alert("xss")</script>

Без вашего ведома такое вообще-то с сервера никак не может прийти, если же приходит значит вы не контролируете ситуацию на нем.
Другой случай, это уже атаки типа "человек по середине", но превращать нужно не символы в unicod, а "опасные" символы в html-сущности <, >, &.


Часовой пояс GMT +3, время: 23:33.