Лекция: WWW-страницу и вздрагиваем от несущегося из колонок раздражающего звука. Нами овладевает естественное
Желание немедленно уйти с этой страницы, но тут-то и выясняется, что
Звук никуда не делся и будет продолжаться до тех пор, пока мы не выйдем из браузера. А на дворе 2 часа ночи, в
Соседнем окне скачивается третий мегабайт 10-мегабайтного архива, сервер не поддерживает докачки и т. п. И
Вся проблема — в том, что автор апплета случайно или по злому умыслу пропустил код, выключающий звук при
Остановке апплета.
Мощное средство борьбы с пользователем — потоки. Они вовсе не обязаны остановиться при уходе со
Страницы, с которой был загружен апплет. В сочетании с установкой приоритета MAX_PRIORITY и обра-
Ботчика исключительной ситуации ThreadDeath можно получить весьма живучего вредителя, который, к
Примеру, начнет следить за всеми запускаемыми апплетами и останавливать их потоки.
Еще один вариант сценария отказа в обслуживании (Denial of Service -DoS): открываем поток с большим
приоритетом и начинаем искать в нем простые числа в диапазоне от 1 до 10'шш, не забывая насвистывать люби-
Мую мелодию, либо запускаем бесконечный цикл и создаем в нем окна размером, например, миллион на
миллион пикселей (клавиатура и мышь у клиента будут заблокированы очень скоро):
While(true)
{
Try
{
littleWindow = new bigFrame(«Hello! „),
LittleWindow. resize( 1000000, 1000000); _