antimalware/manul

View on GitHub
src/log_analyzer/analyzer.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html>
  <head>

    <meta charset="utf-8"/>
    <title>
      Анализатор логов
    </title>

    <script src="js/xml2json.js"></script>
    <script src="js/zip.js"></script>

    <script src="https://x2js.googlecode.com/hg/xml2json.js"></script>
    <script src="https://yastatic.net/jquery/1.8.3/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-dateFormat/1.0/jquery.dateFormat.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.5/ZeroClipboard.min.js"></script>
    <script src="js/HashTable.js"></script>    
    <script src="https://cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>   

    <script src="js/jquery.i18n.min.js"></script>        
    <script src="js/localization.js"></script>        
    <script src="js/spin.js"></script>        
  
  <link rel="stylesheet" href="css/general.css"/> 
  <link rel="stylesheet" href="css/jquery.dataTables.css"/> 
  <link rel="stylesheet" href="css/analyzer.table.css"/> 
  
  <meta name="description" content=""/>

  <script language="javascript">
   function manulErrorHandler (msg, url, line, col, error) {
      var extra = !col ? '' : '\ncolumn: ' + col;
      extra += !error ? '' : '\nerror: ' + error;

      alert("Error: " + msg + "\nline: " + line + extra);

       window.location.reload();
       return true;
   };

   window.onerror = manulErrorHandler;
</script>
  </head>
  <body class="page" onload="checkFileAPI();">  
      <div id="modal" class="modal_pane">
      </div>
      <script>
         modalWindow = document.getElementById('modal');
         spinner = new Spinner(opts).spin(modalWindow);
      </script>

      <div id="uploadScreen">              
        <div class="body">

<div class="head">
 <h1 class="header header_type_main">Manul</h1>
 <div class="head__menu">
<a class="head__menu-item head__menu-item_active_yes" >Анализ</a>
 </div>
</div>
           <div class="upload__screen__block">
            <h2 class="header">Загрузите лог для анализа</h2>
            <p class="sub-header sub-header_align_left">Лог создается при сканировании сайта инструментом и содержит информацию об окружении сайта (данные о веб-сервере, интерпретаторе, системах контроля версий) а также файлах. Загружать лог можно как в виде архива, так и в виде распакованного xml.</p>

            
            <span class="button button_theme_action i-bem button_js_inited button_hovered" style="margin-top: 40px;">
                <input accept="application/zip, text/xml"  class="upload__screen__button" type="file" name="report" onchange=" showProgress(true); readText(this);">
                <label class="load_file_button">Загрузить файл</label>
            </span>            

        </div>
        <div class="body__spacer"></div>
        <div class="footer">

            <div class="language_pane">
                <a class="lang_switcher lang_switcher_active" language="ru" href="#"><img src="img/ru.png" border=0></a>
                <a class="lang_switcher" language="en" href="#"><img src="img/uk.png" border=0></a>
                <a class="lang_switcher" language="ua"  href="#"><img src="img/ua.png" border=0></a>
                <a class="lang_switcher" language="tr" href="#"><img src="img/tr.png" border=0></a>
            </div>

            <a class="b-link footer__item contact" href="#">Обратная связь</a>
            <a class="b-link footer__item help" href="#">Помощь</a>
            <div class="footer__item footer__item_type_copyright">©&nbsp;2001&mdash;2015</div>
        </div>
    </div>
    
      </div>
           
    <div id="tableScreen">    
        <div class="body body_full_height">
            <div class="header_div">
                <div class="header_left_block">
                    <h1 class="header header_type_main">
                        Manul: Анализатор логов
                    </h1>
                    <p class="head__description">
                        Анализатор логов Manul. Для эффективного поиска вредоносных файлов следует добавить белые списки или полученные ранее логи. В качестве фильтров можно задать маску имени файлов и дату создания.
                    </p>
                </div>
                <div class="header_right_block">
                    <div class="filter_list">
                         <h4 style="margin-bottom: 0px;">Подключенные файлы-фильтры:</h4>
                         <table id="filter_file_list" style="text-align: left; float: right; border-spacing: 10px; overflow: hidden;">
                             <thead>
                                 <th>Фильтр</th><th>Записей</th><th>Отфильтровано</th><th></th>
                             </thead>
                         </table>
                    </div>
                    
                    <div class="filter_toolbar filter i-bem" data-bem="{&quot;filter&quot;:&quot;true&quot;}">
                        <button class="filter__flag">
                          <span class="filter__text-flag">
                            Флаг
                          </span>
                          <span class="filter__arrow">
                          </span>
                        </button><div class="popup popup_name_flag popup_visibility_hidden i-bem" data-bem="{&quot;popup&quot;:{}}">
                          <div class="popup__content">
                            <ul class="list i-bem" data-bem="{&quot;list&quot;:&quot;true&quot;}">
                              <li class="list__line list__line_checked_yes" val="1" num="1">
                                <span class="list__check">
                                </span>
                                <span class="list__indicate list__indicate_color_green">
                                </span>
                                <span class="list__text flag_notfound">
                                  Не найдено
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="2" num="2">
                                <span class="list__check">
                                </span>
                                <span class="list__indicate list__indicate_color_yellow">
                                </span>
                                <span class="list__text flag_suspicious">
                                  Подозрительный
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="3" num="3">
                                <span class="list__check">
                                </span>
                                <span class="list__indicate list__indicate_color_red">
                                </span>
                                <span class="list__text flag_malicious">
                                  Вредоносный
                                </span>
                              </li>
                            </ul>
                          </div>
                        </div><button class="filter__columns"><span class="filter__text-columns visible_fields_menu" id="fieldListButton">Поля таблицы</span><span class="filter__arrow"></span></button><div class="popup popup_name_columns popup_visibility_hidden i-bem" data-bem="{&quot;popup&quot;:{}}">
                          <div class="popup__content">
                            <ul class="list i-bem" data-bem="{&quot;list&quot;:&quot;true&quot;}">
                              <li class="list__line list__line_checked_yes" val="0" num="0">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_flag">
                                  Флаг
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="1">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_path">
                                  Путь
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="2">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_size">
                                  Размер
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="3">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_ctime">
                                  Время создания
                                </span>
                              </li>
                              <li class="list__line list__line_checked_yes" val="4">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_mtime">
                                  Время модификации
                                </span>
                              </li>
                              <li class="list__line" val="5">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_owner">
                                  Владелец
                                </span>
                              </li>
                              <li class="list__line" val="6">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_group">
                                  Группа
                                </span>
                              </li>
                              <li class="list__line" val="7">
                                <span class="list__check">
                                </span>
                                <span class="list__text field_attributes">
                                  Атрибуты
                                </span>
                              </li>              
                            </ul>
                          </div>
                        </div><input class="filter__file-name filter_path" placeholder="Путь к файлу" id="filePathSearchFilter"/><button class="filter__timeslot"><input id='dateMin' type='hidden' /><input id='dateMax' type='hidden' />
                        <span class="filter__text-timeslot filter_timeperiod" id="fileTimeFilterSpan">Временной интервал</span><span class="filter__arrow"></span></button><div class="popup popup_name_timeslot popup_visibility_hidden i-bem" id="fileTimeFilterPopup" data-bem="{&quot;popup&quot;:{}}">
                        <div class="popup__content"><div class="m-datepicker m-datepicker_type_month m-datepicker_disable_change i-bem" data-bem="{&quot;m-datepicker&quot;:&quot;true&quot;}"></div></div><button id="button_drop_timespan_filter" class="button button_size_s i-bem button_js_inited">Сбросить</button>
                        </div><input accept="application/zip, text/xml" style="opacity:0;position: absolute;" type="file" name="report" onchange="turnOnTableScreen(); readText(this);"><button class="filter__filter-button filter__filter-button_theme_action filter_loadfilter">          
                          Фильтр из файла          
                        </button>
                        </input>
                    </div>
                </div>
      </div>

      <div class="body__content body__content_display_block">

       <table class="table" id="filesTable">
            <thead class="table__head">
                <th class="table__head-item table__head-item_type_flag"><span class="table__column-title" id="tableHeaderFlagSpan">Флаг</span>
                </th>
                <th class="table__head-item table__head-item_type_Filename"><span class="table__column-title table__column-title_sort_up" id="tableHeaderFileName">Имя файла</span>
                </th>
                <th class="table__head-item table__head-item_type_Size"><span class="table__column-title table__column-title_sort_down" id="tableHeaderFileSize">Размер</span>
                </th>
                <th class="table__head-item table__head-item_type_Created"><span class="table__column-title" id="tableHeaderFileCtime">Создан</span>
                </th>
                <th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileMtime">Изменен</span>
                </th>
                <th class="table__head-item table__head-item_type_Created"><span class="table__column-title" id="tableHeaderFileOwner">Владелец</span>
                </th>
                <th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileGroup">Группа</span>
                </th>
                <th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileAttributes">Атрибуты</span>
                </th>
                <th class="table__head-item table__head-item_type_button" id="tableHeaderFileAction">Действие</th>
                <th class="table__head-item table__head-item_type_Modified" id="tableHeaderFileHash">Хэш-сумма</th>
            </thead>

        <tbody class="table__body">

        </tbody>
      </table>

                    <div class="server_environment" style="margin-top: 20px; maring-bottom: 20px;">
                        <button class="button i-bem" data-bem="{&quot;button&quot;:{}}" role="button" id="showServerEnvTable" onclick="$('#server_environment_table').toggle();">
                             Информация о серверном окружении
                        </button>

                        <table id="server_environment_table">
                        <thead><th style="width: 160px;">Ключ</th><th>Значение</th></thead>
                        </table>
                    </div>


        <p class="paragraph">
          Созданное предписание можно запустить в выполняторе предписаний Manul
        </p>
        <form class="form">
          <h3 class="form__head">
            Предписание
          </h3>
          <div class="form__textarea-wrapper">
            <textarea class="form__textarea" id="recipeTextarea">
            </textarea>
          </div>
          <div class="form__buttonarea form__buttonarea_align_right">
            <button class="button button_theme_action i-bem" data-bem="{&quot;button&quot;:{}}" role="button" id="copyRecipeButton">
              Копировать
            </button>
          </div>
        </form>
      </div>
      <div class="footer">
<!--        <a class="b-link footer__item contact" href="#">Обратная связь</a> -->
        <a class="b-link footer__item help" href="https://help.yandex.ru">Помощь</a>
        <div class="footer__item footer__item_type_copyright">
          ©&nbsp;2015
        </div>
      </div>
    </div>

<script src="js/analyzer.tableBuilder.js" defer></script>            
<script src="js/fileParser.js" defer></script>        


  </div>
  </body>
</html>