В каких случаях HTTP_REFERER будет пустым

Поскольку текст, который вы экранируете, будет отображаться в атрибуте HTML, вы должны обязательно избегать не только HTML-объектов, но и атрибутов HTML:

var ESC_MAP = {
    '&': '&',
    '<': '<',
    '>': '>',
    '"': '"',
    "'": '''
};

function escapeHTML(s, forAttribute) {
    return s.replace(forAttribute ? /[&<>'"]/g : /[&<>]/g, function(c) {
        return ESC_MAP[c];
    });
}

Затем ваш код экранирования станет var user_id = escapeHTML(id, true).

Для получения дополнительной информации см. Foolproof HTML escaping в Javascript .

143
задан Patrick McElhaney 9 December 2016 в 21:21
поделиться