Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.11.2017, 12:30
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Немного отойду от темы, вот есть rettyPhoto Plugin - это JS галерея.
И вот пишут, мол она не безопасна.
https://packetstormsecurity.com/file...Scripting.html
Если сформировать url: /#!%22%3E%3Cimg%20src=1%20onerror=prompt%280%29;%3E//
мы на страницу можем вставить вредный код.
Нужно сделать вот такой фикс:
hashIndex = parseInt(hashIndex);
hashRel = hashRel.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/])/g,'\\$1');


А почему на свою страницу, которая тупо смотрит URL и показывает его в HTML я не могу вывести вредный код?
Ответить с цитированием
  #12 (permalink)  
Старый 01.11.2017, 12:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от dima85
Если сформировать url: /#!%22%3E%3Cimg%20src=1%20onerror=prompt%280%29;%3E//
Это на стороне клиента, то есть клиент ввел, клиент что-то получил. Вам это нужно? На здоровье, тренируйтесь. Пока вами введенное не будет на страницах других пользователей, это никому угрожать не будет.
Ответить с цитированием
  #13 (permalink)  
Старый 01.11.2017, 12:58
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от dima85
я не могу вывести вредный код?
var ex = 'alert(%27ALARM%27);';
  eval(decodeURI(ex));
Ответить с цитированием
  #14 (permalink)  
Старый 01.11.2017, 12:59
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Насколько я понял проблема rettyPhoto Plugin в том что они используют decodeURI

Если я у себя сделаю вот так, из плюсов будет правильно отображаться русские символы. Но из минусов я смогу добавлять вредный код.
window.onload = function() {
$("#test").html(decodeURI(window.location.search));
}


Вопрос, есть какой-то еще способ безопасно в читаемом виде выводить русские символы с url?

Последний раз редактировалось dima85, 01.11.2017 в 13:05.
Ответить с цитированием
  #15 (permalink)  
Старый 01.11.2017, 13:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от dima85
Вопрос, есть какой-то еще способ безопасно в читаемом виде выводить русские символы с url?
Других способов, кроме замены опасных символов на безопасные, нет.
Ответить с цитированием
  #16 (permalink)  
Старый 01.11.2017, 16:11
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Скрипты (<script>) при добавлении через innerHTML не срабатывают. А вот через jQuery сработает, так как там метод "html" не через innerHTML вставляет данные. Для безопасной вставки достаточно использовать метод "text" (или свойство textContent в нативном JS).

Последний раз редактировалось ruslan_mart, 01.11.2017 в 16:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
Преобразовать строку в HTML код (обратное htmlspecialchars из php) daslex Общие вопросы Javascript 71 23.08.2015 20:41
Парсинг HTML -> DOM в нормальных браузерах (таки проблема) FINoM Events/DOM/Window 9 19.01.2014 17:38
Типографика и HTML код Manjuriano (X)HTML/CSS 3 23.11.2011 12:22
Передача кода HTML Владимир Седов Общие вопросы Javascript 2 12.04.2011 16:48