Использование innerHTML НЕ РЕКОМЕНДУЕТСЯ. Вместо этого вы должны создать textNode. Таким образом, вы «привязываете» свой текст, и вы, по крайней мере, в этом случае не уязвимы для атаки XSS.
document.getElementById("myspan").innerHTML = "sometext"; //INSECURE!!
Правильный путь:
span = document.getElementById("myspan");
txt = document.createTextNode("your cool text");
span.appendChild(txt);
Дополнительные сведения об этой уязвимости: Скрипт кросс-сайта (XSS) - OWASP
Отредактировано ноябрь 4th 2017:
Изменена третья строка кода в соответствии с @mumush предложение: «использовать appendChild () вместо». Кстати, согласно @Jimbo Jonny Я думаю, что все должно рассматриваться как пользовательский ввод, применяя принцип безопасности по слоям. Таким образом, вы не встретите сюрпризов.