Этот код уязвим для атак XSS?

Вопрос возник из этого:

Почему браузер изменяет идентификатор элемента HTML, который содержит &#Икс?

Учитывая следующую веб-страницу:


  
    
      // --------------------------------------------------------
      // could calling this method produce an XSS attack?
      // --------------------------------------------------------
      function decodeEntity(text){
        text = text.replace(//g,''); // strip out all HTML tags, to prevent possible XSS
        var div = document.createElement('div');
        div.innerHTML = text;
        return div.textContent?div.textContent:div.innerText;
      }
      function echoValue(){
        var e = document.getElementById(decodeEntity("/path/$whatever"));
        if(e) {
          alert(e.innerHTML);
        }
        else {
          alert("not found\n");
        }
      }
    
  
  
    <p id="/path/$whatever">The Value</p>
    Tell me
  

id&nbsp;из

&nbsp;Элемент содержит символы, которые были экранированы для предотвращения атак XSS. Часть HTML и часть JS генерируются сервером, и сервер вставляет одинаковое экранированное значение (которое может происходить из незащищенного источника) в обе части.

Сервер экранирует следующие диапазоны символов в&#x&nbsp;формат:

0x00 -&nbsp;0x2D0x3A -&nbsp;0x400x5B -&nbsp;0x5e0x600x7B -&nbsp;0xFF0x0100 -&nbsp;0xFFFF

Другими словами: единственные символы, которыене&nbsp;избежали:

0x2E -&nbsp;0x39 (,,)./01234567890x41 -&nbsp;0x5A (A&nbsp;-&nbsp;)Z0x5F ()_0x61 -&nbsp;0x7A (a&nbsp;-&nbsp;)z

Теперь я должен получить доступ к этому

&nbsp;через JavaScript. ФункцияechoValue()&nbsp;в указанном вопросе всегда не удалось, потому что браузер конвертирует$&nbsp;в$&nbsp;в части HTML, но оставляет его как$&nbsp;в части JS.

Так,Gareth&nbsp;придумалответ&nbsp;это просто и работает.

Меня беспокоит то, что возможность XSS-атаки, которая была устранена путем экранирования динамических строк, снова возникнет при использованииdecodeEntity()&nbsp;Функция предоставлена в ссылочном ответе.

Кто-нибудь может указать, могут ли быть проблемы безопасности (который?) или нет (почему бы и нет?)?