ZAP Scanning Report_HRIS
| Risk Level | Number of Alerts |
|---|---|
|
High
|
1
|
|
Medium
|
3
|
|
Low
|
0
|
|
Informational
|
2
|
| Name | Risk Level | Number of Instances |
|---|---|---|
| Anti-CSRF Tokens Check | High | 1 |
| CORS Misconfiguration | Medium | 1 |
| Corsair - CORS Misconfigured | Medium | 1 |
| Hidden File Found | Medium | 1 |
| Cookie Slack Detector | Informational | 1 |
| User Agent Fuzzer | Informational | 1 |
| HTTP Response Code | Number of Responses |
|---|
| Parameter Name | Type | Flags | Times Used | # Values |
|---|
| HTTP Response Code | Number of Responses |
|---|
| Parameter Name | Type | Flags | Times Used | # Values |
|---|
|
High |
Anti-CSRF Tokens Check |
|---|---|
| Description |
A cross-site request forgery is an attack that involves forcing a victim to send an HTTP request to a target destination without their knowledge or intent in order to perform an action as the victim. The underlying cause is application functionality using predictable URL/form actions in a repeatable way. The nature of the attack is that CSRF exploits the trust that a web site has for a user. By contrast, cross-site scripting (XSS) exploits the trust that a user has for a web site. Like XSS, CSRF attacks are not necessarily cross-site, but they can be. Cross-site request forgery is also known as CSRF, XSRF, one-click attack, session riding, confused deputy, and sea surf.
CSRF attacks are effective in a number of situations, including:
* The victim has an active session on the target site.
* The victim is authenticated via HTTP auth on the target site.
* The victim is on the same local network as the target site.
CSRF has primarily been used to perform an action against a target site using the victim's privileges, but recent techniques have been discovered to disclose information by gaining access to the response. The risk of information disclosure is dramatically increased when the target site is vulnerable to XSS, because XSS can be used as a platform for CSRF, allowing the attack to operate within the bounds of the same-origin policy.
|
| URL | http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > |
| Request Header - size: 646 bytes. |
GET http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,284 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:02:42 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Allow-Methods: POST, GET, DELETE, PUT Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding X-XSS-Protection: 1; mode=block x-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Type: text/html; charset=utf-8 |
| Response Body - size: 43,407 bytes. |
<!DOCTYPE html>
<html> <head> <title>ESS</title> <link REL="SHORTCUT ICON" HREF="img/tab_title.ico"> <!-- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Lee Systems Technology Ventures"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-1.10.2.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-ui-1.10.4.custom.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/approval_js.js?v=20220221112125'></script><script type='text/javascript' src='../javascript/requisition_js.js?v=20220610092957'></script><script type='text/javascript' src='../lib/jquery/jquery.autonumeric.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/sha1.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/greaterdate_function.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.tablesorter.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/custom_modal.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.blockUI.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.equalHeight.js?v=20220209161344'></script><script type='text/javascript' src='../lib/alertify/alertify.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/jquery.tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/fullcalendar.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/db_field_length_checker/db_field_length_checker.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/db_field_length_checker/dbflc.css?v=20220209161344' /><script type='text/javascript' src='../javascript/jquery-ajax-progress-master/js/jquery.ajax-progress.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.inputmask.bundle.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/moment_js/moment.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/regex.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/lst_freeze_table/lst_freeze_table.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/jquery/1.8.9/css/green_style/jquery-ui-1.8.21.custom.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/table.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/layout_body_lst.css?v=20220222152840' /><link rel='stylesheet' type='text/css' href='../css/layout_header_lst.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/modified_layout.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/pager.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/alertify.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/themes/bootstrap.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/global_style.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/fullcalendar/fullcalendar.css?v=20220209161344' /><script type='text/javascript' src='../javascript/searchmodal/searchable.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/searchmodal/searchable.css?v=20220209161344' /><script type='text/javascript' src='../lib/customupload/customupload.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/DataTables/datatables.css?v=20220209161344' /><script type='text/javascript' src='../lib/DataTables/datatables.js?v=20220209161344'></script><script type='text/javascript' src='../lib/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/datetime-moment.js?v=20220209161344'></script><script type='text/javascript' src='../lib/js/hideshow.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../css/main.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/font-awesome-4.6.2/css/font-awesome.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/easytree/skin-lion/ui.easytree.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../javascript/lst_freeze_table/lst_freeze_table.css?v=20220209161344' /> <style type="text/css"> .button1, ::-webkit-scrollbar, ::-webkit-scrollbar-thumb, header#header, .gp, .ui-widget-header, .fc-day-header, .ui-widget-header, #msg-container tr:hover, .dash_btn_container figure .img_con, .dash_btn_container figure .img_con_2, .panel-header, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ .div_border_front2 table:nth-child(2) input[type="button"]{ background: #627d4d !important; } #msgboard_table td:first-child:hover{ border-left: 3px solid #627d4d; } .button1, .div_border_front2 table:nth-child(2) input[type="button"], .head_title, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ ._program li, #vc_history_link{ color: #fff; } .head_title, .apptitle { text-transform: uppercase; } #forgot, .searchable_container .fa.fa-search, #msgboard_table td:first-child, ::selection{ color: ; } .fc-day-header, .ui-widget-header, #msg-container tr:hover td, #msg-container tr:hover td * { color:white !important;; } </style><input type="hidden" value="" id="server_err_list_user_session_err"> <input type="hidden" value="" id="server_err_list_sql_err"> <input type="hidden" value="04-23-2019" id="pwd_date_expired"> <script type="text/javascript"> var lstv_errorHandlerValidated=0; jQuery(document).ready(function() { if(jQuery('#server_err_list_user_session_err').val()!="") { userSessionErrHandler(jQuery('#server_err_list_user_session_err').val()); } else if( jQuery('#server_err_list_sql_err').val()!="") { sqlErrHandler(jQuery('#server_err_list_sql_err').val()); } }) function getclientdir() { var xparams = jQuery('#myform *').serialize(); xparams += "&txt_action=getclientdir"; return jQuery.ajax({ dataType: 'json', type: 'post', data: xparams, url: '../login_validate_redirect.php' }); } function userSessionErrHandler(errorcode) { if(lstv_errorHandlerValidated==0) { if(errorcode=="0a46453dc2fb96ac3fe194c788a331d7b7d149c3") //initial login { alertify.alert('Initial Login. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="c8c6cbbef8b1cf3dea3ce00a2dddf1c837f34750") //password has been reset { alertify.alert('Your password has been reset. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="cd5ce33cf637740d1feeeced5d5bd30830e545e1") //password near to expired { alertify.alert('Your password will expire on '+jQuery('#pwd_date_expired').val()); } else if(errorcode=="3fa02d249aa151013b03059d2e2490cb9536844c") //password expired { alertify.alert('Password has already expired.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="e9367cf5c4f4a928b943c0335365afe3411fd753") //session_expired { alertify.alert('The system has been idle for too long, you need to Login again.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="228c66c5495e196abf5e45e6d8c58182b6f0ac80") //someone logged in { alertify.alert('Someone login in this account.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="76cb0c0d6ca6541d727e90fd9fb9b93f2b552c10") //must login { alertify.alert('You must login first.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } } lstv_errorHandlerValidated=1; } function sqlErrHandler(responseText) { alertify.alert(responseText); } $( window ).ajaxError(function( event, jqxhr, settings, thrownError ) { jQuery.unblockUI(); console.log(thrownError); if(jqxhr.responseText!=undefined) { var json_parse = JSON.parse(jqxhr.responseText); if(json_parse.user_session_err!=undefined) { userSessionErrHandler(json_parse.user_session_err); } else if(json_parse.sql_err!=undefined) { sqlErrHandler(json_parse.sql_err); } else { alertify.alert(jqxhr.responseText); } } }) function validatePageDataReq(page) { alertify.alert('Required data for this page are missing. Please try again.',function() { window.location=page; }) } </script> <style type="text/css"> .tbl_user p { margin: 0; } a.link { color : blue; } /* -------- 03/19 --------- */ * { letter-spacing: 0.04em; } input[type=file] { width: 0px; height: 0px; opacity: 0; } .cstmupldimg { width: 100%; height: 37px; max-width: 200px; background: #627d4d; display: flex; justify-content: flex-start; align-items: center; cursor: pointer; } .cstmupldimg i.fa { color: #fff; padding: 0 15px; } .cstmupldimg span { color: #fff; padding: 0 15px 0 0; display: block; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .datepicker_holiday_day a { background-color: #42B373 !important; background-image :none !important; color: #ffffff !important; } .datepicker_restday_day a { background-color: brown !important; background-image :none !important; color: #ffffff !important; } .flex.hgroup_cont { /*margin-top: 5px;*/ padding-left: 20px; padding-right: 20px; justify-content: space-between; } .head_title_logo_container { display: flex; align-content: center; align-items: flex-start; } </style> <script> //20180820 gian karlo - blockui global settings $.blockUI.defaults.ignoreIfBlocked=true; $.blockUI.defaults.focusInput=true; $.blockUI.defaults.focusableElements=""; $.blockUI.defaults.fadeIn=200; //20190926 gian karlo - jquery dialog default global option $.extend($.ui.dialog.prototype.options, { modal: true, resizable: false, draggable: false }); //20190226 gian karlo - jquery and blockui fix to disable jquery buttonpane buttons during block $.blockUI.defaults.onBlock=function(obj) { if(jQuery(':focus').hasClass('ui-button')) { var _jQueryUiButton = jQuery('.ui-button:focus'); _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button') .addClass('disabledByBlockUi') .prop('disabled',true); } }; $.blockUI.defaults.onUnblock=function() { if(jQuery('.disabledByBlockUi').length>0) { var _jQueryUiButton = jQuery('.disabledByBlockUi'); _jQueryUiButton.removeClass('disabledByBlockUi') .prop('disabled',false) _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button').prop('disabled'); } }; //20180420 gian karlo - alertify global settings alertify.defaults.maintainFocus = false; alertify.defaults.closable = false; alertify.defaults.modal = true; alertify.defaults.maximizable = false; alertify.defaults.resizable = false; alertify.defaults.closableByDimmer = false; alertify.defaults.glossary.title = "Employee Self Service"; //20180420 - gian karlo - dialog + alertify fix jQuery.ui.dialog.prototype._focusTabbable = function(){}; //20180420 - gian karlo - datepicker defaults jQuery.datepicker.setDefaults({ changeYear: true, changeMonth : true, dateFormat:'mm-dd-yy', yearRange: "-100:+1" }); var xplaceholder = 'mm-dd-yyyy'; function disable_autocomplete() { jQuery("textarea:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","new-password"); }); jQuery("input:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","off"); }); } //20180430 gian karlo - apply all input with datepicker classes on every ajax Sucess event jQuery( document ).ajaxComplete(function() { jQuery('.datepicker').datepicker(); apply_custom_fileinput(); disable_autocomplete(); }); //20190520 randle - for dynamically added input file jQuery(document).on("click",".cstmupldimg.dynamic",function(e) { var xfilename_container = jQuery(this).find('.xfilename'); var choosefile_str = jQuery(this).data('input_label')!=undefined ? jQuery(this).data('input_label'):'Choose File'; xfilename_container.html(choosefile_str); $(this).change(function(e){ if(e.target.files[0]!=undefined) { var fileName = e.target.files[0].name; // $(this).siblings('.cstmupldimg').find('.xfilename').html(fileName); $(this).find('.xfilename').html(fileName); jQuery(this).attr('title',fileName); } else { $(this).val(null); xfilename_container.html(choosefile_str); jQuery(this).attr('title',''); } }) if(e.originalEvent!=undefined) //20190404 gian karlo , determine that .cstmupldimg is click by the user and not programmatically { jQuery(this).find('.cstmupldfile').click(); } }); jQuery(document).ready(function() { //20180420 - gian karlo - datepicker default placeholder var pickerFn = jQuery.fn.datepicker; jQuery.fn.datepicker = function () { var datePicker = pickerFn.apply(this, arguments); var self = this; self.attr('placeholder', xplaceholder); // updateCalendarClearButton // console.log(jQuery('.hasDatepicker:not(.hasCalendarClearButton)').length); jQuery('.hasDatepicker:not(.hasDatepicker,.hasCalendarClearButton)').each(function() { var self = jQuery(this); self.wrap('<div class="CalendarClearButtonContainer"></div>') self.after('<i class="fa fa-times datepicker_clear_btn" aria-hidden="true" title="Clear Date"></i>'); self.next('.datepicker_clear_btn').on('click',function() { $.datepicker._clearDate( self ); }); self.closest('.CalendarClearButtonContainer').hover(function() { if(self.is(':disabled')===false) { self.next('.datepicker_clear_btn').show() } },function() { self.next('.datepicker_clear_btn').hide() }) self.addClass('hasCalendarClearButton'); }) datePicker.inputmask({ alias: "mm-dd-yyyy", showMaskOnHover: false, clearIncomplete: true}); return datePicker; }; var elementPosition = jQuery('#secondary_bar').offset(); if(jQuery('form#myform').height() >= 500) { jQuery('#main').css('min-height','700px'); } else { jQuery('#main').css('min-height','0'); } jQuery('.sidebar_con').hide(); jQuery('#menu2').hide(); blockui(); jQuery('#main').fadeIn(); apply_custom_fileinput(); disable_autocomplete(); }); jQuery(window).ready(function() { var localStorageKey = location.href.replace(location.search, ''); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); if(url_obj!=null) { if(url_obj.used_in_history==1 && document.referrer!="") { jQuery('.pager_back_button_container').show(); } } else { jQuery('.pager_back_button_container').remove(); } }) jQuery(window).load(function() { jQuery('body').on('click','.pager_back_button',function(e) { var localStorageKey = window.location.href.replace(window.location.search, ''); var tmp_localStorageKeyVal = JSON.parse(window.localStorage.getItem(localStorageKey)); tmp_localStorageKeyVal.used_in_history=0; window.localStorage.setItem(localStorageKey, JSON.stringify(tmp_localStorageKeyVal)); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); var tmp_back_pager_limit=jQuery('<input type=\"hidden\" name=\"back_pager_limit\" class=\"pager_back_elements\">'); tmp_back_pager_limit.val(url_obj.back_pager_limit); var tmp_back_pager_offset=jQuery('<input type=\"hidden\" name=\"back_pager_offset\" class=\"pager_back_elements\">'); tmp_back_pager_offset.val(url_obj.back_pager_offset); var tmp_back_pager_search=jQuery('<input type=\"hidden\" name=\"back_pager_search\" class=\"pager_back_elements\">'); tmp_back_pager_search.val(url_obj.back_pager_search); var tmp_pager_search_input=jQuery('<input type=\"hidden\" name=\"pager_search_input\" class=\"pager_back_elements\">'); tmp_pager_search_input.val(url_obj.pager_search_input); jQuery('#myform').append(tmp_back_pager_limit); jQuery('#myform').append(tmp_back_pager_offset); jQuery('#myform').append(tmp_back_pager_search); jQuery('#myform').append(tmp_pager_search_input); jQuery('#myform').find(':not(.pager_back_elements)').prop('disabled',true); reset_bc(url_obj.back_pager_referrer); document.forms.myform.method='GET'; document.forms.myform.action=url_obj.back_pager_referrer; document.forms.myform.target='_self'; document.forms.myform.submit(); return false; }); jQuery.unblockUI(); // clear_searchbox(); }) function validateFloatKeyPress(el, evt,dec_number) { var dec_places = dec_number - 1; var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value.split('.'); if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } //just one dot (thanks ddlab) if(number.length>1 && charCode == 46){ return false; } //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); if( caratPos > dotPos && dotPos>-1 && (number[1].length > dec_places)){ return false; } return true; } function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart } function setMaxMinDate(thisObj,target,fromTo) { if(fromTo == "from") { target.datepicker("option", "minDate", thisObj.value); } if(fromTo == "to") { target.datepicker("option", "maxDate", thisObj.value); } } function initBackPagerVal(pageFile) { var current_url= window.location.href.replace(window.location.search, ''); var js_page_php_self = jQuery('#js_page_php_self').val(); current_url = current_url.replace(js_page_php_self,'') var localStorageKey = current_url+pageFile; var back_pager_obj={}; back_pager_obj.back_pager_limit=jQuery('#pager_limiter').val(); back_pager_obj.back_pager_offset=jQuery('#pager_selector').val(); back_pager_obj.back_pager_search=jQuery('#pager_search').val(); back_pager_obj.back_pager_search_input=jQuery('#pager_search_input').val(); back_pager_obj.back_pager_referrer=js_page_php_self; back_pager_obj.used_in_history=1; window.localStorage.setItem(localStorageKey, JSON.stringify(back_pager_obj)); } function lbl_menu_click(xsender) { var sidebarV = jQuery('.sidebar_con'); if(sidebarV.is(':visible')) { jQuery('body').css({ 'overflow': 'auto' }); } else { jQuery('body').css( 'overflow', 'hidden' ); } jQuery('.sidebar_con').toggle('slide' , {direction : "left"}, 250); jQuery('#menu2').toggle('slide' , {direction : "left"} , 270); jQuery('#menu_panel').hide(); // jQuery('.sidebar_con').hide(); } function vw_msg(msg) { alertify.alert(msg, function(){ window.open('trn_userpassword.php','_self') } ); } function lbl_menu2_click(xsender) { jQuery('#menu_panel').toggle('slide', { direction: "up"}, 500); jQuery('#sidebar').hide(); jQuery('#sidebar2').hide(); } function logout_click() { alertify.confirm('Are you sure you want to logout?', function() { blockui(); var xdata= "txt_action=logout"; jQuery.ajax({ type : 'post', data : xdata, url : '../login_proc.php', success : function (xretobj) { window.open('../login_view.php','_self') } }); }); } function filterSubdryChild(obj, $class) { if(obj.value != '') { jQuery('.'+$class).each(function() { var prevSelVal = jQuery(this).val(); jQuery(this).find("optgroup").hide(); jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").show(); if(jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').length>0) { jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').prop('selected',true); } else { jQuery(this).val(''); } }) } else { jQuery('.'+$class).each(function() { jQuery(this).find("optgroup").show(); }) jQuery('.'+$class).val(''); } } function filterSubsidiary(obj, $id) { if(obj.value!='') { var selectedindex = jQuery(obj).context.selectedIndex; var subdrycde = jQuery(obj).find("option").eq(selectedindex).closest("optgroup").data("optgroup_code"); jQuery('#'+$id).val(subdrycde); jQuery('#'+$id).change(); } } function addValMaxLength(link_id = 'link_id', tblname, fldlencla, elmntid_arr, elmntfldnm_arr) { elmntid_arr.forEach((element_id, index, arr) =>{ jQuery("#"+element_id).addClass(fldlencla); jQuery("#"+element_id).attr("data-db_col", elmntfldnm_arr[index]); }); jQuery('.'+fldlencla).dbFldLen({ link_id: link_id, tablename: tblname, ajaxPage:'db_field_length_checker_ajax.php' }); } </script> <!-- 20190606 gian karlo - validates security code and redirects--> </head> <body style="margin : 0;height:auto;"> <style type="text/css"> .loginmodal * { margin: 0; padding: 0; box-sizing: border-box; font-size: 20px; } .loginmodal input { width: 100%; } .loginmodal input[type=password], .loginmodal input[type=button], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { outline: none; } .loginmodal input[type=password], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { border: none; background: none; color: #333; } .loginmodal { position: fixed; top: 0; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; background: -webkit-linear-gradient(rgba(255,255,255,0.75), #fff 70%); z-index: 9999; } .lm_container { align-self: center; padding: 50px 30px; width: 420px; height: 480px; background: #fff; /*box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1);*/ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); position: relative; } .lm_head { display: flex; justify-content: space-between; height: 50px; } .profpic { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; background: #627d4d; } .profpic img { width: 100%; height: 100%; object-fit: contain; } .logfrm { margin-top: 60px; } ._row { height: auto; display: flex; position: relative; } .logfrm .plchldr { color: #aaa; font-weight: 100; position: absolute; left: 0; align-self: center; transition: all 0.3s; } .logfrm .label { transform: translateY(-30px); font-size: 13px; color: ; } .pass_row { margin-top: 60px; } .pass_row .plchldr { /*position: relative;*/ } .logfrm input[type=password] { z-index: 1; border-bottom: 1px solid #ccc; padding: 10px 0; position: relative; } .b_bot { transform-origin: 157.5px center 0px; -webkit-transform: scaleX(0); transform: scaleX(0); width: 100%; height: 2px; background: #627d4d; position: absolute; bottom: -2px; left: 0; margin: 0; padding: 0; } .b_bot.focus { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*-moz-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ -webkit-animation: expandme 0.5s; -moz-animation: expandme 0.5s; animation: expandme 0.5s; transition: all 0.3s; } .b_bot.blur { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme 0.5s;*/ /*-moz-animation: expandme 0.5s;*/ /*animation: expandme 0.5s;*/ opacity: 0; transition: all 0.75s; } .lm_loginbtn { margin-top: 40px; display: flex; justify-content: flex-end; } .lm_loginbtn input { width: 90px; height: auto; padding: 10px 0; border: none; text-transform: uppercase; text-align: center; cursor: pointer; background: #627d4d; color: #fff; font-size: 14px; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1); transition: all 0.3s; } .lm_loginbtn input:hover { box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 4px rgba(20,20,20,0.2), 0 7px 15px rgba(0,0,0,0.15); } .lm_foot { width: 100%; height: auto; position: absolute; bottom: 30px; left: 0; text-align: center; } .lm_foot span { font-size: 12px; text-transform: capitalize; } @-webkit-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @-moz-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } </style> <div class="loginmodal" style="display:none"> <div class="lm_container"> <div class="lm_head"> <img class="head_logo" src="../img/../img/lst.png.png"> <div class="profpic"> <img src="img/user.png"> </div> </div> <div class="logfrm"> <div class="_row uid_row"> <input type="text" name="" id="lm_userid" value="josef" disabled> <span class="plchldr label">User ID</span> </div> <div class="_row pass_row"> <input type="password" name="" id="lm_pass"> <span class="plchldr">Enter your password</span> <div class="b_bot"></div> </div> <div class="lm_loginbtn"> <input type="button" name="" id="lm_loginbtn" value="LogIn"> </div> </div> <div class="lm_foot"> <span>lee systems technology ventures</span> </div> </div> </div> <script type="text/javascript"> $(function(){ $('._row').each(function(){ $(this).find('#lm_pass').on({ focus: function(){ $(this).siblings('.plchldr').addClass('label'); $(this).siblings('.b_bot').removeClass('blur').addClass('focus'); }, blur: function(){ if ($(this).val()!='') { $(this).siblings('.plchldr').addClass('label'); // $(this).siblings('.b_bot').addClass('focus'); } else { $(this).siblings('.plchldr').removeClass('label'); // $(this).siblings('.b_bot').removeClass('focus'); } $(this).siblings('.b_bot').removeClass('focus').addClass('blur'); } }) }) }) </script> <header id="header" style='background-color:'> <hgroup class="flex hgroup_cont"> <style type="text/css"> </style> <div class="head_title_logo_container"> <div class="head_logo"> <a href="main.php"> <img class="head_logo" src="../img/lst.png"> </a> </div> <div class="head_title"> lee systems technology ventures </div> </div> <div class="_program"> <ul> <li class="apptitle"> ESS </li> <li> <a href="print_git_version_pdf.php" target="_blank" id="vc_history_link">v2022.02.10.01</a> </li> </ul> </div> </hgroup> </header> <!-- end of header bar --> <section id="secondary_bar"> <div id="fixd_con"> <div class="user" > <label class="menu_label" onclick='lbl_menu_click(this);'>MENU</label> </div> <div class="breadcrumbs_container"> <article class="breadcrumbs" id="breadcrumbs"></article> </div> <div class='tbl_user' > <table cellspacing=0 cellpadding=0; style=''> <tr> <td width='75%' style='text-align: right;'> </td> <td width='75%' style='text-align: right;font-size: 14px;white-space:nowrap'>ADMIN</td> <td width='5%'><i style="padding:0 2px 0 15px" class="fa fa-user" aria-hidden="true"></i></td> <td width='20%' style='text-align: right;'><p onclick='logout_click();' >LOGOUT</p></td> </tr> </table> </div> </div> </section> <div id = "div_menu"> <div class="sidebar_con" style="display:none"> <aside id="sidebar" class="sidebar column" style=' width:100%; height: 94%; max-width:300px; min-width:300px;'> <script type='text/javascript'> jQuery(document).ready(function(){ load_bc('view_attendace_count.php'); load_menu(); }); function load_submenu(xsubmenu,xaccordion) { jQuery.ajax({ dataType : 'json', type : 'post', url : 'ajax_menu.php', data : {menu : xsubmenu , accordion : xaccordion, mentyp : 'submenu'}, success : function (xretobj) { jQuery('#div_menus').html(xretobj); if (xaccordion == 'true') { jQuery('#sidemenu').accordion({ collapsible: true, hideOnStartup: true, active: 0, fillSpace : true }); } } }); } function load_menu() { jQuery.ajax({ type : 'post', url : 'ajax_menu.php', dataType:'json', data : {mentyp : 'menu'}, success : function (xretobj) { jQuery('#sidebar').append(xretobj.form); // get_function(); mark_active(xretobj.active_menrecid); } }); } function load_page(xurl,cap,xmensub,menid) { blockui(); updateSessRecid(menid).done(function(xret) { reset_bc(); //20180214 gian karlo - clear back button history localStorage.clear(); window.location.href=xurl; }) } function updateSessRecid(menid) { return jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {menid : menid,event_action:'updateSessRecid'} }); } function mark_active(menid) { if(menid!='') { jQuery("h3#"+menid).css('background-color', "white"); if(jQuery("h3#"+menid).hasClass('menu_has_mensub')==true && jQuery("h3#"+menid).hasClass('active')==true) { jQuery("h3#"+menid).click(); } } } function load_page2(xmensub,menid) { jQuery('#menu2').block({ "message":"<h1>Please wait while menu is loading...</h1>", css: { width: '450px', border: 'none', padding: '15px', backgroundColor: '#000000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .9, color: '#E8E8E8' } }) jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {mensub : xmensub,menid:menid}, success:function(response) { jQuery(".menu_has_mensub").css('background-color', ""); jQuery("h3").removeClass("active"); jQuery('#menu2').html(response.form); jQuery('#menu2').css('width', response.menwidth); mark_active(menid); jQuery('#menu2').unblock(); } }); } function load_bc(url){ // alert(url); var params = "url="+url; //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ jQuery('#breadcrumbs').html(response); } }); } function reset_bc(url = ""){ var params = "xpar=reset_bc"; if(url != "") { params += "&url=" + url; } //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ // jQuery('#breadcrumbs').html(response); } }); } function load_sub(mensub) { jQuery('#sidebar').hide(); jQuery.ajax({ type : 'post', dataType:'json', url : 'ajax_mensub.php', data : {xmensub : mensub}, success : function (xretobj) { console.log(xretobj); jQuery('#sidebar2').append(xretobj); //~ jQuery('#sidebar').height('100%'); //~ get_function(); } }); jQuery('#sidebar2').toggle('fast'); } function backtomain() { jQuery('#sidebar2').hide(); jQuery('#sidebar2 h3').remove(); jQuery('#sidebar2 hr').remove(); jQuery('#sidebar').toggle('fast'); } //~ function get_function() //~ { //~ jQuery(' .toggle').hide(); //~ //~ var is_clicked = true; //~ var img1 = '../images/arrow1.png'; //~ var img2 = '../images/arrow2.png'; </script> </aside> </div> </div> <!-- <style> a{ color:black; } p{ font-size:15px; font-weight:700; } </style> --> <style> a{ color:black; } p{ font-size:15px; font-weight:700; } ._menu2 { display: none; z-index: 1002; position: absolute; float: left; width: 78%; margin-left: 299px; background: #fff; height: 85%; border: none !important; overflow-y: auto; } </style> <div id='menu2' class='_menu2'> <br> <center> <br> </div> <input type='hidden' name='mensub' id='mensub' value=''> <!-- 20190606 gian karlo - reminder for security code status--> <!-- Start Security Code Notifier --> <div id="lbl_bypass_seccode" style="width: 100%;height: 30px; background-color: #fff1c9;margin-top: 1px;text-align: center;font-size: 14px;display: flex;align-items: center;justify-content: center;"> <img src="bridge/images/sign-warning-icon.png" style="width: 20px;height:20px;"> <div> Security code is currently being bypassed for testing purposes. </div> </div> <!-- End Security Code Notifier --> <div id="main" style="height:auto;width:100%;display: none;"> <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > <input type="hidden" name="js_page_php_self" id="js_page_php_self" value="view_attendace_count.php"> <input type="hidden" name="current_menu_caption" id="current_menu_caption" value=""> <input type="hidden" name="link_id_hash_id" id="link_id_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <input type="hidden" name="link_id_hr_hash_id" id="link_id_hr_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <script type="text/javascript"> var cloned_txt_empfrm = ""; var cloned_txt_empto = ""; var sql_filter = ""; jQuery(document).ready(function() { cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txtsubdry").change(); }); function onchangesubdry(obj) { var xsubdrycde = jQuery(obj).val(); sql_filter = " AND e.subdrycde = '" + xsubdrycde + "'"; jQuery("#txt_emp_from").closest("td").html(cloned_txt_empfrm); jQuery("#txt_emp_to").closest("td").html(cloned_txt_empto); cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txt_emp_from").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_from'], orderBy: 'empcode' }); jQuery("#txt_emp_to").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_to'], orderBy: 'empcode' }); } function print() { var isValid = true; jQuery('.requried').removeClass('input_hasErr'); jQuery('.required:visible').each(function() { if (jQuery.trim(jQuery(this).val()) == '') { isValid = false; jQuery(this).addClass('input_hasErr'); } }); if (isValid == false) { alertify.alert('Please fill required field(s)'); } else { document.forms.myform.action='pdf_attendance_count.php'; document.forms.myform.method='post'; document.forms.myform.target='_blank'; document.forms.myform.submit(); } } </script> <center> <article class="module width_full" style='width:50%'> <header> <h3 id='lbl_header'> ADMIN ATTENDANCE COUNT REPORT </h3> </header> <br> <center> <table width='80%' class="defaultfontsize"> <tr> <td id='lbl_subdry'>Subsidiary: </td> <td> <select name='txtfilter[txtsubdry]' id='txtsubdry' class='input' onchange="filterSubdryChild(this, 'empfilt');onchangesubdry(this);"> <option value='SUB-0000000000000001'>WEBTKM</option> </select> </td> </tr> <tr> <td id='lbl_procdtefrm'>Cut-off Date From : </td> <td id='lbl_procdteto'> <input type='text' class='datepicker input required dtefrm' name='txtfilter[procdtefrm]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdteto'),'from')" id='txtfilter_procdtefrm' autocomplete="off"> To : <input type='text' class='datepicker input required dteto' name='txtfilter[procdteto]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdtefrm'),'to')" id='txtfilter_procdteto' autocomplete="off"> </td> </tr> <tr> <td id='lbl_department'>Department : </td> <td> <select name='txtfilter[deptcode]' id='sel_deptcode' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='DPT-0000000000000002' >Implementation</option><option value='DPT-0000000000000003' >Programmer</option><option value='DPT-0000000000000001' >Sales</option></optgroup> </select> </td> </tr> <tr> <td id='lbl_paygroup'>Payroll Group : </td> <td> <select name='txtfilter[paygroup]' id='sel_paygroup' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='Monthly' >Monthly</option><option value='SemiMonthly' >SemiMonthly</option><option value='Weekly' >Weekly</option></optgroup> </select> </td> </tr> <tr> <td id="lbl_emp_from">Employee From : </td> <td> <input type="text" class="input" id="txt_emp_from" readonly=""> </td> </tr> <tr> <td id="lbl_emp_to">Employee To : </td> <td> <input type="text" class="input" id="txt_emp_to" readonly=""> </td> </tr> <tr hidden> <td> <input type="hidden" id="hid_txt_emp_from" name="txtfilter[empfrom]"> <input type="hidden" id="hid_txt_emp_to" name="txtfilter[empto]"> </td> </tr> <tr> <td></td> <td> <input type="radio" value="detailed" id='rdo_format_det' checked name="txtfilter[repformat]">Detailed <input type="radio" value="summarized" id='rdo_format_sum' name="txtfilter[repformat]">Summarized </td> </tr> <tr height='10px'></tr> <tr> <td colspan='2' align='right'> <hr> <input type='button' id='btn_view' class='print' value='Print' onclick='print();'> </td> </tr> </table> <br> </center> </article> </center> </form> </div> <style> footer { } footer p { font-family: Calibri; font-weight: normal; text-align: center; font-size: 16px; padding: 10px 0; color: #111; margin: 0; } .ftr_containers { position: fixed; margin: 0 auto; bottom: 0; left: 0; right: 0; /*background: ;*/ background: #fff; z-index: 2; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.08), 0 0 20px rgba(0,0,0,0.05); } .ftr_containers a { color: #586949; text-align: center; } .ftr_containers span { position: absolute; top: 10px; left: 10px; } </style> <footer> <div class="ftr_containers" id="lbl_footer"> <p> <span> </span> Copyright © 2022 LEE Systems Technology Ventures Inc.</p> </div> </footer> </form> </body> </html> |
| Instances | 1 |
| Solution |
Phase: Architecture and Design
Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
For example, use anti-CSRF packages such as the OWASP CSRFGuard.
Phase: Implementation
Ensure that your application is free of cross-site scripting issues, because most CSRF defenses can be bypassed using attacker-controlled script.
Phase: Architecture and Design
Generate a unique nonce for each form, place the nonce into the form, and verify the nonce upon receipt of the form. Be sure that the nonce is not predictable (CWE-330).
Note that this can be bypassed using XSS.
Identify especially dangerous operations. When the user performs a dangerous operation, send a separate confirmation request to ensure that the user intended to perform that operation.
Note that this can be bypassed using XSS.
Use the ESAPI Session Management control.
This control includes a component for CSRF.
Do not use the GET method for any request that triggers a state change.
Phase: Implementation
Check the HTTP Referer header to see if the request originated from an expected page. This could break legitimate functionality, because users or proxies may have disabled sending the Referer for privacy reasons.
|
| Reference |
http://projects.webappsec.org/Cross-Site-Request-Forgery
http://cwe.mitre.org/data/definitions/352.html |
| Tags |
OWASP_2021_A05
WSTG-v42-SESS-05 OWASP_2017_A06 |
| CWE Id | 352 |
| WASC Id | 9 |
| Plugin Id | 20012 |
|
Medium |
CORS Misconfiguration |
|---|---|
| Description |
This CORS misconfiguration could allow an attacker to perform AJAX queries to the vulnerable website from a malicious page loaded by the victim's user agent.
In order to perform authenticated AJAX queries, the server must specify the header "Access-Control-Allow-Credentials: true" and the "Access-Control-Allow-Origin" header must be set to null or the malicious page's domain. Even if this misconfiguration doesn't allow authenticated AJAX requests, unauthenticated sensitive content can still be accessed (e.g intranet websites).
A malicious page can belong to a malicious website but also a trusted website with flaws (e.g XSS, support of HTTP without TLS allowing code injection through MITM, etc).
|
| URL | http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php |
| Method | GET |
| Parameter | |
| Attack | Origin: http://kKOBxoJL.com |
| Evidence | Access-Control-Allow-Origin: * |
| Request Header - size: 694 bytes. |
GET http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Origin: http://kKOBxoJL.com Content-Length: 0 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,284 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:03:41 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Allow-Methods: POST, GET, DELETE, PUT Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding X-XSS-Protection: 1; mode=block x-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Type: text/html; charset=utf-8 |
| Response Body - size: 43,407 bytes. |
<!DOCTYPE html>
<html> <head> <title>ESS</title> <link REL="SHORTCUT ICON" HREF="img/tab_title.ico"> <!-- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Lee Systems Technology Ventures"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-1.10.2.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-ui-1.10.4.custom.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/approval_js.js?v=20220221112125'></script><script type='text/javascript' src='../javascript/requisition_js.js?v=20220610092957'></script><script type='text/javascript' src='../lib/jquery/jquery.autonumeric.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/sha1.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/greaterdate_function.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.tablesorter.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/custom_modal.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.blockUI.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.equalHeight.js?v=20220209161344'></script><script type='text/javascript' src='../lib/alertify/alertify.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/jquery.tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/fullcalendar.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/db_field_length_checker/db_field_length_checker.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/db_field_length_checker/dbflc.css?v=20220209161344' /><script type='text/javascript' src='../javascript/jquery-ajax-progress-master/js/jquery.ajax-progress.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.inputmask.bundle.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/moment_js/moment.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/regex.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/lst_freeze_table/lst_freeze_table.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/jquery/1.8.9/css/green_style/jquery-ui-1.8.21.custom.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/table.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/layout_body_lst.css?v=20220222152840' /><link rel='stylesheet' type='text/css' href='../css/layout_header_lst.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/modified_layout.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/pager.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/alertify.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/themes/bootstrap.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/global_style.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/fullcalendar/fullcalendar.css?v=20220209161344' /><script type='text/javascript' src='../javascript/searchmodal/searchable.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/searchmodal/searchable.css?v=20220209161344' /><script type='text/javascript' src='../lib/customupload/customupload.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/DataTables/datatables.css?v=20220209161344' /><script type='text/javascript' src='../lib/DataTables/datatables.js?v=20220209161344'></script><script type='text/javascript' src='../lib/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/datetime-moment.js?v=20220209161344'></script><script type='text/javascript' src='../lib/js/hideshow.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../css/main.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/font-awesome-4.6.2/css/font-awesome.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/easytree/skin-lion/ui.easytree.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../javascript/lst_freeze_table/lst_freeze_table.css?v=20220209161344' /> <style type="text/css"> .button1, ::-webkit-scrollbar, ::-webkit-scrollbar-thumb, header#header, .gp, .ui-widget-header, .fc-day-header, .ui-widget-header, #msg-container tr:hover, .dash_btn_container figure .img_con, .dash_btn_container figure .img_con_2, .panel-header, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ .div_border_front2 table:nth-child(2) input[type="button"]{ background: #627d4d !important; } #msgboard_table td:first-child:hover{ border-left: 3px solid #627d4d; } .button1, .div_border_front2 table:nth-child(2) input[type="button"], .head_title, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ ._program li, #vc_history_link{ color: #fff; } .head_title, .apptitle { text-transform: uppercase; } #forgot, .searchable_container .fa.fa-search, #msgboard_table td:first-child, ::selection{ color: ; } .fc-day-header, .ui-widget-header, #msg-container tr:hover td, #msg-container tr:hover td * { color:white !important;; } </style><input type="hidden" value="" id="server_err_list_user_session_err"> <input type="hidden" value="" id="server_err_list_sql_err"> <input type="hidden" value="04-23-2019" id="pwd_date_expired"> <script type="text/javascript"> var lstv_errorHandlerValidated=0; jQuery(document).ready(function() { if(jQuery('#server_err_list_user_session_err').val()!="") { userSessionErrHandler(jQuery('#server_err_list_user_session_err').val()); } else if( jQuery('#server_err_list_sql_err').val()!="") { sqlErrHandler(jQuery('#server_err_list_sql_err').val()); } }) function getclientdir() { var xparams = jQuery('#myform *').serialize(); xparams += "&txt_action=getclientdir"; return jQuery.ajax({ dataType: 'json', type: 'post', data: xparams, url: '../login_validate_redirect.php' }); } function userSessionErrHandler(errorcode) { if(lstv_errorHandlerValidated==0) { if(errorcode=="0a46453dc2fb96ac3fe194c788a331d7b7d149c3") //initial login { alertify.alert('Initial Login. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="c8c6cbbef8b1cf3dea3ce00a2dddf1c837f34750") //password has been reset { alertify.alert('Your password has been reset. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="cd5ce33cf637740d1feeeced5d5bd30830e545e1") //password near to expired { alertify.alert('Your password will expire on '+jQuery('#pwd_date_expired').val()); } else if(errorcode=="3fa02d249aa151013b03059d2e2490cb9536844c") //password expired { alertify.alert('Password has already expired.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="e9367cf5c4f4a928b943c0335365afe3411fd753") //session_expired { alertify.alert('The system has been idle for too long, you need to Login again.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="228c66c5495e196abf5e45e6d8c58182b6f0ac80") //someone logged in { alertify.alert('Someone login in this account.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="76cb0c0d6ca6541d727e90fd9fb9b93f2b552c10") //must login { alertify.alert('You must login first.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } } lstv_errorHandlerValidated=1; } function sqlErrHandler(responseText) { alertify.alert(responseText); } $( window ).ajaxError(function( event, jqxhr, settings, thrownError ) { jQuery.unblockUI(); console.log(thrownError); if(jqxhr.responseText!=undefined) { var json_parse = JSON.parse(jqxhr.responseText); if(json_parse.user_session_err!=undefined) { userSessionErrHandler(json_parse.user_session_err); } else if(json_parse.sql_err!=undefined) { sqlErrHandler(json_parse.sql_err); } else { alertify.alert(jqxhr.responseText); } } }) function validatePageDataReq(page) { alertify.alert('Required data for this page are missing. Please try again.',function() { window.location=page; }) } </script> <style type="text/css"> .tbl_user p { margin: 0; } a.link { color : blue; } /* -------- 03/19 --------- */ * { letter-spacing: 0.04em; } input[type=file] { width: 0px; height: 0px; opacity: 0; } .cstmupldimg { width: 100%; height: 37px; max-width: 200px; background: #627d4d; display: flex; justify-content: flex-start; align-items: center; cursor: pointer; } .cstmupldimg i.fa { color: #fff; padding: 0 15px; } .cstmupldimg span { color: #fff; padding: 0 15px 0 0; display: block; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .datepicker_holiday_day a { background-color: #42B373 !important; background-image :none !important; color: #ffffff !important; } .datepicker_restday_day a { background-color: brown !important; background-image :none !important; color: #ffffff !important; } .flex.hgroup_cont { /*margin-top: 5px;*/ padding-left: 20px; padding-right: 20px; justify-content: space-between; } .head_title_logo_container { display: flex; align-content: center; align-items: flex-start; } </style> <script> //20180820 gian karlo - blockui global settings $.blockUI.defaults.ignoreIfBlocked=true; $.blockUI.defaults.focusInput=true; $.blockUI.defaults.focusableElements=""; $.blockUI.defaults.fadeIn=200; //20190926 gian karlo - jquery dialog default global option $.extend($.ui.dialog.prototype.options, { modal: true, resizable: false, draggable: false }); //20190226 gian karlo - jquery and blockui fix to disable jquery buttonpane buttons during block $.blockUI.defaults.onBlock=function(obj) { if(jQuery(':focus').hasClass('ui-button')) { var _jQueryUiButton = jQuery('.ui-button:focus'); _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button') .addClass('disabledByBlockUi') .prop('disabled',true); } }; $.blockUI.defaults.onUnblock=function() { if(jQuery('.disabledByBlockUi').length>0) { var _jQueryUiButton = jQuery('.disabledByBlockUi'); _jQueryUiButton.removeClass('disabledByBlockUi') .prop('disabled',false) _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button').prop('disabled'); } }; //20180420 gian karlo - alertify global settings alertify.defaults.maintainFocus = false; alertify.defaults.closable = false; alertify.defaults.modal = true; alertify.defaults.maximizable = false; alertify.defaults.resizable = false; alertify.defaults.closableByDimmer = false; alertify.defaults.glossary.title = "Employee Self Service"; //20180420 - gian karlo - dialog + alertify fix jQuery.ui.dialog.prototype._focusTabbable = function(){}; //20180420 - gian karlo - datepicker defaults jQuery.datepicker.setDefaults({ changeYear: true, changeMonth : true, dateFormat:'mm-dd-yy', yearRange: "-100:+1" }); var xplaceholder = 'mm-dd-yyyy'; function disable_autocomplete() { jQuery("textarea:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","new-password"); }); jQuery("input:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","off"); }); } //20180430 gian karlo - apply all input with datepicker classes on every ajax Sucess event jQuery( document ).ajaxComplete(function() { jQuery('.datepicker').datepicker(); apply_custom_fileinput(); disable_autocomplete(); }); //20190520 randle - for dynamically added input file jQuery(document).on("click",".cstmupldimg.dynamic",function(e) { var xfilename_container = jQuery(this).find('.xfilename'); var choosefile_str = jQuery(this).data('input_label')!=undefined ? jQuery(this).data('input_label'):'Choose File'; xfilename_container.html(choosefile_str); $(this).change(function(e){ if(e.target.files[0]!=undefined) { var fileName = e.target.files[0].name; // $(this).siblings('.cstmupldimg').find('.xfilename').html(fileName); $(this).find('.xfilename').html(fileName); jQuery(this).attr('title',fileName); } else { $(this).val(null); xfilename_container.html(choosefile_str); jQuery(this).attr('title',''); } }) if(e.originalEvent!=undefined) //20190404 gian karlo , determine that .cstmupldimg is click by the user and not programmatically { jQuery(this).find('.cstmupldfile').click(); } }); jQuery(document).ready(function() { //20180420 - gian karlo - datepicker default placeholder var pickerFn = jQuery.fn.datepicker; jQuery.fn.datepicker = function () { var datePicker = pickerFn.apply(this, arguments); var self = this; self.attr('placeholder', xplaceholder); // updateCalendarClearButton // console.log(jQuery('.hasDatepicker:not(.hasCalendarClearButton)').length); jQuery('.hasDatepicker:not(.hasDatepicker,.hasCalendarClearButton)').each(function() { var self = jQuery(this); self.wrap('<div class="CalendarClearButtonContainer"></div>') self.after('<i class="fa fa-times datepicker_clear_btn" aria-hidden="true" title="Clear Date"></i>'); self.next('.datepicker_clear_btn').on('click',function() { $.datepicker._clearDate( self ); }); self.closest('.CalendarClearButtonContainer').hover(function() { if(self.is(':disabled')===false) { self.next('.datepicker_clear_btn').show() } },function() { self.next('.datepicker_clear_btn').hide() }) self.addClass('hasCalendarClearButton'); }) datePicker.inputmask({ alias: "mm-dd-yyyy", showMaskOnHover: false, clearIncomplete: true}); return datePicker; }; var elementPosition = jQuery('#secondary_bar').offset(); if(jQuery('form#myform').height() >= 500) { jQuery('#main').css('min-height','700px'); } else { jQuery('#main').css('min-height','0'); } jQuery('.sidebar_con').hide(); jQuery('#menu2').hide(); blockui(); jQuery('#main').fadeIn(); apply_custom_fileinput(); disable_autocomplete(); }); jQuery(window).ready(function() { var localStorageKey = location.href.replace(location.search, ''); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); if(url_obj!=null) { if(url_obj.used_in_history==1 && document.referrer!="") { jQuery('.pager_back_button_container').show(); } } else { jQuery('.pager_back_button_container').remove(); } }) jQuery(window).load(function() { jQuery('body').on('click','.pager_back_button',function(e) { var localStorageKey = window.location.href.replace(window.location.search, ''); var tmp_localStorageKeyVal = JSON.parse(window.localStorage.getItem(localStorageKey)); tmp_localStorageKeyVal.used_in_history=0; window.localStorage.setItem(localStorageKey, JSON.stringify(tmp_localStorageKeyVal)); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); var tmp_back_pager_limit=jQuery('<input type=\"hidden\" name=\"back_pager_limit\" class=\"pager_back_elements\">'); tmp_back_pager_limit.val(url_obj.back_pager_limit); var tmp_back_pager_offset=jQuery('<input type=\"hidden\" name=\"back_pager_offset\" class=\"pager_back_elements\">'); tmp_back_pager_offset.val(url_obj.back_pager_offset); var tmp_back_pager_search=jQuery('<input type=\"hidden\" name=\"back_pager_search\" class=\"pager_back_elements\">'); tmp_back_pager_search.val(url_obj.back_pager_search); var tmp_pager_search_input=jQuery('<input type=\"hidden\" name=\"pager_search_input\" class=\"pager_back_elements\">'); tmp_pager_search_input.val(url_obj.pager_search_input); jQuery('#myform').append(tmp_back_pager_limit); jQuery('#myform').append(tmp_back_pager_offset); jQuery('#myform').append(tmp_back_pager_search); jQuery('#myform').append(tmp_pager_search_input); jQuery('#myform').find(':not(.pager_back_elements)').prop('disabled',true); reset_bc(url_obj.back_pager_referrer); document.forms.myform.method='GET'; document.forms.myform.action=url_obj.back_pager_referrer; document.forms.myform.target='_self'; document.forms.myform.submit(); return false; }); jQuery.unblockUI(); // clear_searchbox(); }) function validateFloatKeyPress(el, evt,dec_number) { var dec_places = dec_number - 1; var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value.split('.'); if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } //just one dot (thanks ddlab) if(number.length>1 && charCode == 46){ return false; } //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); if( caratPos > dotPos && dotPos>-1 && (number[1].length > dec_places)){ return false; } return true; } function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart } function setMaxMinDate(thisObj,target,fromTo) { if(fromTo == "from") { target.datepicker("option", "minDate", thisObj.value); } if(fromTo == "to") { target.datepicker("option", "maxDate", thisObj.value); } } function initBackPagerVal(pageFile) { var current_url= window.location.href.replace(window.location.search, ''); var js_page_php_self = jQuery('#js_page_php_self').val(); current_url = current_url.replace(js_page_php_self,'') var localStorageKey = current_url+pageFile; var back_pager_obj={}; back_pager_obj.back_pager_limit=jQuery('#pager_limiter').val(); back_pager_obj.back_pager_offset=jQuery('#pager_selector').val(); back_pager_obj.back_pager_search=jQuery('#pager_search').val(); back_pager_obj.back_pager_search_input=jQuery('#pager_search_input').val(); back_pager_obj.back_pager_referrer=js_page_php_self; back_pager_obj.used_in_history=1; window.localStorage.setItem(localStorageKey, JSON.stringify(back_pager_obj)); } function lbl_menu_click(xsender) { var sidebarV = jQuery('.sidebar_con'); if(sidebarV.is(':visible')) { jQuery('body').css({ 'overflow': 'auto' }); } else { jQuery('body').css( 'overflow', 'hidden' ); } jQuery('.sidebar_con').toggle('slide' , {direction : "left"}, 250); jQuery('#menu2').toggle('slide' , {direction : "left"} , 270); jQuery('#menu_panel').hide(); // jQuery('.sidebar_con').hide(); } function vw_msg(msg) { alertify.alert(msg, function(){ window.open('trn_userpassword.php','_self') } ); } function lbl_menu2_click(xsender) { jQuery('#menu_panel').toggle('slide', { direction: "up"}, 500); jQuery('#sidebar').hide(); jQuery('#sidebar2').hide(); } function logout_click() { alertify.confirm('Are you sure you want to logout?', function() { blockui(); var xdata= "txt_action=logout"; jQuery.ajax({ type : 'post', data : xdata, url : '../login_proc.php', success : function (xretobj) { window.open('../login_view.php','_self') } }); }); } function filterSubdryChild(obj, $class) { if(obj.value != '') { jQuery('.'+$class).each(function() { var prevSelVal = jQuery(this).val(); jQuery(this).find("optgroup").hide(); jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").show(); if(jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').length>0) { jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').prop('selected',true); } else { jQuery(this).val(''); } }) } else { jQuery('.'+$class).each(function() { jQuery(this).find("optgroup").show(); }) jQuery('.'+$class).val(''); } } function filterSubsidiary(obj, $id) { if(obj.value!='') { var selectedindex = jQuery(obj).context.selectedIndex; var subdrycde = jQuery(obj).find("option").eq(selectedindex).closest("optgroup").data("optgroup_code"); jQuery('#'+$id).val(subdrycde); jQuery('#'+$id).change(); } } function addValMaxLength(link_id = 'link_id', tblname, fldlencla, elmntid_arr, elmntfldnm_arr) { elmntid_arr.forEach((element_id, index, arr) =>{ jQuery("#"+element_id).addClass(fldlencla); jQuery("#"+element_id).attr("data-db_col", elmntfldnm_arr[index]); }); jQuery('.'+fldlencla).dbFldLen({ link_id: link_id, tablename: tblname, ajaxPage:'db_field_length_checker_ajax.php' }); } </script> <!-- 20190606 gian karlo - validates security code and redirects--> </head> <body style="margin : 0;height:auto;"> <style type="text/css"> .loginmodal * { margin: 0; padding: 0; box-sizing: border-box; font-size: 20px; } .loginmodal input { width: 100%; } .loginmodal input[type=password], .loginmodal input[type=button], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { outline: none; } .loginmodal input[type=password], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { border: none; background: none; color: #333; } .loginmodal { position: fixed; top: 0; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; background: -webkit-linear-gradient(rgba(255,255,255,0.75), #fff 70%); z-index: 9999; } .lm_container { align-self: center; padding: 50px 30px; width: 420px; height: 480px; background: #fff; /*box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1);*/ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); position: relative; } .lm_head { display: flex; justify-content: space-between; height: 50px; } .profpic { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; background: #627d4d; } .profpic img { width: 100%; height: 100%; object-fit: contain; } .logfrm { margin-top: 60px; } ._row { height: auto; display: flex; position: relative; } .logfrm .plchldr { color: #aaa; font-weight: 100; position: absolute; left: 0; align-self: center; transition: all 0.3s; } .logfrm .label { transform: translateY(-30px); font-size: 13px; color: ; } .pass_row { margin-top: 60px; } .pass_row .plchldr { /*position: relative;*/ } .logfrm input[type=password] { z-index: 1; border-bottom: 1px solid #ccc; padding: 10px 0; position: relative; } .b_bot { transform-origin: 157.5px center 0px; -webkit-transform: scaleX(0); transform: scaleX(0); width: 100%; height: 2px; background: #627d4d; position: absolute; bottom: -2px; left: 0; margin: 0; padding: 0; } .b_bot.focus { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*-moz-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ -webkit-animation: expandme 0.5s; -moz-animation: expandme 0.5s; animation: expandme 0.5s; transition: all 0.3s; } .b_bot.blur { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme 0.5s;*/ /*-moz-animation: expandme 0.5s;*/ /*animation: expandme 0.5s;*/ opacity: 0; transition: all 0.75s; } .lm_loginbtn { margin-top: 40px; display: flex; justify-content: flex-end; } .lm_loginbtn input { width: 90px; height: auto; padding: 10px 0; border: none; text-transform: uppercase; text-align: center; cursor: pointer; background: #627d4d; color: #fff; font-size: 14px; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1); transition: all 0.3s; } .lm_loginbtn input:hover { box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 4px rgba(20,20,20,0.2), 0 7px 15px rgba(0,0,0,0.15); } .lm_foot { width: 100%; height: auto; position: absolute; bottom: 30px; left: 0; text-align: center; } .lm_foot span { font-size: 12px; text-transform: capitalize; } @-webkit-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @-moz-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } </style> <div class="loginmodal" style="display:none"> <div class="lm_container"> <div class="lm_head"> <img class="head_logo" src="../img/../img/lst.png.png"> <div class="profpic"> <img src="img/user.png"> </div> </div> <div class="logfrm"> <div class="_row uid_row"> <input type="text" name="" id="lm_userid" value="josef" disabled> <span class="plchldr label">User ID</span> </div> <div class="_row pass_row"> <input type="password" name="" id="lm_pass"> <span class="plchldr">Enter your password</span> <div class="b_bot"></div> </div> <div class="lm_loginbtn"> <input type="button" name="" id="lm_loginbtn" value="LogIn"> </div> </div> <div class="lm_foot"> <span>lee systems technology ventures</span> </div> </div> </div> <script type="text/javascript"> $(function(){ $('._row').each(function(){ $(this).find('#lm_pass').on({ focus: function(){ $(this).siblings('.plchldr').addClass('label'); $(this).siblings('.b_bot').removeClass('blur').addClass('focus'); }, blur: function(){ if ($(this).val()!='') { $(this).siblings('.plchldr').addClass('label'); // $(this).siblings('.b_bot').addClass('focus'); } else { $(this).siblings('.plchldr').removeClass('label'); // $(this).siblings('.b_bot').removeClass('focus'); } $(this).siblings('.b_bot').removeClass('focus').addClass('blur'); } }) }) }) </script> <header id="header" style='background-color:'> <hgroup class="flex hgroup_cont"> <style type="text/css"> </style> <div class="head_title_logo_container"> <div class="head_logo"> <a href="main.php"> <img class="head_logo" src="../img/lst.png"> </a> </div> <div class="head_title"> lee systems technology ventures </div> </div> <div class="_program"> <ul> <li class="apptitle"> ESS </li> <li> <a href="print_git_version_pdf.php" target="_blank" id="vc_history_link">v2022.02.10.01</a> </li> </ul> </div> </hgroup> </header> <!-- end of header bar --> <section id="secondary_bar"> <div id="fixd_con"> <div class="user" > <label class="menu_label" onclick='lbl_menu_click(this);'>MENU</label> </div> <div class="breadcrumbs_container"> <article class="breadcrumbs" id="breadcrumbs"></article> </div> <div class='tbl_user' > <table cellspacing=0 cellpadding=0; style=''> <tr> <td width='75%' style='text-align: right;'> </td> <td width='75%' style='text-align: right;font-size: 14px;white-space:nowrap'>ADMIN</td> <td width='5%'><i style="padding:0 2px 0 15px" class="fa fa-user" aria-hidden="true"></i></td> <td width='20%' style='text-align: right;'><p onclick='logout_click();' >LOGOUT</p></td> </tr> </table> </div> </div> </section> <div id = "div_menu"> <div class="sidebar_con" style="display:none"> <aside id="sidebar" class="sidebar column" style=' width:100%; height: 94%; max-width:300px; min-width:300px;'> <script type='text/javascript'> jQuery(document).ready(function(){ load_bc('view_attendace_count.php'); load_menu(); }); function load_submenu(xsubmenu,xaccordion) { jQuery.ajax({ dataType : 'json', type : 'post', url : 'ajax_menu.php', data : {menu : xsubmenu , accordion : xaccordion, mentyp : 'submenu'}, success : function (xretobj) { jQuery('#div_menus').html(xretobj); if (xaccordion == 'true') { jQuery('#sidemenu').accordion({ collapsible: true, hideOnStartup: true, active: 0, fillSpace : true }); } } }); } function load_menu() { jQuery.ajax({ type : 'post', url : 'ajax_menu.php', dataType:'json', data : {mentyp : 'menu'}, success : function (xretobj) { jQuery('#sidebar').append(xretobj.form); // get_function(); mark_active(xretobj.active_menrecid); } }); } function load_page(xurl,cap,xmensub,menid) { blockui(); updateSessRecid(menid).done(function(xret) { reset_bc(); //20180214 gian karlo - clear back button history localStorage.clear(); window.location.href=xurl; }) } function updateSessRecid(menid) { return jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {menid : menid,event_action:'updateSessRecid'} }); } function mark_active(menid) { if(menid!='') { jQuery("h3#"+menid).css('background-color', "white"); if(jQuery("h3#"+menid).hasClass('menu_has_mensub')==true && jQuery("h3#"+menid).hasClass('active')==true) { jQuery("h3#"+menid).click(); } } } function load_page2(xmensub,menid) { jQuery('#menu2').block({ "message":"<h1>Please wait while menu is loading...</h1>", css: { width: '450px', border: 'none', padding: '15px', backgroundColor: '#000000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .9, color: '#E8E8E8' } }) jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {mensub : xmensub,menid:menid}, success:function(response) { jQuery(".menu_has_mensub").css('background-color', ""); jQuery("h3").removeClass("active"); jQuery('#menu2').html(response.form); jQuery('#menu2').css('width', response.menwidth); mark_active(menid); jQuery('#menu2').unblock(); } }); } function load_bc(url){ // alert(url); var params = "url="+url; //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ jQuery('#breadcrumbs').html(response); } }); } function reset_bc(url = ""){ var params = "xpar=reset_bc"; if(url != "") { params += "&url=" + url; } //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ // jQuery('#breadcrumbs').html(response); } }); } function load_sub(mensub) { jQuery('#sidebar').hide(); jQuery.ajax({ type : 'post', dataType:'json', url : 'ajax_mensub.php', data : {xmensub : mensub}, success : function (xretobj) { console.log(xretobj); jQuery('#sidebar2').append(xretobj); //~ jQuery('#sidebar').height('100%'); //~ get_function(); } }); jQuery('#sidebar2').toggle('fast'); } function backtomain() { jQuery('#sidebar2').hide(); jQuery('#sidebar2 h3').remove(); jQuery('#sidebar2 hr').remove(); jQuery('#sidebar').toggle('fast'); } //~ function get_function() //~ { //~ jQuery(' .toggle').hide(); //~ //~ var is_clicked = true; //~ var img1 = '../images/arrow1.png'; //~ var img2 = '../images/arrow2.png'; </script> </aside> </div> </div> <!-- <style> a{ color:black; } p{ font-size:15px; font-weight:700; } </style> --> <style> a{ color:black; } p{ font-size:15px; font-weight:700; } ._menu2 { display: none; z-index: 1002; position: absolute; float: left; width: 78%; margin-left: 299px; background: #fff; height: 85%; border: none !important; overflow-y: auto; } </style> <div id='menu2' class='_menu2'> <br> <center> <br> </div> <input type='hidden' name='mensub' id='mensub' value=''> <!-- 20190606 gian karlo - reminder for security code status--> <!-- Start Security Code Notifier --> <div id="lbl_bypass_seccode" style="width: 100%;height: 30px; background-color: #fff1c9;margin-top: 1px;text-align: center;font-size: 14px;display: flex;align-items: center;justify-content: center;"> <img src="bridge/images/sign-warning-icon.png" style="width: 20px;height:20px;"> <div> Security code is currently being bypassed for testing purposes. </div> </div> <!-- End Security Code Notifier --> <div id="main" style="height:auto;width:100%;display: none;"> <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > <input type="hidden" name="js_page_php_self" id="js_page_php_self" value="view_attendace_count.php"> <input type="hidden" name="current_menu_caption" id="current_menu_caption" value=""> <input type="hidden" name="link_id_hash_id" id="link_id_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <input type="hidden" name="link_id_hr_hash_id" id="link_id_hr_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <script type="text/javascript"> var cloned_txt_empfrm = ""; var cloned_txt_empto = ""; var sql_filter = ""; jQuery(document).ready(function() { cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txtsubdry").change(); }); function onchangesubdry(obj) { var xsubdrycde = jQuery(obj).val(); sql_filter = " AND e.subdrycde = '" + xsubdrycde + "'"; jQuery("#txt_emp_from").closest("td").html(cloned_txt_empfrm); jQuery("#txt_emp_to").closest("td").html(cloned_txt_empto); cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txt_emp_from").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_from'], orderBy: 'empcode' }); jQuery("#txt_emp_to").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_to'], orderBy: 'empcode' }); } function print() { var isValid = true; jQuery('.requried').removeClass('input_hasErr'); jQuery('.required:visible').each(function() { if (jQuery.trim(jQuery(this).val()) == '') { isValid = false; jQuery(this).addClass('input_hasErr'); } }); if (isValid == false) { alertify.alert('Please fill required field(s)'); } else { document.forms.myform.action='pdf_attendance_count.php'; document.forms.myform.method='post'; document.forms.myform.target='_blank'; document.forms.myform.submit(); } } </script> <center> <article class="module width_full" style='width:50%'> <header> <h3 id='lbl_header'> ADMIN ATTENDANCE COUNT REPORT </h3> </header> <br> <center> <table width='80%' class="defaultfontsize"> <tr> <td id='lbl_subdry'>Subsidiary: </td> <td> <select name='txtfilter[txtsubdry]' id='txtsubdry' class='input' onchange="filterSubdryChild(this, 'empfilt');onchangesubdry(this);"> <option value='SUB-0000000000000001'>WEBTKM</option> </select> </td> </tr> <tr> <td id='lbl_procdtefrm'>Cut-off Date From : </td> <td id='lbl_procdteto'> <input type='text' class='datepicker input required dtefrm' name='txtfilter[procdtefrm]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdteto'),'from')" id='txtfilter_procdtefrm' autocomplete="off"> To : <input type='text' class='datepicker input required dteto' name='txtfilter[procdteto]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdtefrm'),'to')" id='txtfilter_procdteto' autocomplete="off"> </td> </tr> <tr> <td id='lbl_department'>Department : </td> <td> <select name='txtfilter[deptcode]' id='sel_deptcode' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='DPT-0000000000000002' >Implementation</option><option value='DPT-0000000000000003' >Programmer</option><option value='DPT-0000000000000001' >Sales</option></optgroup> </select> </td> </tr> <tr> <td id='lbl_paygroup'>Payroll Group : </td> <td> <select name='txtfilter[paygroup]' id='sel_paygroup' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='Monthly' >Monthly</option><option value='SemiMonthly' >SemiMonthly</option><option value='Weekly' >Weekly</option></optgroup> </select> </td> </tr> <tr> <td id="lbl_emp_from">Employee From : </td> <td> <input type="text" class="input" id="txt_emp_from" readonly=""> </td> </tr> <tr> <td id="lbl_emp_to">Employee To : </td> <td> <input type="text" class="input" id="txt_emp_to" readonly=""> </td> </tr> <tr hidden> <td> <input type="hidden" id="hid_txt_emp_from" name="txtfilter[empfrom]"> <input type="hidden" id="hid_txt_emp_to" name="txtfilter[empto]"> </td> </tr> <tr> <td></td> <td> <input type="radio" value="detailed" id='rdo_format_det' checked name="txtfilter[repformat]">Detailed <input type="radio" value="summarized" id='rdo_format_sum' name="txtfilter[repformat]">Summarized </td> </tr> <tr height='10px'></tr> <tr> <td colspan='2' align='right'> <hr> <input type='button' id='btn_view' class='print' value='Print' onclick='print();'> </td> </tr> </table> <br> </center> </article> </center> </form> </div> <style> footer { } footer p { font-family: Calibri; font-weight: normal; text-align: center; font-size: 16px; padding: 10px 0; color: #111; margin: 0; } .ftr_containers { position: fixed; margin: 0 auto; bottom: 0; left: 0; right: 0; /*background: ;*/ background: #fff; z-index: 2; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.08), 0 0 20px rgba(0,0,0,0.05); } .ftr_containers a { color: #586949; text-align: center; } .ftr_containers span { position: absolute; top: 10px; left: 10px; } </style> <footer> <div class="ftr_containers" id="lbl_footer"> <p> <span> </span> Copyright © 2022 LEE Systems Technology Ventures Inc.</p> </div> </footer> </form> </body> </html> |
| Instances | 1 |
| Solution |
If a web resource contains sensitive information, the origin should be properly specified in the Access-Control-Allow-Origin header. Only trusted websites needing this resource should be specified in this header, with the most secured protocol supported.
|
| Reference |
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
https://portswigger.net/web-security/cors |
| Tags |
OWASP_2021_A01
WSTG-v42-CLNT-07 OWASP_2017_A05 |
| CWE Id | 942 |
| WASC Id | 14 |
| Plugin Id | 40040 |
|
Medium |
Corsair - CORS Misconfigured |
|---|---|
| Description |
Cross Origin Resource Sharing (CORS) is misconfigured.
Test performed: Injecting a fake origin
|
| URL | http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php |
| Method | GET |
| Parameter | Origin |
| Attack | https://example.com |
| Evidence | https://example.com |
| Request Header - size: 694 bytes. |
GET http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Origin: https://example.com Content-Length: 0 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,284 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:02:54 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Allow-Methods: POST, GET, DELETE, PUT Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding X-XSS-Protection: 1; mode=block x-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Type: text/html; charset=utf-8 |
| Response Body - size: 43,407 bytes. |
<!DOCTYPE html>
<html> <head> <title>ESS</title> <link REL="SHORTCUT ICON" HREF="img/tab_title.ico"> <!-- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Lee Systems Technology Ventures"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-1.10.2.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-ui-1.10.4.custom.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/approval_js.js?v=20220221112125'></script><script type='text/javascript' src='../javascript/requisition_js.js?v=20220610092957'></script><script type='text/javascript' src='../lib/jquery/jquery.autonumeric.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/sha1.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/greaterdate_function.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.tablesorter.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/custom_modal.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.blockUI.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.equalHeight.js?v=20220209161344'></script><script type='text/javascript' src='../lib/alertify/alertify.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/jquery.tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/fullcalendar.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/db_field_length_checker/db_field_length_checker.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/db_field_length_checker/dbflc.css?v=20220209161344' /><script type='text/javascript' src='../javascript/jquery-ajax-progress-master/js/jquery.ajax-progress.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.inputmask.bundle.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/moment_js/moment.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/regex.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/lst_freeze_table/lst_freeze_table.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/jquery/1.8.9/css/green_style/jquery-ui-1.8.21.custom.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/table.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/layout_body_lst.css?v=20220222152840' /><link rel='stylesheet' type='text/css' href='../css/layout_header_lst.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/modified_layout.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/pager.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/alertify.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/themes/bootstrap.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/global_style.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/fullcalendar/fullcalendar.css?v=20220209161344' /><script type='text/javascript' src='../javascript/searchmodal/searchable.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/searchmodal/searchable.css?v=20220209161344' /><script type='text/javascript' src='../lib/customupload/customupload.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/DataTables/datatables.css?v=20220209161344' /><script type='text/javascript' src='../lib/DataTables/datatables.js?v=20220209161344'></script><script type='text/javascript' src='../lib/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/datetime-moment.js?v=20220209161344'></script><script type='text/javascript' src='../lib/js/hideshow.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../css/main.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/font-awesome-4.6.2/css/font-awesome.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/easytree/skin-lion/ui.easytree.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../javascript/lst_freeze_table/lst_freeze_table.css?v=20220209161344' /> <style type="text/css"> .button1, ::-webkit-scrollbar, ::-webkit-scrollbar-thumb, header#header, .gp, .ui-widget-header, .fc-day-header, .ui-widget-header, #msg-container tr:hover, .dash_btn_container figure .img_con, .dash_btn_container figure .img_con_2, .panel-header, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ .div_border_front2 table:nth-child(2) input[type="button"]{ background: #627d4d !important; } #msgboard_table td:first-child:hover{ border-left: 3px solid #627d4d; } .button1, .div_border_front2 table:nth-child(2) input[type="button"], .head_title, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ ._program li, #vc_history_link{ color: #fff; } .head_title, .apptitle { text-transform: uppercase; } #forgot, .searchable_container .fa.fa-search, #msgboard_table td:first-child, ::selection{ color: ; } .fc-day-header, .ui-widget-header, #msg-container tr:hover td, #msg-container tr:hover td * { color:white !important;; } </style><input type="hidden" value="" id="server_err_list_user_session_err"> <input type="hidden" value="" id="server_err_list_sql_err"> <input type="hidden" value="04-23-2019" id="pwd_date_expired"> <script type="text/javascript"> var lstv_errorHandlerValidated=0; jQuery(document).ready(function() { if(jQuery('#server_err_list_user_session_err').val()!="") { userSessionErrHandler(jQuery('#server_err_list_user_session_err').val()); } else if( jQuery('#server_err_list_sql_err').val()!="") { sqlErrHandler(jQuery('#server_err_list_sql_err').val()); } }) function getclientdir() { var xparams = jQuery('#myform *').serialize(); xparams += "&txt_action=getclientdir"; return jQuery.ajax({ dataType: 'json', type: 'post', data: xparams, url: '../login_validate_redirect.php' }); } function userSessionErrHandler(errorcode) { if(lstv_errorHandlerValidated==0) { if(errorcode=="0a46453dc2fb96ac3fe194c788a331d7b7d149c3") //initial login { alertify.alert('Initial Login. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="c8c6cbbef8b1cf3dea3ce00a2dddf1c837f34750") //password has been reset { alertify.alert('Your password has been reset. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="cd5ce33cf637740d1feeeced5d5bd30830e545e1") //password near to expired { alertify.alert('Your password will expire on '+jQuery('#pwd_date_expired').val()); } else if(errorcode=="3fa02d249aa151013b03059d2e2490cb9536844c") //password expired { alertify.alert('Password has already expired.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="e9367cf5c4f4a928b943c0335365afe3411fd753") //session_expired { alertify.alert('The system has been idle for too long, you need to Login again.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="228c66c5495e196abf5e45e6d8c58182b6f0ac80") //someone logged in { alertify.alert('Someone login in this account.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="76cb0c0d6ca6541d727e90fd9fb9b93f2b552c10") //must login { alertify.alert('You must login first.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } } lstv_errorHandlerValidated=1; } function sqlErrHandler(responseText) { alertify.alert(responseText); } $( window ).ajaxError(function( event, jqxhr, settings, thrownError ) { jQuery.unblockUI(); console.log(thrownError); if(jqxhr.responseText!=undefined) { var json_parse = JSON.parse(jqxhr.responseText); if(json_parse.user_session_err!=undefined) { userSessionErrHandler(json_parse.user_session_err); } else if(json_parse.sql_err!=undefined) { sqlErrHandler(json_parse.sql_err); } else { alertify.alert(jqxhr.responseText); } } }) function validatePageDataReq(page) { alertify.alert('Required data for this page are missing. Please try again.',function() { window.location=page; }) } </script> <style type="text/css"> .tbl_user p { margin: 0; } a.link { color : blue; } /* -------- 03/19 --------- */ * { letter-spacing: 0.04em; } input[type=file] { width: 0px; height: 0px; opacity: 0; } .cstmupldimg { width: 100%; height: 37px; max-width: 200px; background: #627d4d; display: flex; justify-content: flex-start; align-items: center; cursor: pointer; } .cstmupldimg i.fa { color: #fff; padding: 0 15px; } .cstmupldimg span { color: #fff; padding: 0 15px 0 0; display: block; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .datepicker_holiday_day a { background-color: #42B373 !important; background-image :none !important; color: #ffffff !important; } .datepicker_restday_day a { background-color: brown !important; background-image :none !important; color: #ffffff !important; } .flex.hgroup_cont { /*margin-top: 5px;*/ padding-left: 20px; padding-right: 20px; justify-content: space-between; } .head_title_logo_container { display: flex; align-content: center; align-items: flex-start; } </style> <script> //20180820 gian karlo - blockui global settings $.blockUI.defaults.ignoreIfBlocked=true; $.blockUI.defaults.focusInput=true; $.blockUI.defaults.focusableElements=""; $.blockUI.defaults.fadeIn=200; //20190926 gian karlo - jquery dialog default global option $.extend($.ui.dialog.prototype.options, { modal: true, resizable: false, draggable: false }); //20190226 gian karlo - jquery and blockui fix to disable jquery buttonpane buttons during block $.blockUI.defaults.onBlock=function(obj) { if(jQuery(':focus').hasClass('ui-button')) { var _jQueryUiButton = jQuery('.ui-button:focus'); _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button') .addClass('disabledByBlockUi') .prop('disabled',true); } }; $.blockUI.defaults.onUnblock=function() { if(jQuery('.disabledByBlockUi').length>0) { var _jQueryUiButton = jQuery('.disabledByBlockUi'); _jQueryUiButton.removeClass('disabledByBlockUi') .prop('disabled',false) _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button').prop('disabled'); } }; //20180420 gian karlo - alertify global settings alertify.defaults.maintainFocus = false; alertify.defaults.closable = false; alertify.defaults.modal = true; alertify.defaults.maximizable = false; alertify.defaults.resizable = false; alertify.defaults.closableByDimmer = false; alertify.defaults.glossary.title = "Employee Self Service"; //20180420 - gian karlo - dialog + alertify fix jQuery.ui.dialog.prototype._focusTabbable = function(){}; //20180420 - gian karlo - datepicker defaults jQuery.datepicker.setDefaults({ changeYear: true, changeMonth : true, dateFormat:'mm-dd-yy', yearRange: "-100:+1" }); var xplaceholder = 'mm-dd-yyyy'; function disable_autocomplete() { jQuery("textarea:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","new-password"); }); jQuery("input:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","off"); }); } //20180430 gian karlo - apply all input with datepicker classes on every ajax Sucess event jQuery( document ).ajaxComplete(function() { jQuery('.datepicker').datepicker(); apply_custom_fileinput(); disable_autocomplete(); }); //20190520 randle - for dynamically added input file jQuery(document).on("click",".cstmupldimg.dynamic",function(e) { var xfilename_container = jQuery(this).find('.xfilename'); var choosefile_str = jQuery(this).data('input_label')!=undefined ? jQuery(this).data('input_label'):'Choose File'; xfilename_container.html(choosefile_str); $(this).change(function(e){ if(e.target.files[0]!=undefined) { var fileName = e.target.files[0].name; // $(this).siblings('.cstmupldimg').find('.xfilename').html(fileName); $(this).find('.xfilename').html(fileName); jQuery(this).attr('title',fileName); } else { $(this).val(null); xfilename_container.html(choosefile_str); jQuery(this).attr('title',''); } }) if(e.originalEvent!=undefined) //20190404 gian karlo , determine that .cstmupldimg is click by the user and not programmatically { jQuery(this).find('.cstmupldfile').click(); } }); jQuery(document).ready(function() { //20180420 - gian karlo - datepicker default placeholder var pickerFn = jQuery.fn.datepicker; jQuery.fn.datepicker = function () { var datePicker = pickerFn.apply(this, arguments); var self = this; self.attr('placeholder', xplaceholder); // updateCalendarClearButton // console.log(jQuery('.hasDatepicker:not(.hasCalendarClearButton)').length); jQuery('.hasDatepicker:not(.hasDatepicker,.hasCalendarClearButton)').each(function() { var self = jQuery(this); self.wrap('<div class="CalendarClearButtonContainer"></div>') self.after('<i class="fa fa-times datepicker_clear_btn" aria-hidden="true" title="Clear Date"></i>'); self.next('.datepicker_clear_btn').on('click',function() { $.datepicker._clearDate( self ); }); self.closest('.CalendarClearButtonContainer').hover(function() { if(self.is(':disabled')===false) { self.next('.datepicker_clear_btn').show() } },function() { self.next('.datepicker_clear_btn').hide() }) self.addClass('hasCalendarClearButton'); }) datePicker.inputmask({ alias: "mm-dd-yyyy", showMaskOnHover: false, clearIncomplete: true}); return datePicker; }; var elementPosition = jQuery('#secondary_bar').offset(); if(jQuery('form#myform').height() >= 500) { jQuery('#main').css('min-height','700px'); } else { jQuery('#main').css('min-height','0'); } jQuery('.sidebar_con').hide(); jQuery('#menu2').hide(); blockui(); jQuery('#main').fadeIn(); apply_custom_fileinput(); disable_autocomplete(); }); jQuery(window).ready(function() { var localStorageKey = location.href.replace(location.search, ''); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); if(url_obj!=null) { if(url_obj.used_in_history==1 && document.referrer!="") { jQuery('.pager_back_button_container').show(); } } else { jQuery('.pager_back_button_container').remove(); } }) jQuery(window).load(function() { jQuery('body').on('click','.pager_back_button',function(e) { var localStorageKey = window.location.href.replace(window.location.search, ''); var tmp_localStorageKeyVal = JSON.parse(window.localStorage.getItem(localStorageKey)); tmp_localStorageKeyVal.used_in_history=0; window.localStorage.setItem(localStorageKey, JSON.stringify(tmp_localStorageKeyVal)); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); var tmp_back_pager_limit=jQuery('<input type=\"hidden\" name=\"back_pager_limit\" class=\"pager_back_elements\">'); tmp_back_pager_limit.val(url_obj.back_pager_limit); var tmp_back_pager_offset=jQuery('<input type=\"hidden\" name=\"back_pager_offset\" class=\"pager_back_elements\">'); tmp_back_pager_offset.val(url_obj.back_pager_offset); var tmp_back_pager_search=jQuery('<input type=\"hidden\" name=\"back_pager_search\" class=\"pager_back_elements\">'); tmp_back_pager_search.val(url_obj.back_pager_search); var tmp_pager_search_input=jQuery('<input type=\"hidden\" name=\"pager_search_input\" class=\"pager_back_elements\">'); tmp_pager_search_input.val(url_obj.pager_search_input); jQuery('#myform').append(tmp_back_pager_limit); jQuery('#myform').append(tmp_back_pager_offset); jQuery('#myform').append(tmp_back_pager_search); jQuery('#myform').append(tmp_pager_search_input); jQuery('#myform').find(':not(.pager_back_elements)').prop('disabled',true); reset_bc(url_obj.back_pager_referrer); document.forms.myform.method='GET'; document.forms.myform.action=url_obj.back_pager_referrer; document.forms.myform.target='_self'; document.forms.myform.submit(); return false; }); jQuery.unblockUI(); // clear_searchbox(); }) function validateFloatKeyPress(el, evt,dec_number) { var dec_places = dec_number - 1; var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value.split('.'); if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } //just one dot (thanks ddlab) if(number.length>1 && charCode == 46){ return false; } //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); if( caratPos > dotPos && dotPos>-1 && (number[1].length > dec_places)){ return false; } return true; } function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart } function setMaxMinDate(thisObj,target,fromTo) { if(fromTo == "from") { target.datepicker("option", "minDate", thisObj.value); } if(fromTo == "to") { target.datepicker("option", "maxDate", thisObj.value); } } function initBackPagerVal(pageFile) { var current_url= window.location.href.replace(window.location.search, ''); var js_page_php_self = jQuery('#js_page_php_self').val(); current_url = current_url.replace(js_page_php_self,'') var localStorageKey = current_url+pageFile; var back_pager_obj={}; back_pager_obj.back_pager_limit=jQuery('#pager_limiter').val(); back_pager_obj.back_pager_offset=jQuery('#pager_selector').val(); back_pager_obj.back_pager_search=jQuery('#pager_search').val(); back_pager_obj.back_pager_search_input=jQuery('#pager_search_input').val(); back_pager_obj.back_pager_referrer=js_page_php_self; back_pager_obj.used_in_history=1; window.localStorage.setItem(localStorageKey, JSON.stringify(back_pager_obj)); } function lbl_menu_click(xsender) { var sidebarV = jQuery('.sidebar_con'); if(sidebarV.is(':visible')) { jQuery('body').css({ 'overflow': 'auto' }); } else { jQuery('body').css( 'overflow', 'hidden' ); } jQuery('.sidebar_con').toggle('slide' , {direction : "left"}, 250); jQuery('#menu2').toggle('slide' , {direction : "left"} , 270); jQuery('#menu_panel').hide(); // jQuery('.sidebar_con').hide(); } function vw_msg(msg) { alertify.alert(msg, function(){ window.open('trn_userpassword.php','_self') } ); } function lbl_menu2_click(xsender) { jQuery('#menu_panel').toggle('slide', { direction: "up"}, 500); jQuery('#sidebar').hide(); jQuery('#sidebar2').hide(); } function logout_click() { alertify.confirm('Are you sure you want to logout?', function() { blockui(); var xdata= "txt_action=logout"; jQuery.ajax({ type : 'post', data : xdata, url : '../login_proc.php', success : function (xretobj) { window.open('../login_view.php','_self') } }); }); } function filterSubdryChild(obj, $class) { if(obj.value != '') { jQuery('.'+$class).each(function() { var prevSelVal = jQuery(this).val(); jQuery(this).find("optgroup").hide(); jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").show(); if(jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').length>0) { jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').prop('selected',true); } else { jQuery(this).val(''); } }) } else { jQuery('.'+$class).each(function() { jQuery(this).find("optgroup").show(); }) jQuery('.'+$class).val(''); } } function filterSubsidiary(obj, $id) { if(obj.value!='') { var selectedindex = jQuery(obj).context.selectedIndex; var subdrycde = jQuery(obj).find("option").eq(selectedindex).closest("optgroup").data("optgroup_code"); jQuery('#'+$id).val(subdrycde); jQuery('#'+$id).change(); } } function addValMaxLength(link_id = 'link_id', tblname, fldlencla, elmntid_arr, elmntfldnm_arr) { elmntid_arr.forEach((element_id, index, arr) =>{ jQuery("#"+element_id).addClass(fldlencla); jQuery("#"+element_id).attr("data-db_col", elmntfldnm_arr[index]); }); jQuery('.'+fldlencla).dbFldLen({ link_id: link_id, tablename: tblname, ajaxPage:'db_field_length_checker_ajax.php' }); } </script> <!-- 20190606 gian karlo - validates security code and redirects--> </head> <body style="margin : 0;height:auto;"> <style type="text/css"> .loginmodal * { margin: 0; padding: 0; box-sizing: border-box; font-size: 20px; } .loginmodal input { width: 100%; } .loginmodal input[type=password], .loginmodal input[type=button], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { outline: none; } .loginmodal input[type=password], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { border: none; background: none; color: #333; } .loginmodal { position: fixed; top: 0; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; background: -webkit-linear-gradient(rgba(255,255,255,0.75), #fff 70%); z-index: 9999; } .lm_container { align-self: center; padding: 50px 30px; width: 420px; height: 480px; background: #fff; /*box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1);*/ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); position: relative; } .lm_head { display: flex; justify-content: space-between; height: 50px; } .profpic { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; background: #627d4d; } .profpic img { width: 100%; height: 100%; object-fit: contain; } .logfrm { margin-top: 60px; } ._row { height: auto; display: flex; position: relative; } .logfrm .plchldr { color: #aaa; font-weight: 100; position: absolute; left: 0; align-self: center; transition: all 0.3s; } .logfrm .label { transform: translateY(-30px); font-size: 13px; color: ; } .pass_row { margin-top: 60px; } .pass_row .plchldr { /*position: relative;*/ } .logfrm input[type=password] { z-index: 1; border-bottom: 1px solid #ccc; padding: 10px 0; position: relative; } .b_bot { transform-origin: 157.5px center 0px; -webkit-transform: scaleX(0); transform: scaleX(0); width: 100%; height: 2px; background: #627d4d; position: absolute; bottom: -2px; left: 0; margin: 0; padding: 0; } .b_bot.focus { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*-moz-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ -webkit-animation: expandme 0.5s; -moz-animation: expandme 0.5s; animation: expandme 0.5s; transition: all 0.3s; } .b_bot.blur { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme 0.5s;*/ /*-moz-animation: expandme 0.5s;*/ /*animation: expandme 0.5s;*/ opacity: 0; transition: all 0.75s; } .lm_loginbtn { margin-top: 40px; display: flex; justify-content: flex-end; } .lm_loginbtn input { width: 90px; height: auto; padding: 10px 0; border: none; text-transform: uppercase; text-align: center; cursor: pointer; background: #627d4d; color: #fff; font-size: 14px; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1); transition: all 0.3s; } .lm_loginbtn input:hover { box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 4px rgba(20,20,20,0.2), 0 7px 15px rgba(0,0,0,0.15); } .lm_foot { width: 100%; height: auto; position: absolute; bottom: 30px; left: 0; text-align: center; } .lm_foot span { font-size: 12px; text-transform: capitalize; } @-webkit-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @-moz-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } </style> <div class="loginmodal" style="display:none"> <div class="lm_container"> <div class="lm_head"> <img class="head_logo" src="../img/../img/lst.png.png"> <div class="profpic"> <img src="img/user.png"> </div> </div> <div class="logfrm"> <div class="_row uid_row"> <input type="text" name="" id="lm_userid" value="josef" disabled> <span class="plchldr label">User ID</span> </div> <div class="_row pass_row"> <input type="password" name="" id="lm_pass"> <span class="plchldr">Enter your password</span> <div class="b_bot"></div> </div> <div class="lm_loginbtn"> <input type="button" name="" id="lm_loginbtn" value="LogIn"> </div> </div> <div class="lm_foot"> <span>lee systems technology ventures</span> </div> </div> </div> <script type="text/javascript"> $(function(){ $('._row').each(function(){ $(this).find('#lm_pass').on({ focus: function(){ $(this).siblings('.plchldr').addClass('label'); $(this).siblings('.b_bot').removeClass('blur').addClass('focus'); }, blur: function(){ if ($(this).val()!='') { $(this).siblings('.plchldr').addClass('label'); // $(this).siblings('.b_bot').addClass('focus'); } else { $(this).siblings('.plchldr').removeClass('label'); // $(this).siblings('.b_bot').removeClass('focus'); } $(this).siblings('.b_bot').removeClass('focus').addClass('blur'); } }) }) }) </script> <header id="header" style='background-color:'> <hgroup class="flex hgroup_cont"> <style type="text/css"> </style> <div class="head_title_logo_container"> <div class="head_logo"> <a href="main.php"> <img class="head_logo" src="../img/lst.png"> </a> </div> <div class="head_title"> lee systems technology ventures </div> </div> <div class="_program"> <ul> <li class="apptitle"> ESS </li> <li> <a href="print_git_version_pdf.php" target="_blank" id="vc_history_link">v2022.02.10.01</a> </li> </ul> </div> </hgroup> </header> <!-- end of header bar --> <section id="secondary_bar"> <div id="fixd_con"> <div class="user" > <label class="menu_label" onclick='lbl_menu_click(this);'>MENU</label> </div> <div class="breadcrumbs_container"> <article class="breadcrumbs" id="breadcrumbs"></article> </div> <div class='tbl_user' > <table cellspacing=0 cellpadding=0; style=''> <tr> <td width='75%' style='text-align: right;'> </td> <td width='75%' style='text-align: right;font-size: 14px;white-space:nowrap'>ADMIN</td> <td width='5%'><i style="padding:0 2px 0 15px" class="fa fa-user" aria-hidden="true"></i></td> <td width='20%' style='text-align: right;'><p onclick='logout_click();' >LOGOUT</p></td> </tr> </table> </div> </div> </section> <div id = "div_menu"> <div class="sidebar_con" style="display:none"> <aside id="sidebar" class="sidebar column" style=' width:100%; height: 94%; max-width:300px; min-width:300px;'> <script type='text/javascript'> jQuery(document).ready(function(){ load_bc('view_attendace_count.php'); load_menu(); }); function load_submenu(xsubmenu,xaccordion) { jQuery.ajax({ dataType : 'json', type : 'post', url : 'ajax_menu.php', data : {menu : xsubmenu , accordion : xaccordion, mentyp : 'submenu'}, success : function (xretobj) { jQuery('#div_menus').html(xretobj); if (xaccordion == 'true') { jQuery('#sidemenu').accordion({ collapsible: true, hideOnStartup: true, active: 0, fillSpace : true }); } } }); } function load_menu() { jQuery.ajax({ type : 'post', url : 'ajax_menu.php', dataType:'json', data : {mentyp : 'menu'}, success : function (xretobj) { jQuery('#sidebar').append(xretobj.form); // get_function(); mark_active(xretobj.active_menrecid); } }); } function load_page(xurl,cap,xmensub,menid) { blockui(); updateSessRecid(menid).done(function(xret) { reset_bc(); //20180214 gian karlo - clear back button history localStorage.clear(); window.location.href=xurl; }) } function updateSessRecid(menid) { return jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {menid : menid,event_action:'updateSessRecid'} }); } function mark_active(menid) { if(menid!='') { jQuery("h3#"+menid).css('background-color', "white"); if(jQuery("h3#"+menid).hasClass('menu_has_mensub')==true && jQuery("h3#"+menid).hasClass('active')==true) { jQuery("h3#"+menid).click(); } } } function load_page2(xmensub,menid) { jQuery('#menu2').block({ "message":"<h1>Please wait while menu is loading...</h1>", css: { width: '450px', border: 'none', padding: '15px', backgroundColor: '#000000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .9, color: '#E8E8E8' } }) jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {mensub : xmensub,menid:menid}, success:function(response) { jQuery(".menu_has_mensub").css('background-color', ""); jQuery("h3").removeClass("active"); jQuery('#menu2').html(response.form); jQuery('#menu2').css('width', response.menwidth); mark_active(menid); jQuery('#menu2').unblock(); } }); } function load_bc(url){ // alert(url); var params = "url="+url; //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ jQuery('#breadcrumbs').html(response); } }); } function reset_bc(url = ""){ var params = "xpar=reset_bc"; if(url != "") { params += "&url=" + url; } //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ // jQuery('#breadcrumbs').html(response); } }); } function load_sub(mensub) { jQuery('#sidebar').hide(); jQuery.ajax({ type : 'post', dataType:'json', url : 'ajax_mensub.php', data : {xmensub : mensub}, success : function (xretobj) { console.log(xretobj); jQuery('#sidebar2').append(xretobj); //~ jQuery('#sidebar').height('100%'); //~ get_function(); } }); jQuery('#sidebar2').toggle('fast'); } function backtomain() { jQuery('#sidebar2').hide(); jQuery('#sidebar2 h3').remove(); jQuery('#sidebar2 hr').remove(); jQuery('#sidebar').toggle('fast'); } //~ function get_function() //~ { //~ jQuery(' .toggle').hide(); //~ //~ var is_clicked = true; //~ var img1 = '../images/arrow1.png'; //~ var img2 = '../images/arrow2.png'; </script> </aside> </div> </div> <!-- <style> a{ color:black; } p{ font-size:15px; font-weight:700; } </style> --> <style> a{ color:black; } p{ font-size:15px; font-weight:700; } ._menu2 { display: none; z-index: 1002; position: absolute; float: left; width: 78%; margin-left: 299px; background: #fff; height: 85%; border: none !important; overflow-y: auto; } </style> <div id='menu2' class='_menu2'> <br> <center> <br> </div> <input type='hidden' name='mensub' id='mensub' value=''> <!-- 20190606 gian karlo - reminder for security code status--> <!-- Start Security Code Notifier --> <div id="lbl_bypass_seccode" style="width: 100%;height: 30px; background-color: #fff1c9;margin-top: 1px;text-align: center;font-size: 14px;display: flex;align-items: center;justify-content: center;"> <img src="bridge/images/sign-warning-icon.png" style="width: 20px;height:20px;"> <div> Security code is currently being bypassed for testing purposes. </div> </div> <!-- End Security Code Notifier --> <div id="main" style="height:auto;width:100%;display: none;"> <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > <input type="hidden" name="js_page_php_self" id="js_page_php_self" value="view_attendace_count.php"> <input type="hidden" name="current_menu_caption" id="current_menu_caption" value=""> <input type="hidden" name="link_id_hash_id" id="link_id_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <input type="hidden" name="link_id_hr_hash_id" id="link_id_hr_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <script type="text/javascript"> var cloned_txt_empfrm = ""; var cloned_txt_empto = ""; var sql_filter = ""; jQuery(document).ready(function() { cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txtsubdry").change(); }); function onchangesubdry(obj) { var xsubdrycde = jQuery(obj).val(); sql_filter = " AND e.subdrycde = '" + xsubdrycde + "'"; jQuery("#txt_emp_from").closest("td").html(cloned_txt_empfrm); jQuery("#txt_emp_to").closest("td").html(cloned_txt_empto); cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txt_emp_from").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_from'], orderBy: 'empcode' }); jQuery("#txt_emp_to").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_to'], orderBy: 'empcode' }); } function print() { var isValid = true; jQuery('.requried').removeClass('input_hasErr'); jQuery('.required:visible').each(function() { if (jQuery.trim(jQuery(this).val()) == '') { isValid = false; jQuery(this).addClass('input_hasErr'); } }); if (isValid == false) { alertify.alert('Please fill required field(s)'); } else { document.forms.myform.action='pdf_attendance_count.php'; document.forms.myform.method='post'; document.forms.myform.target='_blank'; document.forms.myform.submit(); } } </script> <center> <article class="module width_full" style='width:50%'> <header> <h3 id='lbl_header'> ADMIN ATTENDANCE COUNT REPORT </h3> </header> <br> <center> <table width='80%' class="defaultfontsize"> <tr> <td id='lbl_subdry'>Subsidiary: </td> <td> <select name='txtfilter[txtsubdry]' id='txtsubdry' class='input' onchange="filterSubdryChild(this, 'empfilt');onchangesubdry(this);"> <option value='SUB-0000000000000001'>WEBTKM</option> </select> </td> </tr> <tr> <td id='lbl_procdtefrm'>Cut-off Date From : </td> <td id='lbl_procdteto'> <input type='text' class='datepicker input required dtefrm' name='txtfilter[procdtefrm]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdteto'),'from')" id='txtfilter_procdtefrm' autocomplete="off"> To : <input type='text' class='datepicker input required dteto' name='txtfilter[procdteto]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdtefrm'),'to')" id='txtfilter_procdteto' autocomplete="off"> </td> </tr> <tr> <td id='lbl_department'>Department : </td> <td> <select name='txtfilter[deptcode]' id='sel_deptcode' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='DPT-0000000000000002' >Implementation</option><option value='DPT-0000000000000003' >Programmer</option><option value='DPT-0000000000000001' >Sales</option></optgroup> </select> </td> </tr> <tr> <td id='lbl_paygroup'>Payroll Group : </td> <td> <select name='txtfilter[paygroup]' id='sel_paygroup' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='Monthly' >Monthly</option><option value='SemiMonthly' >SemiMonthly</option><option value='Weekly' >Weekly</option></optgroup> </select> </td> </tr> <tr> <td id="lbl_emp_from">Employee From : </td> <td> <input type="text" class="input" id="txt_emp_from" readonly=""> </td> </tr> <tr> <td id="lbl_emp_to">Employee To : </td> <td> <input type="text" class="input" id="txt_emp_to" readonly=""> </td> </tr> <tr hidden> <td> <input type="hidden" id="hid_txt_emp_from" name="txtfilter[empfrom]"> <input type="hidden" id="hid_txt_emp_to" name="txtfilter[empto]"> </td> </tr> <tr> <td></td> <td> <input type="radio" value="detailed" id='rdo_format_det' checked name="txtfilter[repformat]">Detailed <input type="radio" value="summarized" id='rdo_format_sum' name="txtfilter[repformat]">Summarized </td> </tr> <tr height='10px'></tr> <tr> <td colspan='2' align='right'> <hr> <input type='button' id='btn_view' class='print' value='Print' onclick='print();'> </td> </tr> </table> <br> </center> </article> </center> </form> </div> <style> footer { } footer p { font-family: Calibri; font-weight: normal; text-align: center; font-size: 16px; padding: 10px 0; color: #111; margin: 0; } .ftr_containers { position: fixed; margin: 0 auto; bottom: 0; left: 0; right: 0; /*background: ;*/ background: #fff; z-index: 2; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.08), 0 0 20px rgba(0,0,0,0.05); } .ftr_containers a { color: #586949; text-align: center; } .ftr_containers span { position: absolute; top: 10px; left: 10px; } </style> <footer> <div class="ftr_containers" id="lbl_footer"> <p> <span> </span> Copyright © 2022 LEE Systems Technology Ventures Inc.</p> </div> </footer> </form> </body> </html> |
| Instances | 1 |
| Solution |
Configure CORS in a more restrictive way, to give access only the sites allowed to access your domain.
|
| Reference | N/A |
| Tags | |
| CWE Id | 942 |
| WASC Id | 14 |
| Plugin Id | 50000 |
|
Medium |
Hidden File Found |
|---|---|
| Description |
A sensitive file was identified as accessible or available. This may leak administrative, configuration, or credential information which can be leveraged by a malicious individual to further attack the system or conduct social engineering efforts.
|
| URL | http://192.168.2.47/adminer.php |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | HTTP/1.1 200 OK |
| Request Header - size: 697 bytes. |
GET http://192.168.2.47/adminer.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Content-Length: 0 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34; adminer_sid=h4vkshoc5u3c4jqk5qc2phe5ob; adminer_key=8914a73e3e6315c74ab113b220ac94e4 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,246 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:03:01 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Set-Cookie: adminer_key=8914a73e3e6315c74ab113b220ac94e4; path=/adminer.php; HttpOnly; SameSite=lax Cache-Control: no-cache X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Referrer-Policy: origin-when-cross-origin Vary: Accept-Encoding Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Length: 4297 Content-Type: text/html; charset=utf-8 |
| Response Body - size: 4,297 bytes. |
<!DOCTYPE html>
<html lang="en" dir="ltr"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="robots" content="noindex"> <title>Login - Adminer</title> <link rel="stylesheet" type="text/css" href="adminer.php?file=default.css&version=4.8.0"> <script src='adminer.php?file=functions.js&version=4.8.0' nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ="></script> <link rel="shortcut icon" type="image/x-icon" href="adminer.php?file=favicon.ico&version=4.8.0"> <link rel="apple-touch-icon" href="adminer.php?file=favicon.ico&version=4.8.0"> <body class="ltr nojs"> <script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ="> mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick, onload: partial(verifyVersion, '4.8.0', 'adminer.php?', '510873:289041')}); document.body.className = document.body.className.replace(/ nojs/, ' js'); var offlineMessage = 'You are offline.'; var thousandsSeparator = ','; </script> <div id="help" class="jush-sql jsonly hidden"></div> <script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ=">mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});</script> <div id="content"> <h2>Login</h2> <div id='ajaxstatus' class='jsonly hidden'></div> <form action='' method='post'> <div></div> <table cellspacing='0' class='layout'> <tr><th>System<td><select name='auth[driver]'><option value="server" selected>MySQL</select><script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ=">qsl('select').onchange = function () { loginDriver(this); };</script> <tr><th>Server<td><input name="auth[server]" value="" title="hostname[:port]" placeholder="localhost" autocapitalize="off"> <tr><th>Username<td><input name="auth[username]" id="username" value="" autocomplete="username" autocapitalize="off"><script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ=">focus(qs('#username')); qs('#username').form['auth[driver]'].onchange();</script> <tr><th>Password<td><input type="password" name="auth[password]" autocomplete="current-password"> <tr><th>Database<td><input name="auth[db]" value="" autocapitalize="off"> </table> <p><input type='submit' value='Login'> <label><input type='checkbox' name='auth[permanent]' value='1'>Permanent login</label> </form> </div> <form action='' method='post'> <div id='lang'>Language: <select name='lang'><option value="en" selected>English<option value="ar">العربية<option value="bg">Български<option value="bn">বাংলা<option value="bs">Bosanski<option value="ca">Català<option value="cs">Čeština<option value="da">Dansk<option value="de">Deutsch<option value="el">Ελληνικά<option value="es">Español<option value="et">Eesti<option value="fa">فارسی<option value="fi">Suomi<option value="fr">Français<option value="gl">Galego<option value="he">עברית<option value="hu">Magyar<option value="id">Bahasa Indonesia<option value="it">Italiano<option value="ja">日本語<option value="ka">ქართული<option value="ko">한국어<option value="lt">Lietuvių<option value="ms">Bahasa Melayu<option value="nl">Nederlands<option value="no">Norsk<option value="pl">Polski<option value="pt">Português<option value="pt-br">Português (Brazil)<option value="ro">Limba Română<option value="ru">Русский<option value="sk">Slovenčina<option value="sl">Slovenski<option value="sr">Српски<option value="sv">Svenska<option value="ta">தமிழ்<option value="th">ภาษาไทย<option value="tr">Türkçe<option value="uk">Українська<option value="vi">Tiếng Việt<option value="zh">简体中文<option value="zh-tw">繁體中文</select><script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ=">qsl('select').onchange = function () { this.form.submit(); };</script> <input type='submit' value='Use' class='hidden'> <input type='hidden' name='token' value='129249:154217'> </div> </form> <div id="menu"> <h1> <a href='https://www.adminer.org/' target="_blank" rel="noreferrer noopener" id='h1'>Adminer</a> <span class="version">4.8.0</span> <a href="https://www.adminer.org/#download" target="_blank" rel="noreferrer noopener" id="version"></a> </h1> </div> <script nonce="MzI2YTIxYmZiYWM1NjlhY2I0MTQyMWVjMTg4ZDEyMGQ=">setupSubmitHighlight(document);</script> |
| Instances | 1 |
| Solution |
Consider whether or not the component is actually required in production, if it isn't then disable it. If it is then ensure access to it requires appropriate authentication and authorization, or limit exposure to internal systems or specific source IPs, etc.
|
| Reference | https://blog.hboeck.de/archives/892-Introducing-Snallygaster-a-Tool-to-Scan-for-Secrets-on-Web-Servers.html |
| Tags |
OWASP_2021_A05
WSTG-v42-CONF-05 OWASP_2017_A06 |
| CWE Id | 538 |
| WASC Id | 13 |
| Plugin Id | 40035 |
|
Informational |
Cookie Slack Detector |
|---|---|
| Description |
Repeated GET requests: drop a different cookie each time, followed by normal request with all cookies to stabilize session, compare responses against original baseline GET. This can reveal areas where cookie based authentication/attributes are not actually enforced.
|
| URL | http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | |
| Request Header - size: 665 bytes. |
GET http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Content-Length: 0 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,284 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:03:03 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Allow-Methods: POST, GET, DELETE, PUT Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding X-XSS-Protection: 1; mode=block x-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Type: text/html; charset=utf-8 |
| Response Body - size: 43,407 bytes. |
<!DOCTYPE html>
<html> <head> <title>ESS</title> <link REL="SHORTCUT ICON" HREF="img/tab_title.ico"> <!-- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Lee Systems Technology Ventures"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-1.10.2.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-ui-1.10.4.custom.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/approval_js.js?v=20220221112125'></script><script type='text/javascript' src='../javascript/requisition_js.js?v=20220610092957'></script><script type='text/javascript' src='../lib/jquery/jquery.autonumeric.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/sha1.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/greaterdate_function.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.tablesorter.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/custom_modal.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.blockUI.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.equalHeight.js?v=20220209161344'></script><script type='text/javascript' src='../lib/alertify/alertify.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/jquery.tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/fullcalendar.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/db_field_length_checker/db_field_length_checker.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/db_field_length_checker/dbflc.css?v=20220209161344' /><script type='text/javascript' src='../javascript/jquery-ajax-progress-master/js/jquery.ajax-progress.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.inputmask.bundle.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/moment_js/moment.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/regex.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/lst_freeze_table/lst_freeze_table.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/jquery/1.8.9/css/green_style/jquery-ui-1.8.21.custom.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/table.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/layout_body_lst.css?v=20220222152840' /><link rel='stylesheet' type='text/css' href='../css/layout_header_lst.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/modified_layout.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/pager.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/alertify.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/themes/bootstrap.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/global_style.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/fullcalendar/fullcalendar.css?v=20220209161344' /><script type='text/javascript' src='../javascript/searchmodal/searchable.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/searchmodal/searchable.css?v=20220209161344' /><script type='text/javascript' src='../lib/customupload/customupload.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/DataTables/datatables.css?v=20220209161344' /><script type='text/javascript' src='../lib/DataTables/datatables.js?v=20220209161344'></script><script type='text/javascript' src='../lib/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/datetime-moment.js?v=20220209161344'></script><script type='text/javascript' src='../lib/js/hideshow.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../css/main.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/font-awesome-4.6.2/css/font-awesome.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/easytree/skin-lion/ui.easytree.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../javascript/lst_freeze_table/lst_freeze_table.css?v=20220209161344' /> <style type="text/css"> .button1, ::-webkit-scrollbar, ::-webkit-scrollbar-thumb, header#header, .gp, .ui-widget-header, .fc-day-header, .ui-widget-header, #msg-container tr:hover, .dash_btn_container figure .img_con, .dash_btn_container figure .img_con_2, .panel-header, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ .div_border_front2 table:nth-child(2) input[type="button"]{ background: #627d4d !important; } #msgboard_table td:first-child:hover{ border-left: 3px solid #627d4d; } .button1, .div_border_front2 table:nth-child(2) input[type="button"], .head_title, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ ._program li, #vc_history_link{ color: #fff; } .head_title, .apptitle { text-transform: uppercase; } #forgot, .searchable_container .fa.fa-search, #msgboard_table td:first-child, ::selection{ color: ; } .fc-day-header, .ui-widget-header, #msg-container tr:hover td, #msg-container tr:hover td * { color:white !important;; } </style><input type="hidden" value="" id="server_err_list_user_session_err"> <input type="hidden" value="" id="server_err_list_sql_err"> <input type="hidden" value="04-23-2019" id="pwd_date_expired"> <script type="text/javascript"> var lstv_errorHandlerValidated=0; jQuery(document).ready(function() { if(jQuery('#server_err_list_user_session_err').val()!="") { userSessionErrHandler(jQuery('#server_err_list_user_session_err').val()); } else if( jQuery('#server_err_list_sql_err').val()!="") { sqlErrHandler(jQuery('#server_err_list_sql_err').val()); } }) function getclientdir() { var xparams = jQuery('#myform *').serialize(); xparams += "&txt_action=getclientdir"; return jQuery.ajax({ dataType: 'json', type: 'post', data: xparams, url: '../login_validate_redirect.php' }); } function userSessionErrHandler(errorcode) { if(lstv_errorHandlerValidated==0) { if(errorcode=="0a46453dc2fb96ac3fe194c788a331d7b7d149c3") //initial login { alertify.alert('Initial Login. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="c8c6cbbef8b1cf3dea3ce00a2dddf1c837f34750") //password has been reset { alertify.alert('Your password has been reset. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="cd5ce33cf637740d1feeeced5d5bd30830e545e1") //password near to expired { alertify.alert('Your password will expire on '+jQuery('#pwd_date_expired').val()); } else if(errorcode=="3fa02d249aa151013b03059d2e2490cb9536844c") //password expired { alertify.alert('Password has already expired.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="e9367cf5c4f4a928b943c0335365afe3411fd753") //session_expired { alertify.alert('The system has been idle for too long, you need to Login again.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="228c66c5495e196abf5e45e6d8c58182b6f0ac80") //someone logged in { alertify.alert('Someone login in this account.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="76cb0c0d6ca6541d727e90fd9fb9b93f2b552c10") //must login { alertify.alert('You must login first.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } } lstv_errorHandlerValidated=1; } function sqlErrHandler(responseText) { alertify.alert(responseText); } $( window ).ajaxError(function( event, jqxhr, settings, thrownError ) { jQuery.unblockUI(); console.log(thrownError); if(jqxhr.responseText!=undefined) { var json_parse = JSON.parse(jqxhr.responseText); if(json_parse.user_session_err!=undefined) { userSessionErrHandler(json_parse.user_session_err); } else if(json_parse.sql_err!=undefined) { sqlErrHandler(json_parse.sql_err); } else { alertify.alert(jqxhr.responseText); } } }) function validatePageDataReq(page) { alertify.alert('Required data for this page are missing. Please try again.',function() { window.location=page; }) } </script> <style type="text/css"> .tbl_user p { margin: 0; } a.link { color : blue; } /* -------- 03/19 --------- */ * { letter-spacing: 0.04em; } input[type=file] { width: 0px; height: 0px; opacity: 0; } .cstmupldimg { width: 100%; height: 37px; max-width: 200px; background: #627d4d; display: flex; justify-content: flex-start; align-items: center; cursor: pointer; } .cstmupldimg i.fa { color: #fff; padding: 0 15px; } .cstmupldimg span { color: #fff; padding: 0 15px 0 0; display: block; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .datepicker_holiday_day a { background-color: #42B373 !important; background-image :none !important; color: #ffffff !important; } .datepicker_restday_day a { background-color: brown !important; background-image :none !important; color: #ffffff !important; } .flex.hgroup_cont { /*margin-top: 5px;*/ padding-left: 20px; padding-right: 20px; justify-content: space-between; } .head_title_logo_container { display: flex; align-content: center; align-items: flex-start; } </style> <script> //20180820 gian karlo - blockui global settings $.blockUI.defaults.ignoreIfBlocked=true; $.blockUI.defaults.focusInput=true; $.blockUI.defaults.focusableElements=""; $.blockUI.defaults.fadeIn=200; //20190926 gian karlo - jquery dialog default global option $.extend($.ui.dialog.prototype.options, { modal: true, resizable: false, draggable: false }); //20190226 gian karlo - jquery and blockui fix to disable jquery buttonpane buttons during block $.blockUI.defaults.onBlock=function(obj) { if(jQuery(':focus').hasClass('ui-button')) { var _jQueryUiButton = jQuery('.ui-button:focus'); _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button') .addClass('disabledByBlockUi') .prop('disabled',true); } }; $.blockUI.defaults.onUnblock=function() { if(jQuery('.disabledByBlockUi').length>0) { var _jQueryUiButton = jQuery('.disabledByBlockUi'); _jQueryUiButton.removeClass('disabledByBlockUi') .prop('disabled',false) _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button').prop('disabled'); } }; //20180420 gian karlo - alertify global settings alertify.defaults.maintainFocus = false; alertify.defaults.closable = false; alertify.defaults.modal = true; alertify.defaults.maximizable = false; alertify.defaults.resizable = false; alertify.defaults.closableByDimmer = false; alertify.defaults.glossary.title = "Employee Self Service"; //20180420 - gian karlo - dialog + alertify fix jQuery.ui.dialog.prototype._focusTabbable = function(){}; //20180420 - gian karlo - datepicker defaults jQuery.datepicker.setDefaults({ changeYear: true, changeMonth : true, dateFormat:'mm-dd-yy', yearRange: "-100:+1" }); var xplaceholder = 'mm-dd-yyyy'; function disable_autocomplete() { jQuery("textarea:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","new-password"); }); jQuery("input:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","off"); }); } //20180430 gian karlo - apply all input with datepicker classes on every ajax Sucess event jQuery( document ).ajaxComplete(function() { jQuery('.datepicker').datepicker(); apply_custom_fileinput(); disable_autocomplete(); }); //20190520 randle - for dynamically added input file jQuery(document).on("click",".cstmupldimg.dynamic",function(e) { var xfilename_container = jQuery(this).find('.xfilename'); var choosefile_str = jQuery(this).data('input_label')!=undefined ? jQuery(this).data('input_label'):'Choose File'; xfilename_container.html(choosefile_str); $(this).change(function(e){ if(e.target.files[0]!=undefined) { var fileName = e.target.files[0].name; // $(this).siblings('.cstmupldimg').find('.xfilename').html(fileName); $(this).find('.xfilename').html(fileName); jQuery(this).attr('title',fileName); } else { $(this).val(null); xfilename_container.html(choosefile_str); jQuery(this).attr('title',''); } }) if(e.originalEvent!=undefined) //20190404 gian karlo , determine that .cstmupldimg is click by the user and not programmatically { jQuery(this).find('.cstmupldfile').click(); } }); jQuery(document).ready(function() { //20180420 - gian karlo - datepicker default placeholder var pickerFn = jQuery.fn.datepicker; jQuery.fn.datepicker = function () { var datePicker = pickerFn.apply(this, arguments); var self = this; self.attr('placeholder', xplaceholder); // updateCalendarClearButton // console.log(jQuery('.hasDatepicker:not(.hasCalendarClearButton)').length); jQuery('.hasDatepicker:not(.hasDatepicker,.hasCalendarClearButton)').each(function() { var self = jQuery(this); self.wrap('<div class="CalendarClearButtonContainer"></div>') self.after('<i class="fa fa-times datepicker_clear_btn" aria-hidden="true" title="Clear Date"></i>'); self.next('.datepicker_clear_btn').on('click',function() { $.datepicker._clearDate( self ); }); self.closest('.CalendarClearButtonContainer').hover(function() { if(self.is(':disabled')===false) { self.next('.datepicker_clear_btn').show() } },function() { self.next('.datepicker_clear_btn').hide() }) self.addClass('hasCalendarClearButton'); }) datePicker.inputmask({ alias: "mm-dd-yyyy", showMaskOnHover: false, clearIncomplete: true}); return datePicker; }; var elementPosition = jQuery('#secondary_bar').offset(); if(jQuery('form#myform').height() >= 500) { jQuery('#main').css('min-height','700px'); } else { jQuery('#main').css('min-height','0'); } jQuery('.sidebar_con').hide(); jQuery('#menu2').hide(); blockui(); jQuery('#main').fadeIn(); apply_custom_fileinput(); disable_autocomplete(); }); jQuery(window).ready(function() { var localStorageKey = location.href.replace(location.search, ''); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); if(url_obj!=null) { if(url_obj.used_in_history==1 && document.referrer!="") { jQuery('.pager_back_button_container').show(); } } else { jQuery('.pager_back_button_container').remove(); } }) jQuery(window).load(function() { jQuery('body').on('click','.pager_back_button',function(e) { var localStorageKey = window.location.href.replace(window.location.search, ''); var tmp_localStorageKeyVal = JSON.parse(window.localStorage.getItem(localStorageKey)); tmp_localStorageKeyVal.used_in_history=0; window.localStorage.setItem(localStorageKey, JSON.stringify(tmp_localStorageKeyVal)); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); var tmp_back_pager_limit=jQuery('<input type=\"hidden\" name=\"back_pager_limit\" class=\"pager_back_elements\">'); tmp_back_pager_limit.val(url_obj.back_pager_limit); var tmp_back_pager_offset=jQuery('<input type=\"hidden\" name=\"back_pager_offset\" class=\"pager_back_elements\">'); tmp_back_pager_offset.val(url_obj.back_pager_offset); var tmp_back_pager_search=jQuery('<input type=\"hidden\" name=\"back_pager_search\" class=\"pager_back_elements\">'); tmp_back_pager_search.val(url_obj.back_pager_search); var tmp_pager_search_input=jQuery('<input type=\"hidden\" name=\"pager_search_input\" class=\"pager_back_elements\">'); tmp_pager_search_input.val(url_obj.pager_search_input); jQuery('#myform').append(tmp_back_pager_limit); jQuery('#myform').append(tmp_back_pager_offset); jQuery('#myform').append(tmp_back_pager_search); jQuery('#myform').append(tmp_pager_search_input); jQuery('#myform').find(':not(.pager_back_elements)').prop('disabled',true); reset_bc(url_obj.back_pager_referrer); document.forms.myform.method='GET'; document.forms.myform.action=url_obj.back_pager_referrer; document.forms.myform.target='_self'; document.forms.myform.submit(); return false; }); jQuery.unblockUI(); // clear_searchbox(); }) function validateFloatKeyPress(el, evt,dec_number) { var dec_places = dec_number - 1; var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value.split('.'); if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } //just one dot (thanks ddlab) if(number.length>1 && charCode == 46){ return false; } //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); if( caratPos > dotPos && dotPos>-1 && (number[1].length > dec_places)){ return false; } return true; } function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart } function setMaxMinDate(thisObj,target,fromTo) { if(fromTo == "from") { target.datepicker("option", "minDate", thisObj.value); } if(fromTo == "to") { target.datepicker("option", "maxDate", thisObj.value); } } function initBackPagerVal(pageFile) { var current_url= window.location.href.replace(window.location.search, ''); var js_page_php_self = jQuery('#js_page_php_self').val(); current_url = current_url.replace(js_page_php_self,'') var localStorageKey = current_url+pageFile; var back_pager_obj={}; back_pager_obj.back_pager_limit=jQuery('#pager_limiter').val(); back_pager_obj.back_pager_offset=jQuery('#pager_selector').val(); back_pager_obj.back_pager_search=jQuery('#pager_search').val(); back_pager_obj.back_pager_search_input=jQuery('#pager_search_input').val(); back_pager_obj.back_pager_referrer=js_page_php_self; back_pager_obj.used_in_history=1; window.localStorage.setItem(localStorageKey, JSON.stringify(back_pager_obj)); } function lbl_menu_click(xsender) { var sidebarV = jQuery('.sidebar_con'); if(sidebarV.is(':visible')) { jQuery('body').css({ 'overflow': 'auto' }); } else { jQuery('body').css( 'overflow', 'hidden' ); } jQuery('.sidebar_con').toggle('slide' , {direction : "left"}, 250); jQuery('#menu2').toggle('slide' , {direction : "left"} , 270); jQuery('#menu_panel').hide(); // jQuery('.sidebar_con').hide(); } function vw_msg(msg) { alertify.alert(msg, function(){ window.open('trn_userpassword.php','_self') } ); } function lbl_menu2_click(xsender) { jQuery('#menu_panel').toggle('slide', { direction: "up"}, 500); jQuery('#sidebar').hide(); jQuery('#sidebar2').hide(); } function logout_click() { alertify.confirm('Are you sure you want to logout?', function() { blockui(); var xdata= "txt_action=logout"; jQuery.ajax({ type : 'post', data : xdata, url : '../login_proc.php', success : function (xretobj) { window.open('../login_view.php','_self') } }); }); } function filterSubdryChild(obj, $class) { if(obj.value != '') { jQuery('.'+$class).each(function() { var prevSelVal = jQuery(this).val(); jQuery(this).find("optgroup").hide(); jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").show(); if(jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').length>0) { jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').prop('selected',true); } else { jQuery(this).val(''); } }) } else { jQuery('.'+$class).each(function() { jQuery(this).find("optgroup").show(); }) jQuery('.'+$class).val(''); } } function filterSubsidiary(obj, $id) { if(obj.value!='') { var selectedindex = jQuery(obj).context.selectedIndex; var subdrycde = jQuery(obj).find("option").eq(selectedindex).closest("optgroup").data("optgroup_code"); jQuery('#'+$id).val(subdrycde); jQuery('#'+$id).change(); } } function addValMaxLength(link_id = 'link_id', tblname, fldlencla, elmntid_arr, elmntfldnm_arr) { elmntid_arr.forEach((element_id, index, arr) =>{ jQuery("#"+element_id).addClass(fldlencla); jQuery("#"+element_id).attr("data-db_col", elmntfldnm_arr[index]); }); jQuery('.'+fldlencla).dbFldLen({ link_id: link_id, tablename: tblname, ajaxPage:'db_field_length_checker_ajax.php' }); } </script> <!-- 20190606 gian karlo - validates security code and redirects--> </head> <body style="margin : 0;height:auto;"> <style type="text/css"> .loginmodal * { margin: 0; padding: 0; box-sizing: border-box; font-size: 20px; } .loginmodal input { width: 100%; } .loginmodal input[type=password], .loginmodal input[type=button], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { outline: none; } .loginmodal input[type=password], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { border: none; background: none; color: #333; } .loginmodal { position: fixed; top: 0; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; background: -webkit-linear-gradient(rgba(255,255,255,0.75), #fff 70%); z-index: 9999; } .lm_container { align-self: center; padding: 50px 30px; width: 420px; height: 480px; background: #fff; /*box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1);*/ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); position: relative; } .lm_head { display: flex; justify-content: space-between; height: 50px; } .profpic { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; background: #627d4d; } .profpic img { width: 100%; height: 100%; object-fit: contain; } .logfrm { margin-top: 60px; } ._row { height: auto; display: flex; position: relative; } .logfrm .plchldr { color: #aaa; font-weight: 100; position: absolute; left: 0; align-self: center; transition: all 0.3s; } .logfrm .label { transform: translateY(-30px); font-size: 13px; color: ; } .pass_row { margin-top: 60px; } .pass_row .plchldr { /*position: relative;*/ } .logfrm input[type=password] { z-index: 1; border-bottom: 1px solid #ccc; padding: 10px 0; position: relative; } .b_bot { transform-origin: 157.5px center 0px; -webkit-transform: scaleX(0); transform: scaleX(0); width: 100%; height: 2px; background: #627d4d; position: absolute; bottom: -2px; left: 0; margin: 0; padding: 0; } .b_bot.focus { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*-moz-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ -webkit-animation: expandme 0.5s; -moz-animation: expandme 0.5s; animation: expandme 0.5s; transition: all 0.3s; } .b_bot.blur { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme 0.5s;*/ /*-moz-animation: expandme 0.5s;*/ /*animation: expandme 0.5s;*/ opacity: 0; transition: all 0.75s; } .lm_loginbtn { margin-top: 40px; display: flex; justify-content: flex-end; } .lm_loginbtn input { width: 90px; height: auto; padding: 10px 0; border: none; text-transform: uppercase; text-align: center; cursor: pointer; background: #627d4d; color: #fff; font-size: 14px; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1); transition: all 0.3s; } .lm_loginbtn input:hover { box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 4px rgba(20,20,20,0.2), 0 7px 15px rgba(0,0,0,0.15); } .lm_foot { width: 100%; height: auto; position: absolute; bottom: 30px; left: 0; text-align: center; } .lm_foot span { font-size: 12px; text-transform: capitalize; } @-webkit-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @-moz-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } </style> <div class="loginmodal" style="display:none"> <div class="lm_container"> <div class="lm_head"> <img class="head_logo" src="../img/../img/lst.png.png"> <div class="profpic"> <img src="img/user.png"> </div> </div> <div class="logfrm"> <div class="_row uid_row"> <input type="text" name="" id="lm_userid" value="josef" disabled> <span class="plchldr label">User ID</span> </div> <div class="_row pass_row"> <input type="password" name="" id="lm_pass"> <span class="plchldr">Enter your password</span> <div class="b_bot"></div> </div> <div class="lm_loginbtn"> <input type="button" name="" id="lm_loginbtn" value="LogIn"> </div> </div> <div class="lm_foot"> <span>lee systems technology ventures</span> </div> </div> </div> <script type="text/javascript"> $(function(){ $('._row').each(function(){ $(this).find('#lm_pass').on({ focus: function(){ $(this).siblings('.plchldr').addClass('label'); $(this).siblings('.b_bot').removeClass('blur').addClass('focus'); }, blur: function(){ if ($(this).val()!='') { $(this).siblings('.plchldr').addClass('label'); // $(this).siblings('.b_bot').addClass('focus'); } else { $(this).siblings('.plchldr').removeClass('label'); // $(this).siblings('.b_bot').removeClass('focus'); } $(this).siblings('.b_bot').removeClass('focus').addClass('blur'); } }) }) }) </script> <header id="header" style='background-color:'> <hgroup class="flex hgroup_cont"> <style type="text/css"> </style> <div class="head_title_logo_container"> <div class="head_logo"> <a href="main.php"> <img class="head_logo" src="../img/lst.png"> </a> </div> <div class="head_title"> lee systems technology ventures </div> </div> <div class="_program"> <ul> <li class="apptitle"> ESS </li> <li> <a href="print_git_version_pdf.php" target="_blank" id="vc_history_link">v2022.02.10.01</a> </li> </ul> </div> </hgroup> </header> <!-- end of header bar --> <section id="secondary_bar"> <div id="fixd_con"> <div class="user" > <label class="menu_label" onclick='lbl_menu_click(this);'>MENU</label> </div> <div class="breadcrumbs_container"> <article class="breadcrumbs" id="breadcrumbs"></article> </div> <div class='tbl_user' > <table cellspacing=0 cellpadding=0; style=''> <tr> <td width='75%' style='text-align: right;'> </td> <td width='75%' style='text-align: right;font-size: 14px;white-space:nowrap'>ADMIN</td> <td width='5%'><i style="padding:0 2px 0 15px" class="fa fa-user" aria-hidden="true"></i></td> <td width='20%' style='text-align: right;'><p onclick='logout_click();' >LOGOUT</p></td> </tr> </table> </div> </div> </section> <div id = "div_menu"> <div class="sidebar_con" style="display:none"> <aside id="sidebar" class="sidebar column" style=' width:100%; height: 94%; max-width:300px; min-width:300px;'> <script type='text/javascript'> jQuery(document).ready(function(){ load_bc('view_attendace_count.php'); load_menu(); }); function load_submenu(xsubmenu,xaccordion) { jQuery.ajax({ dataType : 'json', type : 'post', url : 'ajax_menu.php', data : {menu : xsubmenu , accordion : xaccordion, mentyp : 'submenu'}, success : function (xretobj) { jQuery('#div_menus').html(xretobj); if (xaccordion == 'true') { jQuery('#sidemenu').accordion({ collapsible: true, hideOnStartup: true, active: 0, fillSpace : true }); } } }); } function load_menu() { jQuery.ajax({ type : 'post', url : 'ajax_menu.php', dataType:'json', data : {mentyp : 'menu'}, success : function (xretobj) { jQuery('#sidebar').append(xretobj.form); // get_function(); mark_active(xretobj.active_menrecid); } }); } function load_page(xurl,cap,xmensub,menid) { blockui(); updateSessRecid(menid).done(function(xret) { reset_bc(); //20180214 gian karlo - clear back button history localStorage.clear(); window.location.href=xurl; }) } function updateSessRecid(menid) { return jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {menid : menid,event_action:'updateSessRecid'} }); } function mark_active(menid) { if(menid!='') { jQuery("h3#"+menid).css('background-color', "white"); if(jQuery("h3#"+menid).hasClass('menu_has_mensub')==true && jQuery("h3#"+menid).hasClass('active')==true) { jQuery("h3#"+menid).click(); } } } function load_page2(xmensub,menid) { jQuery('#menu2').block({ "message":"<h1>Please wait while menu is loading...</h1>", css: { width: '450px', border: 'none', padding: '15px', backgroundColor: '#000000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .9, color: '#E8E8E8' } }) jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {mensub : xmensub,menid:menid}, success:function(response) { jQuery(".menu_has_mensub").css('background-color', ""); jQuery("h3").removeClass("active"); jQuery('#menu2').html(response.form); jQuery('#menu2').css('width', response.menwidth); mark_active(menid); jQuery('#menu2').unblock(); } }); } function load_bc(url){ // alert(url); var params = "url="+url; //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ jQuery('#breadcrumbs').html(response); } }); } function reset_bc(url = ""){ var params = "xpar=reset_bc"; if(url != "") { params += "&url=" + url; } //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ // jQuery('#breadcrumbs').html(response); } }); } function load_sub(mensub) { jQuery('#sidebar').hide(); jQuery.ajax({ type : 'post', dataType:'json', url : 'ajax_mensub.php', data : {xmensub : mensub}, success : function (xretobj) { console.log(xretobj); jQuery('#sidebar2').append(xretobj); //~ jQuery('#sidebar').height('100%'); //~ get_function(); } }); jQuery('#sidebar2').toggle('fast'); } function backtomain() { jQuery('#sidebar2').hide(); jQuery('#sidebar2 h3').remove(); jQuery('#sidebar2 hr').remove(); jQuery('#sidebar').toggle('fast'); } //~ function get_function() //~ { //~ jQuery(' .toggle').hide(); //~ //~ var is_clicked = true; //~ var img1 = '../images/arrow1.png'; //~ var img2 = '../images/arrow2.png'; </script> </aside> </div> </div> <!-- <style> a{ color:black; } p{ font-size:15px; font-weight:700; } </style> --> <style> a{ color:black; } p{ font-size:15px; font-weight:700; } ._menu2 { display: none; z-index: 1002; position: absolute; float: left; width: 78%; margin-left: 299px; background: #fff; height: 85%; border: none !important; overflow-y: auto; } </style> <div id='menu2' class='_menu2'> <br> <center> <br> </div> <input type='hidden' name='mensub' id='mensub' value=''> <!-- 20190606 gian karlo - reminder for security code status--> <!-- Start Security Code Notifier --> <div id="lbl_bypass_seccode" style="width: 100%;height: 30px; background-color: #fff1c9;margin-top: 1px;text-align: center;font-size: 14px;display: flex;align-items: center;justify-content: center;"> <img src="bridge/images/sign-warning-icon.png" style="width: 20px;height:20px;"> <div> Security code is currently being bypassed for testing purposes. </div> </div> <!-- End Security Code Notifier --> <div id="main" style="height:auto;width:100%;display: none;"> <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > <input type="hidden" name="js_page_php_self" id="js_page_php_self" value="view_attendace_count.php"> <input type="hidden" name="current_menu_caption" id="current_menu_caption" value=""> <input type="hidden" name="link_id_hash_id" id="link_id_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <input type="hidden" name="link_id_hr_hash_id" id="link_id_hr_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <script type="text/javascript"> var cloned_txt_empfrm = ""; var cloned_txt_empto = ""; var sql_filter = ""; jQuery(document).ready(function() { cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txtsubdry").change(); }); function onchangesubdry(obj) { var xsubdrycde = jQuery(obj).val(); sql_filter = " AND e.subdrycde = '" + xsubdrycde + "'"; jQuery("#txt_emp_from").closest("td").html(cloned_txt_empfrm); jQuery("#txt_emp_to").closest("td").html(cloned_txt_empto); cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txt_emp_from").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_from'], orderBy: 'empcode' }); jQuery("#txt_emp_to").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_to'], orderBy: 'empcode' }); } function print() { var isValid = true; jQuery('.requried').removeClass('input_hasErr'); jQuery('.required:visible').each(function() { if (jQuery.trim(jQuery(this).val()) == '') { isValid = false; jQuery(this).addClass('input_hasErr'); } }); if (isValid == false) { alertify.alert('Please fill required field(s)'); } else { document.forms.myform.action='pdf_attendance_count.php'; document.forms.myform.method='post'; document.forms.myform.target='_blank'; document.forms.myform.submit(); } } </script> <center> <article class="module width_full" style='width:50%'> <header> <h3 id='lbl_header'> ADMIN ATTENDANCE COUNT REPORT </h3> </header> <br> <center> <table width='80%' class="defaultfontsize"> <tr> <td id='lbl_subdry'>Subsidiary: </td> <td> <select name='txtfilter[txtsubdry]' id='txtsubdry' class='input' onchange="filterSubdryChild(this, 'empfilt');onchangesubdry(this);"> <option value='SUB-0000000000000001'>WEBTKM</option> </select> </td> </tr> <tr> <td id='lbl_procdtefrm'>Cut-off Date From : </td> <td id='lbl_procdteto'> <input type='text' class='datepicker input required dtefrm' name='txtfilter[procdtefrm]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdteto'),'from')" id='txtfilter_procdtefrm' autocomplete="off"> To : <input type='text' class='datepicker input required dteto' name='txtfilter[procdteto]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdtefrm'),'to')" id='txtfilter_procdteto' autocomplete="off"> </td> </tr> <tr> <td id='lbl_department'>Department : </td> <td> <select name='txtfilter[deptcode]' id='sel_deptcode' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='DPT-0000000000000002' >Implementation</option><option value='DPT-0000000000000003' >Programmer</option><option value='DPT-0000000000000001' >Sales</option></optgroup> </select> </td> </tr> <tr> <td id='lbl_paygroup'>Payroll Group : </td> <td> <select name='txtfilter[paygroup]' id='sel_paygroup' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='Monthly' >Monthly</option><option value='SemiMonthly' >SemiMonthly</option><option value='Weekly' >Weekly</option></optgroup> </select> </td> </tr> <tr> <td id="lbl_emp_from">Employee From : </td> <td> <input type="text" class="input" id="txt_emp_from" readonly=""> </td> </tr> <tr> <td id="lbl_emp_to">Employee To : </td> <td> <input type="text" class="input" id="txt_emp_to" readonly=""> </td> </tr> <tr hidden> <td> <input type="hidden" id="hid_txt_emp_from" name="txtfilter[empfrom]"> <input type="hidden" id="hid_txt_emp_to" name="txtfilter[empto]"> </td> </tr> <tr> <td></td> <td> <input type="radio" value="detailed" id='rdo_format_det' checked name="txtfilter[repformat]">Detailed <input type="radio" value="summarized" id='rdo_format_sum' name="txtfilter[repformat]">Summarized </td> </tr> <tr height='10px'></tr> <tr> <td colspan='2' align='right'> <hr> <input type='button' id='btn_view' class='print' value='Print' onclick='print();'> </td> </tr> </table> <br> </center> </article> </center> </form> </div> <style> footer { } footer p { font-family: Calibri; font-weight: normal; text-align: center; font-size: 16px; padding: 10px 0; color: #111; margin: 0; } .ftr_containers { position: fixed; margin: 0 auto; bottom: 0; left: 0; right: 0; /*background: ;*/ background: #fff; z-index: 2; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.08), 0 0 20px rgba(0,0,0,0.05); } .ftr_containers a { color: #586949; text-align: center; } .ftr_containers span { position: absolute; top: 10px; left: 10px; } </style> <footer> <div class="ftr_containers" id="lbl_footer"> <p> <span> </span> Copyright © 2022 LEE Systems Technology Ventures Inc.</p> </div> </footer> </form> </body> </html> |
| Instances | 1 |
| Solution | |
| Reference | http://projects.webappsec.org/Fingerprinting |
| Tags |
OWASP_2021_A05
WSTG-v42-SESS-02 OWASP_2017_A06 |
| CWE Id | 200 |
| WASC Id | 45 |
| Plugin Id | 90027 |
|
Informational |
User Agent Fuzzer |
|---|---|
| Description |
Check for differences in response based on fuzzed User Agent (eg. mobile sites, access as a Search Engine Crawler). Compares the response statuscode and the hashcode of the response body with the original response.
|
| URL | http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php |
| Method | GET |
| Parameter | Header User-Agent |
| Attack | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 |
| Evidence | |
| Request Header - size: 690 bytes. |
GET http://192.168.2.47/online_test/web_standard_onedb//ess/main/view_attendace_count.php HTTP/1.1
Host: 192.168.2.47 Proxy-Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: en-US,en;q=0.9 Content-Length: 0 Cookie: lstv_ess_onedb_usrcde=admin; lstv_ess_onedb_cook_gl_comcde=ATESTWEBTKM; lstv_ess_onedb_sessid=mh6tbksjfektd2eakb4p8mnk34 |
| Request Body - size: 0 bytes. |
|
| Response Header - size: 1,284 bytes. |
HTTP/1.1 200 OK
Date: Wed, 15 Jun 2022 11:03:02 GMT Server: Apache Content-Security-Policy: script-src 'self' data: 'unsafe-inline' 'unsafe-eval' https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://yui.yahooapis.com http://ajax.googleapis.com https://ajax.googleapis.com; object-src 'self'; style-src 'self' data: 'unsafe-inline' https://maps.googleapis.com https://maps.gstatic.com https://fonts.googleapis.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com/; img-src 'self' data: https://maps.googleapis.com https://maps.gstatic.com https://www.gstatic.com http://icant.co.uk http://yui.yahooapis.com http://o.aolcdn.com http://maps.google.com; media-src 'self'; frame-src 'self'; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Access-Control-Allow-Methods: POST, GET, DELETE, PUT Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding X-XSS-Protection: 1; mode=block x-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Type: text/html; charset=utf-8 |
| Response Body - size: 43,527 bytes. |
<!DOCTYPE html>
<html> <head> <title>ESS</title> <link REL="SHORTCUT ICON" HREF="img/tab_title.ico"> <!-- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Lee Systems Technology Ventures"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-1.10.2.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/jquery/1.10.4/js/jquery-ui-1.10.4.custom.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/approval_js.js?v=20220221112125'></script><script type='text/javascript' src='../javascript/requisition_js.js?v=20220610092957'></script><script type='text/javascript' src='../lib/jquery/jquery.autonumeric.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/sha1.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/greaterdate_function.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.tablesorter.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/custom_modal.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.blockUI.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.equalHeight.js?v=20220209161344'></script><script type='text/javascript' src='../lib/alertify/alertify.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/tinymce/jquery.tinymce.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/fullcalendar/fullcalendar.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/db_field_length_checker/db_field_length_checker.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/db_field_length_checker/dbflc.css?v=20220209161344' /><script type='text/javascript' src='../javascript/jquery-ajax-progress-master/js/jquery.ajax-progress.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/jquery.inputmask.bundle.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/moment_js/moment.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/regex.js?v=20220209161344'></script><script type='text/javascript' src='../javascript/lst_freeze_table/lst_freeze_table.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/jquery/1.8.9/css/green_style/jquery-ui-1.8.21.custom.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/table.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/layout_body_lst.css?v=20220222152840' /><link rel='stylesheet' type='text/css' href='../css/layout_header_lst.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/modified_layout.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../css/pager.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/alertify.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/alertify/css/themes/bootstrap.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../css/global_style.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/fullcalendar/fullcalendar.css?v=20220209161344' /><script type='text/javascript' src='../javascript/searchmodal/searchable.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../javascript/searchmodal/searchable.css?v=20220209161344' /><script type='text/javascript' src='../lib/customupload/customupload.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../lib/DataTables/datatables.css?v=20220209161344' /><script type='text/javascript' src='../lib/DataTables/datatables.js?v=20220209161344'></script><script type='text/javascript' src='../lib/moment.min.js?v=20220209161344'></script><script type='text/javascript' src='../lib/datetime-moment.js?v=20220209161344'></script><script type='text/javascript' src='../lib/js/hideshow.js?v=20220209161344'></script><link rel='stylesheet' type='text/css' href='../css/main.css?v=20220209161343' /><link rel='stylesheet' type='text/css' href='../lib/font-awesome-4.6.2/css/font-awesome.min.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../lib/easytree/skin-lion/ui.easytree.css?v=20220209161344' /><link rel='stylesheet' type='text/css' href='../javascript/lst_freeze_table/lst_freeze_table.css?v=20220209161344' /> <link rel='stylesheet' type='text/css' href='../css/welcome_cms_css_mobile.css' /> <style type="text/css"> .button1, ::-webkit-scrollbar, ::-webkit-scrollbar-thumb, header#header, .gp, .ui-widget-header, .fc-day-header, .ui-widget-header, #msg-container tr:hover, .dash_btn_container figure .img_con, .dash_btn_container figure .img_con_2, .panel-header, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ .div_border_front2 table:nth-child(2) input[type="button"]{ background: #627d4d !important; } #msgboard_table td:first-child:hover{ border-left: 3px solid #627d4d; } .button1, .div_border_front2 table:nth-child(2) input[type="button"], .head_title, .ui-widget-header, /*.ui-dialog .ui-dialog-buttonpane button,*/ ._program li, #vc_history_link{ color: #fff; } .head_title, .apptitle { text-transform: uppercase; } #forgot, .searchable_container .fa.fa-search, #msgboard_table td:first-child, ::selection{ color: ; } .fc-day-header, .ui-widget-header, #msg-container tr:hover td, #msg-container tr:hover td * { color:white !important;; } </style><input type="hidden" value="" id="server_err_list_user_session_err"> <input type="hidden" value="" id="server_err_list_sql_err"> <input type="hidden" value="04-23-2019" id="pwd_date_expired"> <script type="text/javascript"> var lstv_errorHandlerValidated=0; jQuery(document).ready(function() { if(jQuery('#server_err_list_user_session_err').val()!="") { userSessionErrHandler(jQuery('#server_err_list_user_session_err').val()); } else if( jQuery('#server_err_list_sql_err').val()!="") { sqlErrHandler(jQuery('#server_err_list_sql_err').val()); } }) function getclientdir() { var xparams = jQuery('#myform *').serialize(); xparams += "&txt_action=getclientdir"; return jQuery.ajax({ dataType: 'json', type: 'post', data: xparams, url: '../login_validate_redirect.php' }); } function userSessionErrHandler(errorcode) { if(lstv_errorHandlerValidated==0) { if(errorcode=="0a46453dc2fb96ac3fe194c788a331d7b7d149c3") //initial login { alertify.alert('Initial Login. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="c8c6cbbef8b1cf3dea3ce00a2dddf1c837f34750") //password has been reset { alertify.alert('Your password has been reset. You are required to change your password.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="cd5ce33cf637740d1feeeced5d5bd30830e545e1") //password near to expired { alertify.alert('Your password will expire on '+jQuery('#pwd_date_expired').val()); } else if(errorcode=="3fa02d249aa151013b03059d2e2490cb9536844c") //password expired { alertify.alert('Password has already expired.',function(){ window.open('trn_userpassword.php','_self'); }); } else if(errorcode=="e9367cf5c4f4a928b943c0335365afe3411fd753") //session_expired { alertify.alert('The system has been idle for too long, you need to Login again.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="228c66c5495e196abf5e45e6d8c58182b6f0ac80") //someone logged in { alertify.alert('Someone login in this account.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } else if(errorcode=="76cb0c0d6ca6541d727e90fd9fb9b93f2b552c10") //must login { alertify.alert('You must login first.',function(){ getclientdir().done(function(ret) { var clientprogdir = ret.clientdir; if(clientprogdir != '' && clientprogdir != 'null' && clientprogdir != null){ window.open(clientprogdir, '_self'); }else{ window.open('../login_view.php','_self'); } }) }); } } lstv_errorHandlerValidated=1; } function sqlErrHandler(responseText) { alertify.alert(responseText); } $( window ).ajaxError(function( event, jqxhr, settings, thrownError ) { jQuery.unblockUI(); console.log(thrownError); if(jqxhr.responseText!=undefined) { var json_parse = JSON.parse(jqxhr.responseText); if(json_parse.user_session_err!=undefined) { userSessionErrHandler(json_parse.user_session_err); } else if(json_parse.sql_err!=undefined) { sqlErrHandler(json_parse.sql_err); } else { alertify.alert(jqxhr.responseText); } } }) function validatePageDataReq(page) { alertify.alert('Required data for this page are missing. Please try again.',function() { window.location=page; }) } </script> <style type="text/css"> .tbl_user p { margin: 0; } a.link { color : blue; } /* -------- 03/19 --------- */ * { letter-spacing: 0.04em; } input[type=file] { width: 0px; height: 0px; opacity: 0; } .cstmupldimg { width: 100%; height: 37px; max-width: 200px; background: #627d4d; display: flex; justify-content: flex-start; align-items: center; cursor: pointer; } .cstmupldimg i.fa { color: #fff; padding: 0 15px; } .cstmupldimg span { color: #fff; padding: 0 15px 0 0; display: block; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .datepicker_holiday_day a { background-color: #42B373 !important; background-image :none !important; color: #ffffff !important; } .datepicker_restday_day a { background-color: brown !important; background-image :none !important; color: #ffffff !important; } .flex.hgroup_cont { /*margin-top: 5px;*/ padding-left: 20px; padding-right: 20px; justify-content: space-between; } .head_title_logo_container { display: flex; align-content: center; align-items: flex-start; } </style> <script> //20180820 gian karlo - blockui global settings $.blockUI.defaults.ignoreIfBlocked=true; $.blockUI.defaults.focusInput=true; $.blockUI.defaults.focusableElements=""; $.blockUI.defaults.fadeIn=200; //20190926 gian karlo - jquery dialog default global option $.extend($.ui.dialog.prototype.options, { modal: true, resizable: false, draggable: false }); //20190226 gian karlo - jquery and blockui fix to disable jquery buttonpane buttons during block $.blockUI.defaults.onBlock=function(obj) { if(jQuery(':focus').hasClass('ui-button')) { var _jQueryUiButton = jQuery('.ui-button:focus'); _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button') .addClass('disabledByBlockUi') .prop('disabled',true); } }; $.blockUI.defaults.onUnblock=function() { if(jQuery('.disabledByBlockUi').length>0) { var _jQueryUiButton = jQuery('.disabledByBlockUi'); _jQueryUiButton.removeClass('disabledByBlockUi') .prop('disabled',false) _jQueryUiButton.parents('.ui-dialog-buttonpane').find('.ui-button').prop('disabled'); } }; //20180420 gian karlo - alertify global settings alertify.defaults.maintainFocus = false; alertify.defaults.closable = false; alertify.defaults.modal = true; alertify.defaults.maximizable = false; alertify.defaults.resizable = false; alertify.defaults.closableByDimmer = false; alertify.defaults.glossary.title = "Employee Self Service"; //20180420 - gian karlo - dialog + alertify fix jQuery.ui.dialog.prototype._focusTabbable = function(){}; //20180420 - gian karlo - datepicker defaults jQuery.datepicker.setDefaults({ changeYear: true, changeMonth : true, dateFormat:'mm-dd-yy', yearRange: "-100:+1" }); var xplaceholder = 'mm-dd-yyyy'; function disable_autocomplete() { jQuery("textarea:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","new-password"); }); jQuery("input:not(.disable_autocomplete)").each(function() { jQuery(this).addClass("disable_autocomplete"); jQuery(this).attr("autocomplete","off"); }); } //20180430 gian karlo - apply all input with datepicker classes on every ajax Sucess event jQuery( document ).ajaxComplete(function() { jQuery('.datepicker').datepicker(); apply_custom_fileinput(); disable_autocomplete(); }); //20190520 randle - for dynamically added input file jQuery(document).on("click",".cstmupldimg.dynamic",function(e) { var xfilename_container = jQuery(this).find('.xfilename'); var choosefile_str = jQuery(this).data('input_label')!=undefined ? jQuery(this).data('input_label'):'Choose File'; xfilename_container.html(choosefile_str); $(this).change(function(e){ if(e.target.files[0]!=undefined) { var fileName = e.target.files[0].name; // $(this).siblings('.cstmupldimg').find('.xfilename').html(fileName); $(this).find('.xfilename').html(fileName); jQuery(this).attr('title',fileName); } else { $(this).val(null); xfilename_container.html(choosefile_str); jQuery(this).attr('title',''); } }) if(e.originalEvent!=undefined) //20190404 gian karlo , determine that .cstmupldimg is click by the user and not programmatically { jQuery(this).find('.cstmupldfile').click(); } }); jQuery(document).ready(function() { //20180420 - gian karlo - datepicker default placeholder var pickerFn = jQuery.fn.datepicker; jQuery.fn.datepicker = function () { var datePicker = pickerFn.apply(this, arguments); var self = this; self.attr('placeholder', xplaceholder); // updateCalendarClearButton // console.log(jQuery('.hasDatepicker:not(.hasCalendarClearButton)').length); jQuery('.hasDatepicker:not(.hasDatepicker,.hasCalendarClearButton)').each(function() { var self = jQuery(this); self.wrap('<div class="CalendarClearButtonContainer"></div>') self.after('<i class="fa fa-times datepicker_clear_btn" aria-hidden="true" title="Clear Date"></i>'); self.next('.datepicker_clear_btn').on('click',function() { $.datepicker._clearDate( self ); }); self.closest('.CalendarClearButtonContainer').hover(function() { if(self.is(':disabled')===false) { self.next('.datepicker_clear_btn').show() } },function() { self.next('.datepicker_clear_btn').hide() }) self.addClass('hasCalendarClearButton'); }) datePicker.inputmask({ alias: "mm-dd-yyyy", showMaskOnHover: false, clearIncomplete: true}); return datePicker; }; var elementPosition = jQuery('#secondary_bar').offset(); if(jQuery('form#myform').height() >= 500) { jQuery('#main').css('min-height','700px'); } else { jQuery('#main').css('min-height','0'); } jQuery('.sidebar_con').hide(); jQuery('#menu2').hide(); blockui(); jQuery('#main').fadeIn(); apply_custom_fileinput(); disable_autocomplete(); }); jQuery(window).ready(function() { var localStorageKey = location.href.replace(location.search, ''); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); if(url_obj!=null) { if(url_obj.used_in_history==1 && document.referrer!="") { jQuery('.pager_back_button_container').show(); } } else { jQuery('.pager_back_button_container').remove(); } }) jQuery(window).load(function() { jQuery('body').on('click','.pager_back_button',function(e) { var localStorageKey = window.location.href.replace(window.location.search, ''); var tmp_localStorageKeyVal = JSON.parse(window.localStorage.getItem(localStorageKey)); tmp_localStorageKeyVal.used_in_history=0; window.localStorage.setItem(localStorageKey, JSON.stringify(tmp_localStorageKeyVal)); var url_obj = JSON.parse(window.localStorage.getItem(localStorageKey)); var tmp_back_pager_limit=jQuery('<input type=\"hidden\" name=\"back_pager_limit\" class=\"pager_back_elements\">'); tmp_back_pager_limit.val(url_obj.back_pager_limit); var tmp_back_pager_offset=jQuery('<input type=\"hidden\" name=\"back_pager_offset\" class=\"pager_back_elements\">'); tmp_back_pager_offset.val(url_obj.back_pager_offset); var tmp_back_pager_search=jQuery('<input type=\"hidden\" name=\"back_pager_search\" class=\"pager_back_elements\">'); tmp_back_pager_search.val(url_obj.back_pager_search); var tmp_pager_search_input=jQuery('<input type=\"hidden\" name=\"pager_search_input\" class=\"pager_back_elements\">'); tmp_pager_search_input.val(url_obj.pager_search_input); jQuery('#myform').append(tmp_back_pager_limit); jQuery('#myform').append(tmp_back_pager_offset); jQuery('#myform').append(tmp_back_pager_search); jQuery('#myform').append(tmp_pager_search_input); jQuery('#myform').find(':not(.pager_back_elements)').prop('disabled',true); reset_bc(url_obj.back_pager_referrer); document.forms.myform.method='GET'; document.forms.myform.action=url_obj.back_pager_referrer; document.forms.myform.target='_self'; document.forms.myform.submit(); return false; }); jQuery.unblockUI(); // clear_searchbox(); }) function validateFloatKeyPress(el, evt,dec_number) { var dec_places = dec_number - 1; var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value.split('.'); if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } //just one dot (thanks ddlab) if(number.length>1 && charCode == 46){ return false; } //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); if( caratPos > dotPos && dotPos>-1 && (number[1].length > dec_places)){ return false; } return true; } function getSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length) if (r.text == '') return o.value.length return o.value.lastIndexOf(r.text) } else return o.selectionStart } function setMaxMinDate(thisObj,target,fromTo) { if(fromTo == "from") { target.datepicker("option", "minDate", thisObj.value); } if(fromTo == "to") { target.datepicker("option", "maxDate", thisObj.value); } } function initBackPagerVal(pageFile) { var current_url= window.location.href.replace(window.location.search, ''); var js_page_php_self = jQuery('#js_page_php_self').val(); current_url = current_url.replace(js_page_php_self,'') var localStorageKey = current_url+pageFile; var back_pager_obj={}; back_pager_obj.back_pager_limit=jQuery('#pager_limiter').val(); back_pager_obj.back_pager_offset=jQuery('#pager_selector').val(); back_pager_obj.back_pager_search=jQuery('#pager_search').val(); back_pager_obj.back_pager_search_input=jQuery('#pager_search_input').val(); back_pager_obj.back_pager_referrer=js_page_php_self; back_pager_obj.used_in_history=1; window.localStorage.setItem(localStorageKey, JSON.stringify(back_pager_obj)); } function lbl_menu_click(xsender) { var sidebarV = jQuery('.sidebar_con'); if(sidebarV.is(':visible')) { jQuery('body').css({ 'overflow': 'auto' }); } else { jQuery('body').css( 'overflow', 'hidden' ); } jQuery('.sidebar_con').toggle('slide' , {direction : "left"}, 250); jQuery('#menu2').toggle('slide' , {direction : "left"} , 270); jQuery('#menu_panel').hide(); // jQuery('.sidebar_con').hide(); } function vw_msg(msg) { alertify.alert(msg, function(){ window.open('trn_userpassword.php','_self') } ); } function lbl_menu2_click(xsender) { jQuery('#menu_panel').toggle('slide', { direction: "up"}, 500); jQuery('#sidebar').hide(); jQuery('#sidebar2').hide(); } function logout_click() { alertify.confirm('Are you sure you want to logout?', function() { blockui(); var xdata= "txt_action=logout"; jQuery.ajax({ type : 'post', data : xdata, url : '../login_proc.php', success : function (xretobj) { window.open('../login_view.php','_self') } }); }); } function filterSubdryChild(obj, $class) { if(obj.value != '') { jQuery('.'+$class).each(function() { var prevSelVal = jQuery(this).val(); jQuery(this).find("optgroup").hide(); jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").show(); if(jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').length>0) { jQuery(this).find("optgroup[data-optgroup_code='"+obj.value+"']").find('option[value="'+prevSelVal+'"]').prop('selected',true); } else { jQuery(this).val(''); } }) } else { jQuery('.'+$class).each(function() { jQuery(this).find("optgroup").show(); }) jQuery('.'+$class).val(''); } } function filterSubsidiary(obj, $id) { if(obj.value!='') { var selectedindex = jQuery(obj).context.selectedIndex; var subdrycde = jQuery(obj).find("option").eq(selectedindex).closest("optgroup").data("optgroup_code"); jQuery('#'+$id).val(subdrycde); jQuery('#'+$id).change(); } } function addValMaxLength(link_id = 'link_id', tblname, fldlencla, elmntid_arr, elmntfldnm_arr) { elmntid_arr.forEach((element_id, index, arr) =>{ jQuery("#"+element_id).addClass(fldlencla); jQuery("#"+element_id).attr("data-db_col", elmntfldnm_arr[index]); }); jQuery('.'+fldlencla).dbFldLen({ link_id: link_id, tablename: tblname, ajaxPage:'db_field_length_checker_ajax.php' }); } </script> <!-- 20190606 gian karlo - validates security code and redirects--> </head> <body style="margin : 0;height:auto;"> <style type="text/css"> .loginmodal * { margin: 0; padding: 0; box-sizing: border-box; font-size: 20px; } .loginmodal input { width: 100%; } .loginmodal input[type=password], .loginmodal input[type=button], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { outline: none; } .loginmodal input[type=password], .loginmodal input[type=text], .loginmodal input[type=text]:disabled { border: none; background: none; color: #333; } .loginmodal { position: fixed; top: 0; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; background: -webkit-linear-gradient(rgba(255,255,255,0.75), #fff 70%); z-index: 9999; } .lm_container { align-self: center; padding: 50px 30px; width: 420px; height: 480px; background: #fff; /*box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1);*/ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); position: relative; } .lm_head { display: flex; justify-content: space-between; height: 50px; } .profpic { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; background: #627d4d; } .profpic img { width: 100%; height: 100%; object-fit: contain; } .logfrm { margin-top: 60px; } ._row { height: auto; display: flex; position: relative; } .logfrm .plchldr { color: #aaa; font-weight: 100; position: absolute; left: 0; align-self: center; transition: all 0.3s; } .logfrm .label { transform: translateY(-30px); font-size: 13px; color: ; } .pass_row { margin-top: 60px; } .pass_row .plchldr { /*position: relative;*/ } .logfrm input[type=password] { z-index: 1; border-bottom: 1px solid #ccc; padding: 10px 0; position: relative; } .b_bot { transform-origin: 157.5px center 0px; -webkit-transform: scaleX(0); transform: scaleX(0); width: 100%; height: 2px; background: #627d4d; position: absolute; bottom: -2px; left: 0; margin: 0; padding: 0; } .b_bot.focus { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*-moz-animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ /*animation: expandme .3s cubic-bezier(0.4, 0, 0.2, 1);*/ -webkit-animation: expandme 0.5s; -moz-animation: expandme 0.5s; animation: expandme 0.5s; transition: all 0.3s; } .b_bot.blur { -webkit-transform: scaleX(1); transform: scaleX(1); /*-webkit-animation: expandme 0.5s;*/ /*-moz-animation: expandme 0.5s;*/ /*animation: expandme 0.5s;*/ opacity: 0; transition: all 0.75s; } .lm_loginbtn { margin-top: 40px; display: flex; justify-content: flex-end; } .lm_loginbtn input { width: 90px; height: auto; padding: 10px 0; border: none; text-transform: uppercase; text-align: center; cursor: pointer; background: #627d4d; color: #fff; font-size: 14px; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 1px 3px rgba(20,20,20,0.15), 0 4px 10px rgba(0,0,0,0.1); transition: all 0.3s; } .lm_loginbtn input:hover { box-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 2px 4px rgba(20,20,20,0.2), 0 7px 15px rgba(0,0,0,0.15); } .lm_foot { width: 100%; height: auto; position: absolute; bottom: 30px; left: 0; text-align: center; } .lm_foot span { font-size: 12px; text-transform: capitalize; } @-webkit-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @-moz-keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } @keyframes expandme { 0% { -webkit-transform: scaleX(0); transform: scaleX(0); opacity: 0; } to { -webkit-transform: scaleX(1); transform: scaleX(1); opacity: 1; } } </style> <div class="loginmodal" style="display:none"> <div class="lm_container"> <div class="lm_head"> <img class="head_logo" src="../img/../img/lst.png.png"> <div class="profpic"> <img src="img/user.png"> </div> </div> <div class="logfrm"> <div class="_row uid_row"> <input type="text" name="" id="lm_userid" value="josef" disabled> <span class="plchldr label">User ID</span> </div> <div class="_row pass_row"> <input type="password" name="" id="lm_pass"> <span class="plchldr">Enter your password</span> <div class="b_bot"></div> </div> <div class="lm_loginbtn"> <input type="button" name="" id="lm_loginbtn" value="LogIn"> </div> </div> <div class="lm_foot"> <span>lee systems technology ventures</span> </div> </div> </div> <script type="text/javascript"> $(function(){ $('._row').each(function(){ $(this).find('#lm_pass').on({ focus: function(){ $(this).siblings('.plchldr').addClass('label'); $(this).siblings('.b_bot').removeClass('blur').addClass('focus'); }, blur: function(){ if ($(this).val()!='') { $(this).siblings('.plchldr').addClass('label'); // $(this).siblings('.b_bot').addClass('focus'); } else { $(this).siblings('.plchldr').removeClass('label'); // $(this).siblings('.b_bot').removeClass('focus'); } $(this).siblings('.b_bot').removeClass('focus').addClass('blur'); } }) }) }) </script> <header id="header" style='background-color:'> <hgroup class="flex hgroup_cont"> <style type="text/css"> </style> <div class="head_title_logo_container"> <div class="head_logo"> <a href="main.php"> <img class="head_logo" src="../img/lst.png"> </a> </div> <div class="head_title"> lee systems technology ventures </div> </div> <div class="_program"> <ul> <li class="apptitle"> ESS </li> <li> <a href="print_git_version_pdf.php" target="_blank" id="vc_history_link">v2022.02.10.01</a> </li> </ul> </div> </hgroup> </header> <!-- end of header bar --> <section id="secondary_bar"> <div id="fixd_con"> <div class="user" > <label class="menu_label" onclick='lbl_menu_click(this);'>MENU</label> </div> <div class="breadcrumbs_container"> <article class="breadcrumbs" id="breadcrumbs"></article> </div> <div class='tbl_user' > <table cellspacing=0 cellpadding=0; style=''> <tr> <td width='75%' style='text-align: right;'> </td> <td width='75%' style='text-align: right;font-size: 14px;white-space:nowrap'>ADMIN</td> <td width='5%'><i style="padding:0 2px 0 15px" class="fa fa-user" aria-hidden="true"></i></td> <td width='20%' style='text-align: right;'><i class="fa fa-arrow-right" aria-hidden="true" onclick='logout_click();'></i></td> </tr> </table> </div> </div> </section> <div id = "div_menu"> <div class="sidebar_con" style="display:none"> <aside id="sidebar" class="sidebar column" style=' width:100%; height: 94%; max-width:300px; min-width:300px;'> <script type='text/javascript'> jQuery(document).ready(function(){ load_bc('view_attendace_count.php'); load_menu(); }); function load_submenu(xsubmenu,xaccordion) { jQuery.ajax({ dataType : 'json', type : 'post', url : 'ajax_menu.php', data : {menu : xsubmenu , accordion : xaccordion, mentyp : 'submenu'}, success : function (xretobj) { jQuery('#div_menus').html(xretobj); if (xaccordion == 'true') { jQuery('#sidemenu').accordion({ collapsible: true, hideOnStartup: true, active: 0, fillSpace : true }); } } }); } function load_menu() { jQuery.ajax({ type : 'post', url : 'ajax_menu.php', dataType:'json', data : {mentyp : 'menu'}, success : function (xretobj) { jQuery('#sidebar').append(xretobj.form); // get_function(); mark_active(xretobj.active_menrecid); } }); } function load_page(xurl,cap,xmensub,menid) { blockui(); updateSessRecid(menid).done(function(xret) { reset_bc(); //20180214 gian karlo - clear back button history localStorage.clear(); window.location.href=xurl; }) } function updateSessRecid(menid) { return jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {menid : menid,event_action:'updateSessRecid'} }); } function mark_active(menid) { if(menid!='') { jQuery("h3#"+menid).css('background-color', "white"); if(jQuery("h3#"+menid).hasClass('menu_has_mensub')==true && jQuery("h3#"+menid).hasClass('active')==true) { jQuery("h3#"+menid).click(); } } } function load_page2(xmensub,menid) { jQuery('#menu2').block({ "message":"<h1>Please wait while menu is loading...</h1>", css: { width: '450px', border: 'none', padding: '15px', backgroundColor: '#000000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .9, color: '#E8E8E8' } }) jQuery.ajax({ url:"menu_view_ajax.php", type:"post", dataType:'json', data: {mensub : xmensub,menid:menid}, success:function(response) { jQuery(".menu_has_mensub").css('background-color', ""); jQuery("h3").removeClass("active"); jQuery('#menu2').html(response.form); jQuery('#menu2').css('width', response.menwidth); mark_active(menid); jQuery('#menu2').unblock(); } }); } function load_bc(url){ // alert(url); var params = "url="+url; //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ jQuery('#breadcrumbs').html(response); } }); } function reset_bc(url = ""){ var params = "xpar=reset_bc"; if(url != "") { params += "&url=" + url; } //~ alert(url); jQuery.ajax({ url:"cm_bread_ajax.php", type:"post", dataType:'json', data: params, success:function(response){ // jQuery('#breadcrumbs').html(response); } }); } function load_sub(mensub) { jQuery('#sidebar').hide(); jQuery.ajax({ type : 'post', dataType:'json', url : 'ajax_mensub.php', data : {xmensub : mensub}, success : function (xretobj) { console.log(xretobj); jQuery('#sidebar2').append(xretobj); //~ jQuery('#sidebar').height('100%'); //~ get_function(); } }); jQuery('#sidebar2').toggle('fast'); } function backtomain() { jQuery('#sidebar2').hide(); jQuery('#sidebar2 h3').remove(); jQuery('#sidebar2 hr').remove(); jQuery('#sidebar').toggle('fast'); } //~ function get_function() //~ { //~ jQuery(' .toggle').hide(); //~ //~ var is_clicked = true; //~ var img1 = '../images/arrow1.png'; //~ var img2 = '../images/arrow2.png'; </script> </aside> </div> </div> <!-- <style> a{ color:black; } p{ font-size:15px; font-weight:700; } </style> --> <style> a{ color:black; } p{ font-size:15px; font-weight:700; } ._menu2 { display: none; z-index: 1002; position: absolute; float: left; width: 78%; margin-left: 299px; background: #fff; height: 85%; border: none !important; overflow-y: auto; } </style> <div id='menu2' class='_menu2'> <br> <center> <br> </div> <input type='hidden' name='mensub' id='mensub' value=''> <!-- 20190606 gian karlo - reminder for security code status--> <!-- Start Security Code Notifier --> <div id="lbl_bypass_seccode" style="width: 100%;height: 30px; background-color: #fff1c9;margin-top: 1px;text-align: center;font-size: 14px;display: flex;align-items: center;justify-content: center;"> <img src="bridge/images/sign-warning-icon.png" style="width: 20px;height:20px;"> <div> Security code is currently being bypassed for testing purposes. </div> </div> <!-- End Security Code Notifier --> <div id="main" style="height:auto;width:100%;display: none;"> <form name = 'myform' id='myform' style='width:100%;float:right;' method='POST' > <input type="hidden" name="js_page_php_self" id="js_page_php_self" value="view_attendace_count.php"> <input type="hidden" name="current_menu_caption" id="current_menu_caption" value=""> <input type="hidden" name="link_id_hash_id" id="link_id_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <input type="hidden" name="link_id_hr_hash_id" id="link_id_hr_hash_id" value="cacbfb3087c714af46b11a0fd61b583114ed0376c7a1194f7cce30de9802db85"> <script type="text/javascript"> var cloned_txt_empfrm = ""; var cloned_txt_empto = ""; var sql_filter = ""; jQuery(document).ready(function() { cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txtsubdry").change(); }); function onchangesubdry(obj) { var xsubdrycde = jQuery(obj).val(); sql_filter = " AND e.subdrycde = '" + xsubdrycde + "'"; jQuery("#txt_emp_from").closest("td").html(cloned_txt_empfrm); jQuery("#txt_emp_to").closest("td").html(cloned_txt_empto); cloned_txt_empfrm = jQuery("#txt_emp_from").clone(); cloned_txt_empto = jQuery("#txt_emp_to").clone(); jQuery("#txt_emp_from").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_from'], orderBy: 'empcode' }); jQuery("#txt_emp_to").searchable( { modalTitle:'Search Employee', modalWidth:1050, modalHeight:500, table:'employeefile', tableCol:'empcode,fullname', tableColHeader: 'Employee Code,Full Name', link_id:'link_id_hr', searchCol:'fullname',//value needed to be fetched searchByDesc:['Employee Code'], searchByValue:['empcode'], sqlfilter: sql_filter, passValue:['empcode'], passValueTo:['hid_txt_emp_to'], orderBy: 'empcode' }); } function print() { var isValid = true; jQuery('.requried').removeClass('input_hasErr'); jQuery('.required:visible').each(function() { if (jQuery.trim(jQuery(this).val()) == '') { isValid = false; jQuery(this).addClass('input_hasErr'); } }); if (isValid == false) { alertify.alert('Please fill required field(s)'); } else { document.forms.myform.action='pdf_attendance_count.php'; document.forms.myform.method='post'; document.forms.myform.target='_blank'; document.forms.myform.submit(); } } </script> <center> <article class="module width_full" style='width:50%'> <header> <h3 id='lbl_header'> ADMIN ATTENDANCE COUNT REPORT </h3> </header> <br> <center> <table width='80%' class="defaultfontsize"> <tr> <td id='lbl_subdry'>Subsidiary: </td> <td> <select name='txtfilter[txtsubdry]' id='txtsubdry' class='input' onchange="filterSubdryChild(this, 'empfilt');onchangesubdry(this);"> <option value='SUB-0000000000000001'>WEBTKM</option> </select> </td> </tr> <tr> <td id='lbl_procdtefrm'>Cut-off Date From : </td> <td id='lbl_procdteto'> <input type='text' class='datepicker input required dtefrm' name='txtfilter[procdtefrm]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdteto'),'from')" id='txtfilter_procdtefrm' autocomplete="off"> To : <input type='text' class='datepicker input required dteto' name='txtfilter[procdteto]' onchange="setMaxMinDate(this,jQuery('#txtfilter_procdtefrm'),'to')" id='txtfilter_procdteto' autocomplete="off"> </td> </tr> <tr> <td id='lbl_department'>Department : </td> <td> <select name='txtfilter[deptcode]' id='sel_deptcode' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='DPT-0000000000000002' >Implementation</option><option value='DPT-0000000000000003' >Programmer</option><option value='DPT-0000000000000001' >Sales</option></optgroup> </select> </td> </tr> <tr> <td id='lbl_paygroup'>Payroll Group : </td> <td> <select name='txtfilter[paygroup]' id='sel_paygroup' class='input empfilt' onchange="filterSubsidiary(this, 'txtsubdry')"> <option></option><optgroup label="WEBTKM" data-optgroup_code="SUB-0000000000000001"><option value='Monthly' >Monthly</option><option value='SemiMonthly' >SemiMonthly</option><option value='Weekly' >Weekly</option></optgroup> </select> </td> </tr> <tr> <td id="lbl_emp_from">Employee From : </td> <td> <input type="text" class="input" id="txt_emp_from" readonly=""> </td> </tr> <tr> <td id="lbl_emp_to">Employee To : </td> <td> <input type="text" class="input" id="txt_emp_to" readonly=""> </td> </tr> <tr hidden> <td> <input type="hidden" id="hid_txt_emp_from" name="txtfilter[empfrom]"> <input type="hidden" id="hid_txt_emp_to" name="txtfilter[empto]"> </td> </tr> <tr> <td></td> <td> <input type="radio" value="detailed" id='rdo_format_det' checked name="txtfilter[repformat]">Detailed <input type="radio" value="summarized" id='rdo_format_sum' name="txtfilter[repformat]">Summarized </td> </tr> <tr height='10px'></tr> <tr> <td colspan='2' align='right'> <hr> <input type='button' id='btn_view' class='print' value='Print' onclick='print();'> </td> </tr> </table> <br> </center> </article> </center> </form> </div> <style> footer { } footer p { font-family: Calibri; font-weight: normal; text-align: center; font-size: 16px; padding: 10px 0; color: #111; margin: 0; } .ftr_containers { position: fixed; margin: 0 auto; bottom: 0; left: 0; right: 0; /*background: ;*/ background: #fff; z-index: 2; box-shadow: 0 0 1px rgba(0,0,0,0.2), 0 0 10px rgba(0,0,0,0.08), 0 0 20px rgba(0,0,0,0.05); } .ftr_containers a { color: #586949; text-align: center; } .ftr_containers span { position: absolute; top: 10px; left: 10px; } </style> <footer> <div class="ftr_containers" id="lbl_footer"> <p> <span> </span> Copyright © 2022 LEE Systems Technology Ventures Inc.</p> </div> </footer> </form> </body> </html> |
| Instances | 1 |
| Solution | |
| Reference | https://owasp.org/wstg |
| Tags | |
| CWE Id | |
| WASC Id | |
| Plugin Id | 10104 |