Я экспериментировал с innerHTML, чтобы попытаться выяснить, где мне нужно усилить безопасность на webapp, над которым я работаю, и я наткнулся на интересный метод инъекций на mozilla docs, о котором я не думал.
var name = "<img src=x onerror=alert(1)>";
element.innerHTML = name; // Instantly runs code.
Это заставило меня задуматься.) Если я вообще буду использовать innerHTML и b.), если это не проблема, почему я избегаю других методов вставки кода, в частности eval.
Предположим, что я запускаю javascript clientside в браузере, и я принимаю необходимые меры предосторожности, чтобы не подвергать любую конфиденциальную информацию легкодоступным функциям, и я попал в какой-то произвольно определенный пункт, где я решил innerHTML не является угрозой безопасности, и я оптимизировал свой код до такой степени, что меня не обязательно беспокоит очень незначительный удар производительности...
Я создаю какие-либо дополнительные проблемы, используя eval? Существуют ли другие проблемы безопасности, кроме чистой инъекции кода?
Или, наоборот, есть innerHTML то, с чем я должен проявлять ту же самую осторожность? Это так же опасно?