Система автоматизированного сбора и подсчета голосов на политических выборах

Этапы проектирования сайта. Реализация двухкомпонентной системы голосования - клиент и датацентр. Создание безопасной системы передачи данных с использованием языков разметки HTML, программирования PHP, скриптов JavaScript, базы данных MySQL и Web-службы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 12.12.2013
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Подобная организация доступа к датацентру уберет часть проблем. Но меня беспокоило то, что получив публичный ключ злоумышленник может сформировать данные для передачи в датацентр таким образом, чтобы обмануть систему и начислить несуществующие или дублирующие голоса.

Рисунок 2 - Схема работы по защищенному каналу

Отсюда и родилась идея использовать SOAP технологию и передавать данные с четким описанием структуры. При таком подходе необходимо сформировать запрос правильно писав все параметры и передать его в датацентр для сверки. Датацентр обработав данные сформирует ответ и передаст его клиенту. В моей реализации я решил использовать SOAP технологию входящий в комплект программирования на PHP Zend FrameWork.

Данный фреймворк может автоматически генерировать WSDL описание и передавать нужные данные не усложняя жизнь программисту. Для более безопасной передачи данных все имеющиеся данные должны быть подкреплены уникальным кодом сессии, который, передается от сервера к клиенту только в результате авторизации. Также чтобы исключить ошибки при авторизации проверяется множество параметров, которые позволяют выявить ошибки при запросе. В приложении А можно посмотреть запрос и удачный ответ на запрос.

Получив подобный ответ, клиент предоставит доступ в систему.

3.3 Клиент Web-службы

Клиентом разрабатываемой мной Web-службы может быть любое программное обеспечение способное формировать строку URL с параметрами и работать в двунаправленном режиме с INTERNET. К таким можно отнести приложение на любом из распространенных или скриптовых языков. К уже реализованным популярным системам можно отнести IC:Битрикс, SERP.

Разработанный мной клиент датацентра устанавливается на машине в помещении, которое предназначено для голосования. К данной машине производиться подключение, защищенного канала связи, для коммуникации в датацентром. В назначенный день комиссия и наблюдатели открывают пункт для голосования и председатель, используя личный пароль, входит в систему клиента. На этом этапе производиться двойная проверка введенных данных:

1) На стороне клиента:

- Синтаксис и разрешенные символы.

- Длина строк

2) На стороне датацентра:

- Синтаксис и длина строк.

- Проверка существования пользователя и пароля.

- Проверка на дублирующий вход в систему

Ниже на рисунке 3 изображено окно авторизации.

Рисунок 3 - Окно авторизации

Если на стороне клиента, введенные данные, удовлетворяют условиям ввода, то поля подсвечиваются зеленой тенью, если ошибка то красной.

После успешной авторизации формируется уникальный ключ соединения для данного члена комиссии и открывается окно с новостным блоком. Общий вид клиента датацентра можно увидеть на рисунке 4.

Рисунок 4 - Главное окно клиента датацентра

Меню на сайте имеет 5 кнопок:

- Новости. Это небольшой новостной блок с описание свежие политических новостей за неделю.

- Голосование. Это форма, через которую избиратель будет производить выбор.

- О проекте. Там кратко описана информация о том, что это за систему и для чего создана.

- Выход. Позволяет завершить текущую сессию члена комиссии.

- Настройки. Эта кнопка видна только в случае если тот кто авторизован имеет права администрирования. В пункте отражается отладочная информация по проекту.

На левой стороне экрана имеется небольшая информация о существующих кандидатах. Его можно увидеть на рисунке 5.

В меню голосования имеется форма для создания листа голосования.

Каждое из полей проходит проверку на правильность ввода, верные подсвечиваются зеленой тенью неправильные красной. Избиратель перед голосованием обязан продемонстрировать паспорт удостоверяющий личность избирателя члену комиссии и, только после этого, он будет допущен к голосованию. Избиратель вводит в форму голосования данные с паспорта, указывает телефон. Если у него нет телефона то любой из телефонов родных и близких, тех кто знает данного человека. Рисунок 6 показывает форму заполнения данных избирателем.

Рисунок 5 - Всплывающая информация о кандидате

В зале голосования должны дежурить технические специалисты, чтобы помогать тем кто плохо знаком с компьютером и кому трудно справиться с набором данных на клавиатуре.

Рисунок 6 - Форма заполнения данных избирателя

После нажатия кнопки «продолжить» открывается форма с выбором кандидата. При нажатии на окно с кандидатом выбор подсвечивается зеленым цветом. Также при нажатии производится проверка введенных данных на правильность и полноту заполнения. В случае, если данные введены не в полном объеме или неверно, то соответствующее поле подсвечивается красным в кнопка «проголосовать» будет недоступна. Как только все недочеты будут устранены, кнопка «проголосовать» станет активна. Увидеть окно голосования можно на рисунке 7.

Рисунок 7 - Выбор кандидата

После того как кнопка «проголосовать» будет нажата сформированные данные запроса будут отправлены в датацентр и там пройдут проверку на корректность данных. Основанием отказа в принятии голоса может служить:

- Дублированные данные. Для каждого нового избирателя формируется уникальный ключ избирателя из данных паспорта. Если такой ключ попробуют использовать еще раз, то датацентр не примет данные и вернет ошибку голосования. Данная проверка сделана, с целью исключить, возможность голосовать одному избирателю несколько раз.

- Данные, не имеющие уникального ключа соединения. Любые данные получаемые или передаваемые с датацентр должны предоставлять ключ соединения. Без ключа любые попытки получить данные, даже сформировав правильный запрос из защищенной сети, будет, отвергнут. Данная проверка необходима чтобы защитить передачу данных от мошенников.

- Если передача данных была произведена успешно, то формируется лист голосования , в котором отражены все введенные данные избирателя и его выбор кандидата. Лист голосования разделен линией среза на 2 части:

- Титульная часть. В этой части перечислены все данные избирателя и его выбор. Также на ней имеется код голоса и подписи. Она является документальным подтверждением голоса и после подписания будет брошена в урну для голосования.

- Отрывной талон. Отрывной талон от листа голосования подписывается избирателем и членом комиссии и несет в себе только информацию, о том за кого отдан голос и код голоса. Эта часть отрывается от листа голосования и после подписания передается избирателю.

На рисунке 8 представлен лист голосования.

Рисунок 8 - Лист голосования

После того как лист распечатают, избиратель видит маленькую памятку, о том где можно получить информацию о голосовании.

3.4 Сервер Web-службы

Сервер Web-службы представлен в моем проекте сайтом - датацентром. Он служит для коммутации данных, обработки запросов и выдаче сформулированных ответов в нужном формате. Так как по логике работы моего проекта датацентр имеет публикацию в INTERNET, то сайт представление должен быть размещен на безопасном хостинге, а модуль принимающий запросы должен быть размещен в защищенном канале связи, который объединяет все сети терминалов клиентов в одну общую сеть. На рисунке 9 показан принцип работы датацентра.

Рисунок 9. - Принцип работы датацентра

Интернет сайт датацентра доступен из сети INTERNET и авторизация по паролю га сайте не требуется. Зайдя на него можно увидеть титульную страничку с новостями. Слева я расположил небольшое окно для отзывов тех, кто зашел на сайт, сто видно на рисунке 10. В отзывах также проводиться проверка на синтаксис и правильность введенных данных. Неправильно введенные имя или адрес электронной почты будут подсвечены красной тенью, верно заполненные поля зеленой.

Рисунок 10 - Новости датацентра

Меню имеет 3 пункта:

- Новости: Там размещены свежие политические новости.

- Информация: В этом разделе имеется актуальная информация о ходе выборов с круговой диаграммой, демонстрирующей текущее соотношение голосов.

- О проекте: Небольшая информация по поводу проекта.

Раздел «Информация» является главной страницей проекта, поскольку именно на нем показывается соотношение голосов за каждого кандидата в виде круговой диаграммы на рисунке 11. Также в нижней части сайта можно найти форму, которая позволяет используя код с отрывного талона, проверить за кого и когда зачтен голос избирателя. Именно ради этой механики и придумывался весь проект. Он реализует принцип прозрачный выборов. Его можно увидеть на рисунке 12.

Справа имеется кнопка «Выгрузить базу» которая позволит получить ссылку на всю имеющуюся базу инициативной группе. Датацентр по запросу создаст перечень данных, ссылка на которые будет находиться на сайте.

Рисунок 11 - Диаграмма голосования.

Рисунок 12 - Поиск по коду отрывного корешка листа голосования.

3.5 Вопросы безопасности Web-службы

Существует несколько способов обезопасить свою Web-службу от постороннего вмешательства.

Сертификат. Данный способ подходит для шифрования данных, передаваемые от клиента SOAP, к серверу SOAP. После установления соединения весь трафик, идущий от сервера к клиенту и обратно шифруется и становиться недоступен для просмотра.

Формирование уникального ключа при передаче SOAP сообщений. Ключ позволяет проверять соответствует ли сообщение отправителю.

Шифрование данных в сообщении. Для шифрования будут использованы стандартные либо индивидуальные средства криптографии.

Я в своем проекте реализовал поддержку уникального ключа соединения. При публикации сервера, будет необходимо приобрести ключ шифрования на мое доменное имя у одной из служб сертификации. К примеру http://ispsystem.com либо http://www.thawte.com/.

Заключение

Итак. После месяца работы над проектом я мог достичь следующих целей:

1) Реализация двух компонентной системы голосования -- клиент и датацентр;

2) Создание безопасной системы передачи данных используя Web-службу;

3) Знакомство и реализацию в своем проекте новых для меня технологий:

- SOAP Zend FrameWork;

- Jquery;

- Google API Chart;

В результате получилось красивое и безопасное приложение которое отвечает современным требованиям безопасности, наглядности и простоты использования.

К нереализованным деталям моего проекта следует отнести:

- Отсутствие шифрования XML данных.

- Сложность использования клиента людьми, которые не имели до этого опыта работы с компьютером.

Я считаю, что за технологиями ведущими к объединения разрозненной информации будущее и буду своим трудом реализовывать эту концепцию, которая без сомнения призвана упростить сложности при получении новой и актуальной информации.

Список использованных источников

1) Дэвис Е.М. Изучаем PHP и MySQL учебник / Дэвис Е.М., Фи-липс Дж.А. Издательство «Символ-Плюс», 2008 г., 448 с.

2) Дюбуа П. MySQL. Полное и исчерпывающее руководство по применению и администрированию баз данных MySQL, а также программированию приложений учебник 2-е изд. Издательский дом «Вильямс» 2004 г., 1056 с.

3) Джон Коггзолл PHP 5 Unleashed Полное руководство. Издательский дом «Вильямс» 2006 г., 749 стр.

4) Чак муссиано и Билл Кеннеди. HTML и XHTML подробное руководство.6 изд. Издательство «Символ плюс». Оригинал O`Reilly 2008 г., 746 стр.

5) Девид Фленаган. JavaScript Подробное руководство. 5 издание. Издательство «Символ плюс». Оригинал O`Reilly 2012 г. 986 стр.

6) Бер Бибо и Иегуда Кац. Jquery Подробное руководство по продвинутому JavaScript. Издательство «Символ плюс». Оригинал O`Reilly 2009 г. 371 стр.

Приложение А

Запрос и ответ SOAP

Запрос данных.

---

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope

xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://localhost/datacenter/rpc.php" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">

<env:Body>

<ns1:getAuth env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

<param0 xsi:type="xsd:string">iseed12</param0>

<param1 xsi:type="xsd:string">iseed12</param1>

</ns1:getAuth>

</env:Body>

</env:Envelope>

---

Ответ в случае удачной авторизации.

---

<?xml version="1.0" encoding="UTF-8"?>

<env:Envelope

xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://127.0.0.1/test/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">

<env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc">

<ns1:getAuthResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

<rpc:result>return</rpc:result>

<return xsi:type="ns2:Map">

<item>

<key xsi:type="xsd:string">ERROR</key>

<value xsi:type="xsd:boolean">false</value>

</item>

<item>

<key xsi:type="xsd:string">code</key>

<value xsi:type="xsd:string">P6y41C0sVr</value>

</item>

<item>

<key xsi:type="xsd:string">name</key>

<value xsi:type="xsd:string">Андрей</value>

</item>

<item>

<key xsi:type="xsd:string">lname</key>

<value xsi:type="xsd:string">Николаевич</value>

</item>

<item>

<key xsi:type="xsd:string">parent</key>

<value xsi:type="xsd:string">Боярчук</value>

</item>

<item>

<key xsi:type="xsd:string">level</key>

<value xsi:type="xsd:string">adm</value>

</item>

</return>

</ns1:getAuthResponse>

</env:Body>

</env:Envelope>

---

Приложение Б

Размещено на Allbest.ru


Подобные документы

  • Создание автоматизированной системы по сбору и анализу статистических данных сайта. Принципы сбора статистических данных. Исследование информационных потоков. Обзор современных СУБД и языков программирования. Логическая и физическая модель базы данных.

    дипломная работа [3,0 M], добавлен 08.07.2012

  • Создание индивидуального сайта с использованием языка гипертекстовой разметки HTML и языка скриптов JavaScript. Программные средства, используемые при выполнении работы. Основные средства для создания сайта. Разработка CSS-файла (таблица стилей).

    лабораторная работа [31,0 K], добавлен 28.10.2010

  • Отличительные особенности языков программирования PHP и CSS. Возможности компактного многопоточного сервера баз данных MySQL. Системный анализ предметной области, проектирование ее инфологической модели. Создание базы данных и web-страниц сайта магазина.

    курсовая работа [1,0 M], добавлен 15.01.2013

  • Классификация компьютерных сетей. Схема подключения к Интернету, каналы передачи и приема информации. Разработка сайта с использованием скриптового языка программирования PHP и базы данных MySQL (база данных о квартирах, предназначенных для продажи).

    контрольная работа [3,6 M], добавлен 09.05.2012

  • Назначение информационно-новостного сайта. Структура пользовательской и административной частей. Эмулятор Web–сервера Denwer 3. Типы данных, используемые в PHP. MySQL база данных. Каскадная таблица стилей CSS. Язык гипертекстовой разметки документов HTML.

    дипломная работа [2,0 M], добавлен 05.02.2013

  • Основные технологии веб-программирования. Методы отправки данных на сервер с помощью HTML-формы. PHP - Препроцессор Гипертекста. Сохранение данных в базе данных MySQL. Клиент-Сервер и технология CGI. Примеры использования PHP совместно с MySQL.

    лекция [2,9 M], добавлен 27.04.2009

  • Анализ предметной области "Ремонт часов", с использованием СУБД MySQL, языка HTML, технологии PHP и ADO и выбора скриптовых языков VBScript или JavaScript. Нормализация базы данных. Пошаговое описание нормализации базы данных (методом ER-диаграмм).

    курсовая работа [782,4 K], добавлен 18.06.2010

  • Порядок сбора данных с помощью программного обеспечения "ПРОЛОГ". Языки программирования VBA и HTML, их характерные особенности. Web-сервера Apache, принцип работы серверной системы. Реализация сбора данных и разработка сайта с показаниями приборов.

    дипломная работа [4,4 M], добавлен 24.09.2014

  • Нормализация предметной области "Сайт знакомств" и ее программная реализация с использованием СУБД MySQL, языка HTML, технологии PHP и ADO, скриптовых языков VBScript или JavaScript. Руководство программиста, тестирование, исходный текст приложения.

    реферат [29,0 K], добавлен 09.09.2010

  • Этапы создания сайта с использованием СУБД – MySQL. Подключение блоков, наполнение текстовым содержанием путём ручного ввода данных в базу данных mysql. Создание администраторского раздела (админки), наполнение содержимым через администраторский раздел.

    курсовая работа [4,5 M], добавлен 15.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.