Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   innerHTML и безопасность (https://javascript.ru/forum/events/22501-innerhtml-i-bezopasnost.html)

sommer 23.10.2011 19:02

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 132427)
Таким образом, вредоносный код получит только текущий юзер.

Ну, да, - действительно....
100% верный ответ относительно JavaScript.
Остаются небольшие сомнения по поводу других скриптов, которые могут быть введены. php, например

dmitriymar 23.10.2011 19:08

Цитата:

Сообщение от B@rmaley.e><e
Сообщение от sommer
Теги <script> удалятся только после публикации.
Таким образом, вредоносный код получит только текущий юзер.

но он это сравнительно недавно сказал,до этого было:

Цитата:

Сообщение от sommer
А вот если сохранить сообщение с внедренным скриптом в базе и потом его отобразить с помощью innerHTML, то они вполне работают.

Цитата:

Сообщение от sommer
На серверную сторону валидация ASP.Net сама не пропустит любые тэги, ну а если все-таки каким-то чудом в базу сохранился код, то после обработки HtmlEncode любой код становится просто текстом...


B@rmaley.e><e 23.10.2011 21:30

Цитата:

Сообщение от sommer
php, например

Ну это тут вообще не при чём. Для исполнения php нужен интерпретатор php, которого в браузере нет.

Цитата:

Сообщение от dmitriymar
до этого было

В самом начале этого не было. Судя по первому посту, подразумевалось копирование содержимого какого-нибудь textarea в innerHTML, скажем, div'а. Без использования серверной стороны вообще.

dmitriymar 23.10.2011 21:34

Цитата:

Сообщение от B@rmaley.e><e
В самом начале этого не было. Судя по первому посту, подразумевалось копирование содержимого какого-нибудь textarea в innerHTML, скажем, div'а. Без использования серверной стороны вообще.

мы по разному поняли его)

Magneto 23.10.2011 21:37

Нет никакой опасности. Давно известно что валидацию данных нужно проводить на серверной стороне. То что делается силами javascript, на стороне клиента, предназначенно только для удобства пользователя.

sommer 24.10.2011 10:39

Бормалей меня правильно понял.
Вопрос был именно о клиентской стороне. С серверной стороной я разобрался.
Пожалуй, успокоюсь ответами. Спасибо.
Но для большей уверенности добавлю энкодинг приведенный мною выше.
( на всякий случай )


Часовой пояс GMT +3, время: 03:49.