В большинстве стран на выборах используются готовые бюллетени с фиксированным списком вариантов, а избиратель может лишь поставить галочку или другую отметку в поле напротив нужного варианта. Шведские же законы о выборах позволяют избирателям вписывать в бюллетень свои кандидатуры от руки. Все записи, внесенные избирателями в бюллетени, подлежат учету и затем публикуются в открытых источниках.
В этих источниках блоггер Йонас Эльфстрём обнаружил, что некий технически подкованный избиратель внес в бюллетень специальный запрос на языке управления базами данных SQL.
Видимо, ему или ей в голову пришла мысль о потенциальной уязвимости системы учета голосов к так называемой "SQL-инъекции". В результате в базу данных попала запись, которая в случае попадания в интерпретатор SQL-команд, вызвала полное уничтожение таблицы под названием VALJ ("голосование").
Кроме SQL-атак на последних шведских выборах встретилась и еще одна хакерская атака, правда, столь же безуспешная. На этот раз злоумышленник или шутник вставил вместо своего варианта текст, который мог бы вызвать внешний сценарий на языке JavaScript и нарушить нормальную работу сайта.
К счастью, все результаты голосований заносятся в базу и отображаются на веб-сайте как неформатированный текст, а не в формате HTML, поэтому попытки вставить свой сценарий не сработала.
Кроме того, наблюдатели обнаружили целый ряд ссылок на различные интернет-магазины и другие веб-сайты.
В целом, использование современных технологий в сочетании со столь демократичными избирательными законами потенциально может привести к самым неожиданным казусам.
Интересно, замечает издание, что атака на базы данных с использованием такого рода фрагментов кода на языке SQL в шутливой форме описана в одном из комиксов из серии XKCD, где один из персонажей назвал своего ребенка именем "); DROP TABLE Students; --".
При малейшей небрежности разработчиков системы такое имя привело бы к удалению таблицы Students во всех системах, где встречалось бы подобное имя.