|
1 | 1 | # 4.3 Межсайтовый скриптинг
|
2 | 2 |
|
3 |
| -Для совершенствования взаимодействия с пользоваталем современные сайты содержат все больше динамического контента, что означает, что мы должны предоставлять информацию динамически в зависимости от поведения каждого пользователя. К сожалению, существует такое явление как "межсайтовый скриптинг" (известный как "XSS"), осуществляющее постоянные атаки на динамические сайты, в то время как сайты со статическим содержимым этим атакам не подвержены. |
| 3 | +Для совершенствования взаимодействия с пользователем современные сайты содержат все больше динамического контента, что означает, что мы должны предоставлять информацию динамически в зависимости от поведения каждого пользователя. К сожалению, существует такое явление как "межсайтовый скриптинг" (известный как "XSS"), с помощью которого осуществляются постоянные атаки на динамические сайты, в то время как сайты со статическим содержимым этим атакам не подвержены. |
4 | 4 |
|
5 |
| -Злоумышленники посылают на сайты, подверженные межсайтовому скриптингу, скрипты на JavaScript, VBScript, ActiveX или Flash. Если скрипт удачно вторгся на сайт, пользовательская инормация может быть похищена, а сайт наполнен спамом. Злоумышленники могут также изменить настройки пользователя на те, которые захотят. |
| 5 | +Злоумышленники посылают на сайты, подверженные межсайтовому скриптингу, скрипты на JavaScript, VBScript, ActiveX или Flash. Если скрипт удачно вторгся на сайт, пользовательская информация может быть похищена, а сайт наполнен спамом. Злоумышленники могут также изменить настройки пользователя на те, которые захотят. |
6 | 6 |
|
7 | 7 | Если Вы хотите предотвратить этот тип атаки, Вам нужно комбинировать два следующих подхода:
|
8 | 8 |
|
|
27 | 27 |
|
28 | 28 | Рисунок 4.3 JavaScript после обработки escape-последовательностью
|
29 | 29 |
|
30 |
| -Функции пакета `html/template` помогут Вам заменить все теги HTML на их безопасные аналоги. Но что, если Вам нужно передать в браузер `<script>alert()</script>`? В этом случае нужно использовать пакет `text/template`. |
| 30 | +Функции пакета `html/template` помогут Вам заменить все теги HTML на их безопасные аналоги. Но что, если Вам нужно передать в браузер `<script>alert()</script>`? В этом случае нужно использовать пакет `text/template`: |
31 | 31 |
|
32 | 32 | import "text/template"
|
33 | 33 | ...
|
|
38 | 38 |
|
39 | 39 | Привет, <script>alert('Вы попались!')</script>!
|
40 | 40 |
|
41 |
| -Или можно использовать тип `template.HTML` : |
42 |
| -Содержимое переменной типа `template.HTML` не изменяется с учетом escape-последовательностей. |
| 41 | +Или можно использовать тип `template.HTML`. Содержимое переменной типа `template.HTML` не изменяется с учетом escape-последовательностей: |
43 | 42 |
|
44 | 43 | import "html/template"
|
45 | 44 | ...
|
|
0 commit comments