Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Введенный код в prompt() (https://javascript.ru/forum/misc/24932-vvedennyjj-kod-v-prompt.html)

falsenull 19.01.2012 14:54

Введенный код в prompt()
 
Так было задумано создателями языка?

var ent = prompt("Введите код", "");
document.write(ent);


выполненный код вызовет окно prompt и запишет полученные данные на страницу. Но JS не только запишет полученные данные, но и выполнит код введенный в prompt, например примитивный <script language="JavaScript">alert("lol");</script>. Так и должно быть?

Skipp 19.01.2012 15:36

Естественно.

B@rmaley.e><e 19.01.2012 15:49

А что, в этом, например, случае такого произойти не должно?
document.write('<script>alert("lol");</script>');

falsenull 19.01.2012 21:54

Но ведь код может быть и не таким безобидным?

devote 19.01.2012 21:59

Цитата:

Сообщение от falsenull
Но ведь код может быть и не таким безобидным?

ну дык замените в нем спецсимволы:
<script>
var ent = prompt("Введите код", '');
document.write(ent.replace(/</g, '&lt;').replace(/>/g, '&gt;'));
</script>

Magneto 19.01.2012 22:15

Цитата:

Сообщение от falsenull
Но ведь код может быть и не таким безобидным?

Ты боишся что пользователь сам на себя произведет XSS атаку? Стырит свои же куки и зайдет на твой сайт под своим же именем.

devote 19.01.2012 22:29

Цитата:

Сообщение от Magneto (Сообщение 151528)
Ты боишся что пользователь сам на себя произведет XSS атаку? Стырит свои же куки и зайдет на твой сайт под своим же именем.

:D

B@rmaley.e><e 19.01.2012 23:18

Цитата:

Сообщение от falsenull
Но ведь код может быть и не таким безобидным?

Какой код? А сама возможность вызвать document.write безобидна?

Джэксон 21.05.2012 16:47

Да. Он изменит страницу для себя. Для других пользователей она останется прежней.


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