Создание сайта для ОАО усмань табак

Автор: Пользователь скрыл имя, 10 Января 2012 в 22:18, дипломная работа

Описание работы

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

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

Цель данной работы является создание Web-сайта для компании ОАО «Усмань-табак». Необходимостью создания сайта ОАО «Усмань-табак» является, прежде всего, реклама продукции и услуг, которые предлагает данное предприятие. Интерактивная реклама – новый способ предложить товары и услуги потребителю. Интернет же являет собой наиболее динамично развивающуюся среду вещания. За последние пять лет кол-во пользователей сети Internet в России выросло в десятки раз, и на сегодняшний момент достигло 571 миллионов человек.

Работа содержит 1 файл

Диплом усмань-табак.doc

— 1,008.00 Кб (Скачать)

} 

      При нажатии пользователем кнопки «Выход» (рис. 3.2), модуль получает от пользователя форму, с именем “action” и значением “exit”, производит завершение сеанса пользователя с очисткой cookies – процедура cookies_del и таблицы БД “Sessions” – процедура exit_session (см. листинг 3.8).

      Листинг 3.8.

######################################## 
# Удаляем Cookie 
sub cookie_del(){ 
    print
"Set-Cookie: $Session_id=; domain=$Domain_login; path=/;

                                expires=".expires_time(-1440)."\n" 
    }

######################################## 
# Завершаем сессию 
# exit_session($sid); 
sub exit_session($){ 
    my $id=esc_txt shift; 
    my $query=
"SELECT user,addr,ctime,atime FROM Sessions WHERE id='$id'"
    my $res=$::db->prepare($query); 
    $res->execute() or die
"Error $::DBI::err \"$::DBI::errstr\"."
    my($user,$addr,$ctime,$atime)=$res->fetchrow_array(); 
    $res->finish(); 
    if(defined($user)){ 
       $::db->do(
"DELETE FROM Sessions WHERE id='$id'")

       or die "Error $::DBI::err \"$::DBI::errstr\"."
       $::db->do(
"UPDATE User SET laddr='$addr', ltime=$atime,

                  stime=(stime+$atime-$ctime+10) WHERE user='$user'")

       or die "Error $::DBI::err \"$::DBI::errstr\"."
       } 
    } 
######################################## 

      Во  время каждого обращения пользователя к страницам сайта идет обновление сессии, под которым понимается установка штампа времени в колонках ‘atime’ и ‘etime’ таблицы ‘Session’ БД. Благодаря этому мы получаем возможность удалять все просроченные сессии всего одним SQL запросом (см. листинг 3.9).

      Листинг 3.9.

$::db->do("DELETE FROM Sessions WHERE UNIX_TIMESTAMP()>etime");

      Защита  от брутфорса (метод «грубой силы» от англ. brute force) позволяет избежать подбора пароля по словарю или методом перебора. Идея защиты заключается в том, что пользователю дается определенное число попыток на ввод пароля. При каждом неправильном вводе пароля, в таблицах ‘IPBlock’ и ‘UserBlock’ нашей БД, срабатывает счетчик. При превышении счетчика заданного уровня (для каждой таблице свой), модуль авторизации перестает проверять соответствие паролей, выводя сообщение о блокировки. При этом значение блокировки логина пользователя должно стоять как минимум в 2,5 раза выше, чем блокировка по IP, т.е. атакуемый логин блокируется только тогда, когда “атака” идет с нескольких IP-адресов (к примеру, через анонимные proxy-серверы). Реализуется все относительно просто, добавляем проверку на блокировку перед авторизацией и увеличиваем счетчики блокировок если авторизация не удалась (см. листинг 3.10).

      Листинг 3.10.

my $qBaddr="SELECT etime,count,blocked,reason FROM IPBlock WHERE addr='$ENV{REMOTE_ADDR}' AND UNIX_TIMESTAMP()<etime"
my $qBuser=
"SELECT etime,count,blocked,reason FROM UserBlock WHERE user='$user' AND UNIX_TIMESTAMP()<etime"
my $res=$::db->prepare($qBaddr); 
    $res->execute() or die
"Error $::DBI::err \"$::DBI::errstr\"."
my($addr_etime,$addr_count,$addr_blocked,$addr_reason)=$res->fetchrow_array();$res->finish();$res=$::db->prepare($qBuser); 
$res->execute() or die
"Error $::DBI::err \"$::DBI::errstr\"."
my($user_etime,$user_count,$user_blocked,$user_reason)= $res->fetchrow_array(); 
$res->finish(); 
if(defined($addr_etime) && ($addr_count==
0||$addr_count>=$IPBlock_count)){ 
       
# Не можем создать новую сессию, т.к. IP заблокирован 
        $addr_blocked=~s/\s+\[Bot\]$/<sup>\[Bot\]<\/sup>/; 
        if(wantarray){(
'',!$addr_count?"Ваш IP навсегда заблокировал <b>$addr_blocked</b> ($addr_reason).":"Ваш IP заблокировал <b>$addr_blocked</b>, до ". ftime("!d!.!MM!.'!yy! !c!:!mm!",$addr_etime)." ($addr_reason).")}  
}else{

   my $query="SELECT pass FROM User WHERE user='$user' AND        

                                       pass=MD5(MD5('$pass')+'$salt')"
   $res=$::db->prepare($query); 
   $res->execute() or die
"Error $::DBI::err \"$::DBI::errstr\"."
   my($user_pass)=$res->fetchrow_array(); 
   $res->finish(); 
   if(defined($user_pass)){... Здесь код из листинга 3.7 ...  
     my $val=
"Неправильный пароль."
     $val.=
"<br />Попытка взлома запротоколирована" if (defined($user_etime)

                                                    || defined($addr_etime)); 
     $user_count++;$addr_count++; 
     $query=
"REPLACE UserBlock VALUES ('$user',$user_count, UNIX_TIMESTAMP()+

            ($UserBlock_timeout*60), $Logined_Bot [Bot]','Подбора пароля')"
     $::db->do($query) or die
"Error $::DBI::err \"$::DBI::errstr\"."
     block_log($user,
'$Logined_Bot [Bot]','Попытка подбора пароля',

       $UserBlock_timeout) if $user_count>=$UserBlock_count; 
     $query=
"REPLACE IPBlock VALUES    ('$ENV{REMOTE_ADDR}',

         $addr_count,UNIX_TIMESTAMP()+($IPBlock_timeout*60),

         '$Logined_Bot [Bot]','Попытка подбора пароля.')"
     $::db->do($query) or die
"Error $::DBI::err \"$::DBI::errstr\"."
   }

} 

      Полный  листинг данного модуля можно  посмотреть в листинге 2 приложения.

3.3 Расширение основного  функционала сайта  за счет дополнительных  модулей расширения.

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

      В разработку уже мы уже включили два  модуля расширения:

    • search – модуль поиска по страницам сайта;
    • sitemap – модуль создающий карту сайта.
 

      Рассмотрим  возможность расширения функционала  на основе работы модуля создания дерева сайта (см. листинг 3.11).

      Листинг 3.11

# Модуль карты сайта 
package mod::search; 
# Формируем заголовок по умолчанию 
$::skinСоздание сайта для ОАО усмань табак=
'Карта сайта'
$::skin{MENU}=&::menu($::pages,
'/').$::cfg->{menu}->{separator}.'Карта сайта'
$::skin{CONTENT}=
"<ul><li><a href=\"/\" title=\"$::pages->{0}->{title}\" >"
                 $::pages->{
0}->{name}."</a>".&::main_menu($::pages->{0}->{'sub'}). 
                
"</li></ul>"
1; 

      Как видно из данного модуля все просто и легко. Для построения дерева сайта модуль использует процедуру main_menu(), представленной в листинге 3.5.

 

Глава 4. ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФЕКТИВНОСТИ ПРОЕКТА

4.1 Понятие экономической эффективности

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

      Существует  несколько видов эффективности, среди которых обычно выделяют:

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

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

4.2 Оценка затрат при реализации проекта

4.2.1 Определение затрат  на создание Web-сайта

      Затраты на создание любого программного продукта или Web-сайта складываются из расходов по оплате труда разработчика программы и расходов по оплате машинного времени при отладке программы:

      Зспп = Ззп + Змаш + Зобщ,  (4.1)

где  Зспп – затраты на создание программного продукта;

    Ззп – затраты на оплату труда разработчика программы;

    Змаш – затраты на оплату машинного времени;

    Зобщ – общие затраты.

4.2.2 Расходы на оплату труда разработчика

      Расходы на оплату труда разработчика сайта  определяются путем умножения трудоёмкости создания сайта на среднечасовую  оплату разработчика (с учётом коэффициента отчислений на социальные нужды):

      Ззп = t × Tчас (4.2)

где  t – трудоемкость создания сайта;

    Тчас – среднечасовая оплата труда разработчика.

4.2.3 Расчёт трудоёмкости  создания программного  продукта

      Трудоёмкость  разработки программного продукта можно  определить следующим образом:

      t = tоп + tконц + tдиз + tстр+ tпрог + tинф + tотл (4.3)

где  tоп – затраты труда на подготовку описания задачи;

    tконц – затраты труда на поиск концептуальных решений сайта;

    tдиз – затраты труда на разработку элементов дизайна сайта;

    tстр – затраты труда на разработку структуры сайта и каркаса сайта;

    tпрог – затраты труда на составление HTML-кода и Java-кода сайта;

    tинф – затраты труда на информационное наполнение сайта;

    tотл – затраты труда на отладку и тестирование сайта.

      Составляющие затрат, в свою очередь можно вычислить через условное число операторов Q по формуле:

Информация о работе Создание сайта для ОАО усмань табак