ing-web-es 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ing-web-es might be problematic. Click here for more details.
- package/45210.py +84 -0
- package/EMBEDDED_IFRAME_ON_WEB_PAGE.flv +0 -0
- package/FinalPoc.ogx +0 -0
- package/SCOPE_ing +20 -0
- package/brandportal.ing.com/dump-scripts.py +83 -0
- package/brandportal.ing.com/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/brandportal.ing.com/scripts/accounting.min.js +155 -0
- package/brandportal.ing.com/scripts/assetWindowContainer.bundle.js +23827 -0
- package/brandportal.ing.com/scripts/assets.js +1223 -0
- package/brandportal.ing.com/scripts/bootstrap-select.min.js +1287 -0
- package/brandportal.ing.com/scripts/bootstrap.min.js +1530 -0
- package/brandportal.ing.com/scripts/chosen.jquery.min.js +1238 -0
- package/brandportal.ing.com/scripts/core.main.js +1059 -0
- package/brandportal.ing.com/scripts/en_120.js +5247 -0
- package/brandportal.ing.com/scripts/hoverIntent.js +139 -0
- package/brandportal.ing.com/scripts/jquery-3.5.1.min.js +3242 -0
- package/brandportal.ing.com/scripts/jquery-ui-timepicker-addon.js +1471 -0
- package/brandportal.ing.com/scripts/jquery-ui.min.js +6711 -0
- package/brandportal.ing.com/scripts/jquery.are-you-sure.js +197 -0
- package/brandportal.ing.com/scripts/jquery.autotabs.js +42 -0
- package/brandportal.ing.com/scripts/jquery.backstretch.min.js +543 -0
- package/brandportal.ing.com/scripts/jquery.blockUI.js +442 -0
- package/brandportal.ing.com/scripts/jquery.datePicker.js +1151 -0
- package/brandportal.ing.com/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-audio.js +103 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-image.js +313 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-process.js +172 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-ui.js +700 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-validate.js +117 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-video.js +103 -0
- package/brandportal.ing.com/scripts/jquery.fileupload.js +1451 -0
- package/brandportal.ing.com/scripts/jquery.form.js +892 -0
- package/brandportal.ing.com/scripts/jquery.number.min.js +150 -0
- package/brandportal.ing.com/scripts/jquery.ui.datepicker-en.js +26 -0
- package/brandportal.ing.com/scripts/jquery.ui.timepicker-en.js +6 -0
- package/brandportal.ing.com/scripts/jquery.validate.min.js +844 -0
- package/brandportal.ing.com/scripts/layout.bundle.js +673 -0
- package/brandportal.ing.com/scripts/load-image.all.min.js +770 -0
- package/brandportal.ing.com/scripts/local.bundle.js +310 -0
- package/brandportal.ing.com/scripts/moment.min.js +1562 -0
- package/brandportal.ing.com/scripts/nl.js +88 -0
- package/brandportal.ing.com/scripts/paginator.js +267 -0
- package/brandportal.ing.com/scripts/popper.min.js +844 -0
- package/brandportal.ing.com/scripts/selectAssetBrowser.bundle.js +47577 -0
- package/brandportal.ing.com/scripts/selectables.custom.js +174 -0
- package/brandportal.ing.com/scripts/slick.min.js +687 -0
- package/brandportal.ing.com/scripts/superfish.js +279 -0
- package/brandportal.ing.com/scripts/upload-main.js +90 -0
- package/brandportal.ing.com/scripts/video.min.js +12517 -0
- package/brandportal.ing.com/scripts/videojs.wavesurfer.min.js +495 -0
- package/brandportal.ing.com/scripts/wavesurfer.min.js +2775 -0
- package/burping.json +783 -0
- package/dump-scripts.py +83 -0
- package/ing.com.txt +365 -0
- package/ing.com_200List.txt +30 -0
- package/ing.com_DIRSEARCH.txt +8220 -0
- package/ing_notes +1 -0
- package/nmap +1224 -0
- package/nuclei_ing.com.txt +9 -0
- package/package.json +12 -0
- package/poc.html +116 -0
- package/scope.txt +141 -0
- package/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/scripts/AliasCtrl.js +0 -0
- package/scripts/ChangePasswordCtrl.js +0 -0
- package/scripts/CustomErrorCtrl.js +0 -0
- package/scripts/ErrorCtrl.js +0 -0
- package/scripts/HeaderCtrl.js +0 -0
- package/scripts/LoginValidationService.js +0 -0
- package/scripts/NipValidator.js +0 -0
- package/scripts/Psd2AliasCtrl.js +0 -0
- package/scripts/RegonValidator.js +0 -0
- package/scripts/SmsCtrl.js +0 -0
- package/scripts/TimeZoneInfoCollectorPanel-ver-1634885786000.js +2 -0
- package/scripts/accounting.min.js +155 -0
- package/scripts/angular-animate.min.js +0 -0
- package/scripts/angular-cookies.min.js +0 -0
- package/scripts/angular-translate.min.js +0 -0
- package/scripts/angular-ui-router.js +0 -0
- package/scripts/angular.min.js +0 -0
- package/scripts/assetWindowContainer.bundle.js +23827 -0
- package/scripts/assets.js +1223 -0
- package/scripts/bootstrap-select.min.js +1287 -0
- package/scripts/bootstrap.min.js +1530 -0
- package/scripts/chosen.jquery.min.js +1238 -0
- package/scripts/core.main.js +1059 -0
- package/scripts/criticalMessageService.js +0 -0
- package/scripts/data-dir-cookies-bar.js +0 -0
- package/scripts/data-dir-progress-pie.js +0 -0
- package/scripts/dir-critical-message.js +0 -0
- package/scripts/dir-login-keyboard.js +0 -0
- package/scripts/dir-login-validation.js +0 -0
- package/scripts/en_120.js +5247 -0
- package/scripts/environment.js +22 -0
- package/scripts/gemius-init.js +0 -0
- package/scripts/gemiusID.js +0 -0
- package/scripts/hoverIntent.js +139 -0
- package/scripts/ing-vendor.min-ver-1634885786000.js +2 -0
- package/scripts/ing-ver-1634885786000.js +2 -0
- package/scripts/jquery-3.5.1.min.js +3242 -0
- package/scripts/jquery-ui-timepicker-addon.js +1471 -0
- package/scripts/jquery-ui.min.js +6711 -0
- package/scripts/jquery.are-you-sure.js +197 -0
- package/scripts/jquery.autotabs.js +42 -0
- package/scripts/jquery.backstretch.min.js +543 -0
- package/scripts/jquery.blockUI.js +442 -0
- package/scripts/jquery.datePicker.js +1151 -0
- package/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
- package/scripts/jquery.fileupload-audio.js +103 -0
- package/scripts/jquery.fileupload-image.js +313 -0
- package/scripts/jquery.fileupload-process.js +172 -0
- package/scripts/jquery.fileupload-ui.js +700 -0
- package/scripts/jquery.fileupload-validate.js +117 -0
- package/scripts/jquery.fileupload-video.js +103 -0
- package/scripts/jquery.fileupload.js +1451 -0
- package/scripts/jquery.form.js +892 -0
- package/scripts/jquery.number.min.js +150 -0
- package/scripts/jquery.ui.datepicker-en.js +26 -0
- package/scripts/jquery.ui.timepicker-en.js +6 -0
- package/scripts/jquery.validate.min.js +844 -0
- package/scripts/jsbn-ver-1634886518000.js +2 -0
- package/scripts/layout.bundle.js +673 -0
- package/scripts/load-image.all.min.js +770 -0
- package/scripts/local.bundle.js +310 -0
- package/scripts/login-app.js +0 -0
- package/scripts/login-en.js +0 -0
- package/scripts/login-pl.js +0 -0
- package/scripts/login-states.js +0 -0
- package/scripts/main.js +23 -0
- package/scripts/mobileAuthCtrl.js +0 -0
- package/scripts/moment.min.js +1562 -0
- package/scripts/mon_ing_init.js +22 -0
- package/scripts/nl.js +88 -0
- package/scripts/paginator.js +267 -0
- package/scripts/pinLoginDefault-ver-1634885786000.js +2 -0
- package/scripts/popper.min.js +844 -0
- package/scripts/prng4-ver-1634886518000.js +2 -0
- package/scripts/psd2-states.js +0 -0
- package/scripts/rng-ver-1634886518000.js +2 -0
- package/scripts/rsa_jsbn-ver-1634886518000.js +2 -0
- package/scripts/selectAssetBrowser.bundle.js +47577 -0
- package/scripts/selectables.custom.js +174 -0
- package/scripts/sgemius.js +0 -0
- package/scripts/sha1.js +0 -0
- package/scripts/slick.min.js +687 -0
- package/scripts/superfish.js +279 -0
- package/scripts/upload-main.js +90 -0
- package/scripts/video.min.js +12517 -0
- package/scripts/videojs.wavesurfer.min.js +495 -0
- package/scripts/wavesurfer.min.js +2775 -0
- package/scripts/webtrekk_v4-ver-1634885786000.js +2 -0
- package/setup-feature.js +47 -0
- package/start.ingbusiness.pl/dump-scripts.py +83 -0
- package/start.ingbusiness.pl/form.html_v=202110040949 +52 -0
- package/start.ingbusiness.pl/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/start.ingbusiness.pl/scripts/AliasCtrl.js +136 -0
- package/start.ingbusiness.pl/scripts/ChangePasswordCtrl.js +162 -0
- package/start.ingbusiness.pl/scripts/CustomErrorCtrl.js +9 -0
- package/start.ingbusiness.pl/scripts/ErrorCtrl.js +30 -0
- package/start.ingbusiness.pl/scripts/HeaderCtrl.js +84 -0
- package/start.ingbusiness.pl/scripts/LoginService.js +86 -0
- package/start.ingbusiness.pl/scripts/LoginValidationService.js +52 -0
- package/start.ingbusiness.pl/scripts/NipValidator.js +30 -0
- package/start.ingbusiness.pl/scripts/PasswordCtrl.js +179 -0
- package/start.ingbusiness.pl/scripts/Psd2AliasCtrl.js +12 -0
- package/start.ingbusiness.pl/scripts/RegonValidator.js +73 -0
- package/start.ingbusiness.pl/scripts/RequestService.js +26 -0
- package/start.ingbusiness.pl/scripts/SmsCtrl.js +91 -0
- package/start.ingbusiness.pl/scripts/UnlockUserCtrl.js +79 -0
- package/start.ingbusiness.pl/scripts/angular-animate.min.js +1535 -0
- package/start.ingbusiness.pl/scripts/angular-cookies.min.js +62 -0
- package/start.ingbusiness.pl/scripts/angular-translate.min.js +871 -0
- package/start.ingbusiness.pl/scripts/angular-ui-router.js +1561 -0
- package/start.ingbusiness.pl/scripts/angular.min.js +9845 -0
- package/start.ingbusiness.pl/scripts/criticalMessageService.js +24 -0
- package/start.ingbusiness.pl/scripts/data-dir-button-loader.js +30 -0
- package/start.ingbusiness.pl/scripts/data-dir-compile-template.js +17 -0
- package/start.ingbusiness.pl/scripts/data-dir-cookies-bar.js +37 -0
- package/start.ingbusiness.pl/scripts/data-dir-progress-pie.js +102 -0
- package/start.ingbusiness.pl/scripts/data-dir-svg-icon.js +633 -0
- package/start.ingbusiness.pl/scripts/data-gemius-event.js +119 -0
- package/start.ingbusiness.pl/scripts/dir-critical-message.js +9 -0
- package/start.ingbusiness.pl/scripts/dir-help-panel-content.js +29 -0
- package/start.ingbusiness.pl/scripts/dir-login-keyboard.js +346 -0
- package/start.ingbusiness.pl/scripts/dir-login-validation.js +20 -0
- package/start.ingbusiness.pl/scripts/dir-nav-links.js +26 -0
- package/start.ingbusiness.pl/scripts/dir-title.js +21 -0
- package/start.ingbusiness.pl/scripts/gemius-init.js +12 -0
- package/start.ingbusiness.pl/scripts/gemiusID.js +32 -0
- package/start.ingbusiness.pl/scripts/hashService.js +91 -0
- package/start.ingbusiness.pl/scripts/helpPanelPasswordService.js +26 -0
- package/start.ingbusiness.pl/scripts/helpPanelService.js +92 -0
- package/start.ingbusiness.pl/scripts/jquery-3.5.1.min.js +3242 -0
- package/start.ingbusiness.pl/scripts/login-app.js +107 -0
- package/start.ingbusiness.pl/scripts/login-en.js +73 -0
- package/start.ingbusiness.pl/scripts/login-pl.js +74 -0
- package/start.ingbusiness.pl/scripts/login-states.js +156 -0
- package/start.ingbusiness.pl/scripts/maskService.js +194 -0
- package/start.ingbusiness.pl/scripts/maskUtilService.js +302 -0
- package/start.ingbusiness.pl/scripts/mobileAuthCtrl.js +189 -0
- package/start.ingbusiness.pl/scripts/psd2-states.js +67 -0
- package/start.ingbusiness.pl/scripts/securityPolicyService.js +119 -0
- package/start.ingbusiness.pl/scripts/sgemius.js +257 -0
- package/start.ingbusiness.pl/scripts/sha1.js +210 -0
- package/start.ingbusiness.pl/scripts/sprintf.js +115 -0
- package/start.ingbusiness.pl/scripts/tabletScalingService.js +59 -0
- package/start.ingbusiness.pl/scripts/userAgentResolverService.js +12 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
angular.module('commons', []);
|
4
|
+
angular.module('converters', []);
|
5
|
+
angular.module('ingbolDirectives', []);
|
6
|
+
|
7
|
+
angular.module('validation', ['commons', 'converters']);
|
8
|
+
|
9
|
+
var loginApp = angular.module('loginApp', ['ingbolDirectives', 'ui.router.state', 'pascalprecht.translate', 'commons', 'ngCookies', 'validation']);
|
10
|
+
|
11
|
+
loginApp.service('httpRequestInterceptor', ['$q', '$injector', function($q, $injector) {
|
12
|
+
var handlers = [];
|
13
|
+
handlers[401] = handlers[403] = handlers[404] = 'maintenance';
|
14
|
+
handlers[500] = handlers[503] = 'error';
|
15
|
+
|
16
|
+
function handleError(response) {
|
17
|
+
// workaround for error: "Circular dependency found: $state"
|
18
|
+
var $state = $injector.get("$state");
|
19
|
+
|
20
|
+
if (response instanceof Error) {
|
21
|
+
$state.go('maintenance');
|
22
|
+
} else if (response && response.status) {
|
23
|
+
var statusHandlerState = handlers[response.status];
|
24
|
+
if (statusHandlerState) {
|
25
|
+
if (response.config.url && response.config.url.indexOf("maintenance.html") > -1) {
|
26
|
+
// error in retrieving error page, reload to avoid furhter tries
|
27
|
+
location.reload();
|
28
|
+
}
|
29
|
+
$state.go(statusHandlerState);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
return {
|
35
|
+
requestError: function(request) {
|
36
|
+
return $q.reject(request);
|
37
|
+
},
|
38
|
+
response: function(response) {
|
39
|
+
if (response && response.data && response.data.errors && response.data.errors.length > 0) {
|
40
|
+
var $state = $injector.get("$state");
|
41
|
+
$state.go('customError', {
|
42
|
+
errors: response.data.errors
|
43
|
+
});
|
44
|
+
return $q.reject(response);
|
45
|
+
}
|
46
|
+
return response || $q.when(response);
|
47
|
+
},
|
48
|
+
responseError: function(response) {
|
49
|
+
handleError(response);
|
50
|
+
return $q.reject(response);
|
51
|
+
}
|
52
|
+
};
|
53
|
+
}]);
|
54
|
+
|
55
|
+
loginApp.config(['$translateProvider', '$httpProvider', '$qProvider', '$compileProvider', function($translateProvider, $httpProvider, $qProvider, $compileProvider) {
|
56
|
+
$translateProvider.preferredLanguage('pl');
|
57
|
+
// sanitize nie działa z UTF-8: https://stackoverflow.com/questions/31002499/angular-translate-sanitisation-fails-with-utf-characters https://github.com/angular-translate/angular-translate/issues/1101
|
58
|
+
$translateProvider.useSanitizeValueStrategy('escape');
|
59
|
+
$httpProvider.interceptors.push('httpRequestInterceptor');
|
60
|
+
$qProvider.errorOnUnhandledRejections(false);
|
61
|
+
|
62
|
+
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|blob):/);
|
63
|
+
$compileProvider.debugInfoEnabled(false);
|
64
|
+
$compileProvider.commentDirectivesEnabled(false);
|
65
|
+
$compileProvider.cssClassDirectivesEnabled(false);
|
66
|
+
}]);
|
67
|
+
|
68
|
+
loginApp.run(['$state', '$rootScope', '$log', '$window', 'userAgentResolverService', function($state, $rootScope, $log, $window, userAgentResolverService) {
|
69
|
+
$rootScope.state = $state;
|
70
|
+
$rootScope.userAgentResolverService = userAgentResolverService;
|
71
|
+
|
72
|
+
$rootScope.$on('$stateChangeStart', function(event, toState) {
|
73
|
+
$log.log('Changing state to ' + toState.name);
|
74
|
+
if (toState.externalUrl) {
|
75
|
+
|
76
|
+
$window.open(toState.externalUrl, '_self');
|
77
|
+
if (toState.params) {
|
78
|
+
sessionStorage.setItem('loginParams', JSON.stringify(toState.params));
|
79
|
+
}
|
80
|
+
}
|
81
|
+
});
|
82
|
+
|
83
|
+
$rootScope.$on('$stateChangeError', function(event, toState) {
|
84
|
+
$log.error('Error during changing state to ' + toState.name);
|
85
|
+
});
|
86
|
+
|
87
|
+
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
|
88
|
+
$log.log('Changed state to ' + toState.name);
|
89
|
+
if (toParams.gemiusState) {
|
90
|
+
gemius_event('_view_', getGemiusID(), 'nazwa_strony=' + gemiusStates[toParams.gemiusState]);
|
91
|
+
}
|
92
|
+
});
|
93
|
+
|
94
|
+
$rootScope.$on('$viewContentLoaded', function(event) {
|
95
|
+
$log.log('DOM rendered: ' + event);
|
96
|
+
});
|
97
|
+
|
98
|
+
$rootScope.$on('$stateNotFound', function(event, unfoundState, fromState) {
|
99
|
+
$log.log('State not found: ' + unfoundState.to + ' (from: ' + fromState.name + ')');
|
100
|
+
});
|
101
|
+
}]);
|
102
|
+
|
103
|
+
window.onload = function() {
|
104
|
+
angular.bootstrap(document, ['loginApp'], {
|
105
|
+
strictDi: true
|
106
|
+
});
|
107
|
+
};
|
@@ -0,0 +1,73 @@
|
|
1
|
+
loginApp.config(['$translateProvider', function($translateProvider) {
|
2
|
+
$translateProvider.translations('en', {
|
3
|
+
HEADER: {
|
4
|
+
PAGE_TITLE: 'ING Business'
|
5
|
+
},
|
6
|
+
FORMS: {
|
7
|
+
TITLE: 'Login',
|
8
|
+
TITLE_OOBA: 'Confirm login in mobile app',
|
9
|
+
LOGIN: 'Enter your login',
|
10
|
+
LOGIN_LABEL: 'Create a new password for the login: ',
|
11
|
+
PASSWORD_FOR_LOGIN: 'Enter the password characters indicated for the login: ',
|
12
|
+
FIRST_LOGIN: 'Help with logging in',
|
13
|
+
FORGOT_LOGIN: 'Forgot my login',
|
14
|
+
UNLOCK: 'Forgot my password',
|
15
|
+
NEXT: 'Next',
|
16
|
+
SMS: 'Type SMS code no. {{smsNumber}} for login',
|
17
|
+
NEW_PASSWORD: 'New password',
|
18
|
+
REPEAT_PASSWORD: 'Repeat password',
|
19
|
+
ERROR_LOGIN: 'Unsuccessful login to ING Business',
|
20
|
+
BACK_TO_LOGIN: 'Back to login page',
|
21
|
+
BACK_TO_LOGIN_LINK: 'Go back to login page',
|
22
|
+
UNLOCK_USER: {
|
23
|
+
TITLE: 'Forgot my password',
|
24
|
+
NEXT: 'Send password'
|
25
|
+
},
|
26
|
+
UNLOCK_USER_RESULT: {
|
27
|
+
TITLE: 'We\'ve sent you a new password'
|
28
|
+
},
|
29
|
+
HELP: 'Help',
|
30
|
+
CRITICAL_MESSAGE: {
|
31
|
+
MORE_BUTTON: 'More'
|
32
|
+
},
|
33
|
+
NIP_REGON: 'Enter NIP or REGON',
|
34
|
+
MOBILE_AUTH: {
|
35
|
+
OPEN_MOBILE_APP_LINE1a: 'Login to ',
|
36
|
+
OPEN_MOBILE_APP_LINE1b: 'ING Business mobile app',
|
37
|
+
OPEN_MOBILE_APP_LINE2a: 'and make sure you see ',
|
38
|
+
OPEN_MOBILE_APP_LINE2b: 'the same image as below',
|
39
|
+
PREFER_SMS: 'I prefer to type in my password and confirm login with SMS code ',
|
40
|
+
SEND_SMS: 'Go to password input',
|
41
|
+
REMAINING_TIME: 'Remaining ',
|
42
|
+
REMAINING_TIME_SEC: ' sec.'
|
43
|
+
}
|
44
|
+
},
|
45
|
+
PASSWORD_STRENGTH: {
|
46
|
+
WEAK: 'weak',
|
47
|
+
MEDIUM: 'medium',
|
48
|
+
STRONG: 'strong'
|
49
|
+
},
|
50
|
+
ERRORS: {
|
51
|
+
ALIAS_REQUIRED: 'Enter your ING Business login',
|
52
|
+
PASSWORD_REQUIRED: 'Please fill in all fields',
|
53
|
+
INVALID_CODE: 'Incorrect SMS password',
|
54
|
+
INCORRECT_REPEAT: 'Your input does not match your new password',
|
55
|
+
POLICY_RULES: 'Password does not meet security policy rules',
|
56
|
+
CHANGE_PASSWORD_DISTINCT: 'You cannot repeat any of {{pswDistinct}} previous passwords',
|
57
|
+
NIP_REGON_REQUIRED: 'Enter NIP or REGON',
|
58
|
+
NIP_REGON_NOT_VALID: 'Enter valid NIP or REGON'
|
59
|
+
},
|
60
|
+
OTHER: {
|
61
|
+
KEYBOARD: 'On-screen keyboard',
|
62
|
+
BACK: 'Back',
|
63
|
+
DESKTOP_VERSION: 'desktop version',
|
64
|
+
TABLET_VERSION: 'tablet version'
|
65
|
+
},
|
66
|
+
COOKIES: {
|
67
|
+
CLOSE: 'Close',
|
68
|
+
INFO_1: 'This site uses cookie files.',
|
69
|
+
INFO_2: 'More information about cookies, their use and how to modify the acceptance of cookies can be found at',
|
70
|
+
INFO_3: 'Cookie policy.'
|
71
|
+
}
|
72
|
+
});
|
73
|
+
}]);
|
@@ -0,0 +1,74 @@
|
|
1
|
+
loginApp.config(['$translateProvider', function($translateProvider) {
|
2
|
+
$translateProvider.translations('pl', {
|
3
|
+
HEADER: {
|
4
|
+
PAGE_TITLE: 'ING Business'
|
5
|
+
},
|
6
|
+
FORMS: {
|
7
|
+
TITLE: 'Logowanie',
|
8
|
+
TITLE_OOBA: 'Potwierdź logowanie w aplikacji mobilnej',
|
9
|
+
LOGIN: 'Wpisz swój login',
|
10
|
+
LOGIN_LABEL: 'Utwórz nowe hasło dla loginu: ',
|
11
|
+
PASSWORD_FOR_LOGIN: 'Wpisz wskazane znaki hasła dla loginu: ',
|
12
|
+
FIRST_LOGIN: 'Pomoc w logowaniu',
|
13
|
+
FORGOT_LOGIN: 'Nie pamiętam loginu',
|
14
|
+
UNLOCK: 'Nie pamiętam hasła',
|
15
|
+
NEXT: 'Dalej',
|
16
|
+
SMS: 'Wpisz kod SMS nr {{smsNumber}} dla loginu',
|
17
|
+
NEW_PASSWORD: 'Nowe hasło',
|
18
|
+
REPEAT_PASSWORD: 'Powtórz hasło',
|
19
|
+
ERROR_LOGIN: 'Nie udało się zalogować do ING Business',
|
20
|
+
BACK_TO_LOGIN: 'Powrót do logowania',
|
21
|
+
BACK_TO_LOGIN_LINK: 'Wróć do logowania',
|
22
|
+
UNLOCK_USER: {
|
23
|
+
TITLE: 'Nie pamiętam hasła',
|
24
|
+
NEXT: 'Wyślij hasło'
|
25
|
+
},
|
26
|
+
UNLOCK_USER_RESULT: {
|
27
|
+
TITLE: 'Wysłaliśmy hasło startowe'
|
28
|
+
},
|
29
|
+
HELP: 'Pomoc',
|
30
|
+
CRITICAL_MESSAGE: {
|
31
|
+
MORE_BUTTON: 'Więcej'
|
32
|
+
},
|
33
|
+
NIP_REGON: 'Wpisz NIP lub REGON',
|
34
|
+
MOBILE_AUTH: {
|
35
|
+
OPEN_MOBILE_APP_LINE1a: 'Zaloguj się ',
|
36
|
+
OPEN_MOBILE_APP_LINE1b: 'do aplikacji mobilnej ING Business',
|
37
|
+
OPEN_MOBILE_APP_LINE2a: 'i upewnij się, że ',
|
38
|
+
OPEN_MOBILE_APP_LINE2b: 'obrazki są takie same',
|
39
|
+
PREFER_SMS: 'Wolę podać swoje hasło i potwierdzić logowanie kodem SMS ',
|
40
|
+
SEND_SMS: 'Przejdź do podania hasła',
|
41
|
+
REMAINING_TIME: 'Zostało ',
|
42
|
+
REMAINING_TIME_SEC: ' sek.'
|
43
|
+
}
|
44
|
+
},
|
45
|
+
PASSWORD_STRENGTH: {
|
46
|
+
WEAK: 'słabe',
|
47
|
+
MEDIUM: 'średnie',
|
48
|
+
STRONG: 'silne'
|
49
|
+
},
|
50
|
+
ERRORS: {
|
51
|
+
ALIAS_REQUIRED: 'Wpisz swój login do ING Business',
|
52
|
+
PASSWORD_REQUIRED: 'Uzupełnij wskazane pola',
|
53
|
+
INVALID_CODE: 'Błędny kod SMS',
|
54
|
+
INCORRECT_REPEAT: 'Niepoprawne powtórzenie nowego hasła',
|
55
|
+
POLICY_RULES: 'Hasło nie spełnia reguł polityki bezpieczeństwa',
|
56
|
+
CHANGE_PASSWORD_DISTINCT: 'Nowe hasło musi być różne od {{pswDistinct}} poprzednich',
|
57
|
+
NIP_REGON_REQUIRED: 'Wpisz NIP lub REGON',
|
58
|
+
NIP_REGON_NOT_VALID: 'Wpisz poprawny NIP lub REGON'
|
59
|
+
},
|
60
|
+
OTHER: {
|
61
|
+
KEYBOARD: 'Klawiatura ekranowa',
|
62
|
+
BACK: 'Wstecz',
|
63
|
+
DESKTOP_VERSION: 'wersja klasyczna',
|
64
|
+
TABLET_VERSION: 'wersja tabletowa'
|
65
|
+
},
|
66
|
+
COOKIES: {
|
67
|
+
CLOSE: 'Zamknij',
|
68
|
+
INFO_1: 'Ta witryna używa plików cookie.',
|
69
|
+
INFO_2: 'Więcej informacji o używanych przez nas plikach cookie, ich zastosowaniu i sposobie modyfikacji akceptacji plików cookie,' +
|
70
|
+
' można znaleźć na stronie',
|
71
|
+
INFO_3: 'Polityka plików cookie.'
|
72
|
+
}
|
73
|
+
});
|
74
|
+
}]);
|
@@ -0,0 +1,156 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
loginApp.config(['$stateProvider', 'psd2State', function($stateProvider, psd2State) {
|
4
|
+
|
5
|
+
var aliasState = {
|
6
|
+
templateUrl: 'alias/form.html?v=202110040949',
|
7
|
+
controller: 'AliasCtrl',
|
8
|
+
params: {
|
9
|
+
navLinks: {
|
10
|
+
showFirstLogin: true,
|
11
|
+
showForgotLogin: true,
|
12
|
+
showUnlock: true,
|
13
|
+
gemiusParamMiejsce: 'ekrany_logowania_login'
|
14
|
+
},
|
15
|
+
gemiusState: 'loginAlias'
|
16
|
+
}
|
17
|
+
};
|
18
|
+
|
19
|
+
var aliasStateUrl = angular.copy(aliasState);
|
20
|
+
aliasStateUrl.url = '';
|
21
|
+
// workaround for redundant hash in url
|
22
|
+
$stateProvider.state('default', aliasStateUrl);
|
23
|
+
|
24
|
+
var psd2AliasState = angular.copy(aliasState);
|
25
|
+
psd2AliasState.controller = 'Psd2AliasCtrl';
|
26
|
+
psd2AliasState.url = '/PSD2/:psd2SessionId';
|
27
|
+
|
28
|
+
$stateProvider.state('alias', aliasState);
|
29
|
+
|
30
|
+
$stateProvider.state('psd2Alias', psd2AliasState);
|
31
|
+
|
32
|
+
$stateProvider.state('password', {
|
33
|
+
templateUrl: 'password/form.html?v=202110040949',
|
34
|
+
controller: 'PasswordCtrl',
|
35
|
+
params: {
|
36
|
+
loginMask: '',
|
37
|
+
mask: [],
|
38
|
+
maskLength: 0,
|
39
|
+
alias: '',
|
40
|
+
navLinks: {
|
41
|
+
showFirstLogin: true,
|
42
|
+
showForgotLogin: true,
|
43
|
+
showUnlock: true,
|
44
|
+
gemiusParamMiejsce: 'ekrany_logowania_haslo'
|
45
|
+
},
|
46
|
+
gemiusState: 'maskLogin'
|
47
|
+
}
|
48
|
+
});
|
49
|
+
|
50
|
+
$stateProvider.state('changePassword', {
|
51
|
+
resolve: {
|
52
|
+
settings: ['loginService', function(loginService) {
|
53
|
+
return loginService.getPasswordSecurityPolicy();
|
54
|
+
}]
|
55
|
+
},
|
56
|
+
templateUrl: 'change/form.html?v=202110040949',
|
57
|
+
controller: 'ChangePasswordCtrl',
|
58
|
+
params: {
|
59
|
+
alias: '',
|
60
|
+
navLinks: {
|
61
|
+
showFirstLogin: true,
|
62
|
+
gemiusParamMiejsce: 'ekrany_logowania_pierwsze_logowanie_podaj_haslo'
|
63
|
+
},
|
64
|
+
gemiusState: 'changePassword'
|
65
|
+
}
|
66
|
+
});
|
67
|
+
|
68
|
+
$stateProvider.state('sms', {
|
69
|
+
templateUrl: 'sms/form.html?v=202110040949',
|
70
|
+
controller: 'SmsCtrl',
|
71
|
+
params: {
|
72
|
+
alias: '',
|
73
|
+
textToSign: '',
|
74
|
+
smsDailyNumber: 0,
|
75
|
+
smsReasonForGemius: '',
|
76
|
+
navLinks: {
|
77
|
+
showFirstLogin: true,
|
78
|
+
gemiusParamMiejsce: 'ekrany_logowania_podaj_sms'
|
79
|
+
},
|
80
|
+
gemiusState: 'smsAuthorization'
|
81
|
+
}
|
82
|
+
});
|
83
|
+
|
84
|
+
$stateProvider.state('unlockUser', {
|
85
|
+
url: '/unlockUser',
|
86
|
+
templateUrl: 'unlock-user/form.html?v=202110040949',
|
87
|
+
controller: 'UnlockUserCtrl',
|
88
|
+
params: {
|
89
|
+
gemiusState: 'unlockUser'
|
90
|
+
}
|
91
|
+
});
|
92
|
+
|
93
|
+
$stateProvider.state('error', {
|
94
|
+
templateUrl: 'error/form.html?v=202110040949',
|
95
|
+
controller: 'ErrorCtrl',
|
96
|
+
params: {
|
97
|
+
navLinks: {
|
98
|
+
showUnlock: true,
|
99
|
+
gemiusParamMiejsce: 'ekrany_logowania_blad_logowania'
|
100
|
+
},
|
101
|
+
gemiusState: 'loginError'
|
102
|
+
}
|
103
|
+
});
|
104
|
+
|
105
|
+
$stateProvider.state('customError', {
|
106
|
+
templateUrl: 'custom-error/form.html?v=202110040949',
|
107
|
+
controller: 'CustomErrorCtrl',
|
108
|
+
params: {
|
109
|
+
errors: [],
|
110
|
+
gemiusState: 'loginError'
|
111
|
+
}
|
112
|
+
});
|
113
|
+
|
114
|
+
$stateProvider.state('maintenance', {
|
115
|
+
templateUrl: 'maintenance.html?v=202110040949'
|
116
|
+
});
|
117
|
+
|
118
|
+
$stateProvider.state('index', {
|
119
|
+
externalUrl: '../index.jsp'
|
120
|
+
});
|
121
|
+
|
122
|
+
$stateProvider.state('mobileAuth', {
|
123
|
+
templateUrl: 'mobile-auth/form.html?v=202110040949',
|
124
|
+
controller: 'mobileAuthCtrl',
|
125
|
+
params: {
|
126
|
+
loginMask: '',
|
127
|
+
mask: [],
|
128
|
+
maskLength: 0,
|
129
|
+
alias: '',
|
130
|
+
timerOoba: 0,
|
131
|
+
frequencyTimer: 0,
|
132
|
+
gemiusState: 'mobileAuthorization',
|
133
|
+
pid: ''
|
134
|
+
},
|
135
|
+
resolve: {
|
136
|
+
previousState: ["$state", function($state) {
|
137
|
+
return {
|
138
|
+
name: $state.current.name,
|
139
|
+
params: $state.params,
|
140
|
+
URL: $state.href($state.current.name, $state.params)
|
141
|
+
};
|
142
|
+
}]
|
143
|
+
}
|
144
|
+
});
|
145
|
+
|
146
|
+
for (var property in psd2State) {
|
147
|
+
if (psd2State.hasOwnProperty(property)) {
|
148
|
+
var stateData = psd2State[property];
|
149
|
+
$stateProvider.state(stateData.state, {
|
150
|
+
externalUrl: stateData.externalUrl,
|
151
|
+
params: stateData.params
|
152
|
+
});
|
153
|
+
}
|
154
|
+
}
|
155
|
+
|
156
|
+
}]);
|
@@ -0,0 +1,194 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
angular.module('commons').service('maskService', ['hashService', 'maskUtilService', function(hashService, maskUtilService) {
|
4
|
+
|
5
|
+
// liczba masek (parametr)
|
6
|
+
var maskCount;
|
7
|
+
// tablica masek (MASK w postaci heksadecymalnej)
|
8
|
+
var masks = [];
|
9
|
+
// tablica zamaskowanych hasel (PASSMASKED' w
|
10
|
+
// postaci heksadecymalnej)
|
11
|
+
var passwords = [];
|
12
|
+
// tablica sum kwadratow indeksow niezamaskowanych
|
13
|
+
// pol dla kazdej maski
|
14
|
+
var powers = [];
|
15
|
+
// tablica dlugosci masek
|
16
|
+
var lengths = [];
|
17
|
+
// tablica skrotow SHA1(PASS+ALIAS) dla kazdego
|
18
|
+
// aliasu w postaci heksadecymalnej (modyfikacja
|
19
|
+
// hasla)
|
20
|
+
var sha1Passwords = [];
|
21
|
+
var maskChar = 5;
|
22
|
+
|
23
|
+
this.init = function(parameters) {
|
24
|
+
maskCount = parameters.maskCount;
|
25
|
+
maskChar = parameters.maskChar;
|
26
|
+
};
|
27
|
+
|
28
|
+
this.getMasks = function(newPassword, aliases) {
|
29
|
+
lengths.length = 0;
|
30
|
+
powers.length = 0;
|
31
|
+
masks.length = 0;
|
32
|
+
passwords.length = 0;
|
33
|
+
sha1Passwords.length = 0;
|
34
|
+
|
35
|
+
// wygenerowanie masek
|
36
|
+
for (var i = 0; i < maskCount; i++) {
|
37
|
+
var mask = this.createRandomMask(newPassword);
|
38
|
+
masks[i] = maskUtilService.arrayOfBytes2HexString(mask);
|
39
|
+
}
|
40
|
+
|
41
|
+
// wygenerowanie PASSMASKED' i HASH(PASS+ALIAS)
|
42
|
+
// dla kazdego aliasu
|
43
|
+
for (i = 0; i < aliases.length; i++) {
|
44
|
+
sha1Passwords[i] = hashService.calculateSHA1(newPassword + aliases[i]);
|
45
|
+
|
46
|
+
for (var j = 0; j < maskCount; j++) {
|
47
|
+
passwords[passwords.length] = maskUtilService.createPassMaskedBis(aliases[i], newPassword, maskUtilService.hexString2ArrayOfBytes(masks[j]));
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
return {
|
52
|
+
p_masks: masks.join(','),
|
53
|
+
p_passwords: passwords.join(','),
|
54
|
+
p_sha1_passwords: sha1Passwords.join(',')
|
55
|
+
};
|
56
|
+
};
|
57
|
+
|
58
|
+
// Funkcja na podstawie przekazanej maski tworzy
|
59
|
+
// tablice indeksow, ktore moga
|
60
|
+
// byc jeszcze wylosowane. Funkcja uwzglednia
|
61
|
+
// trywialnosc maski.
|
62
|
+
// Dopuszczalna liczba sasiadujacych pol
|
63
|
+
// niezamskowanych wynosi 3.
|
64
|
+
// Array mask1 - maska
|
65
|
+
this.createPossibleValueList = function(mask1) {
|
66
|
+
var mask2 = [];
|
67
|
+
maskUtilService.copyArray(mask1, mask2);
|
68
|
+
|
69
|
+
for (var i = 0; i < mask1.length - 3; i++) {
|
70
|
+
// pole zamaskowane
|
71
|
+
if (mask1[i] !== 0xFF) {
|
72
|
+
// trzy kolejne pola sa jedynkami
|
73
|
+
if (mask1[i + 1] === 0xFF && mask1[i + 2] === 0xFF && mask1[i + 3] === 0xFF) {
|
74
|
+
mask2[i] = -1;
|
75
|
+
}
|
76
|
+
} else {
|
77
|
+
// pole niezamaskowane
|
78
|
+
if (mask1[i + 1] === 0xFF && mask1[i + 2] === 0xFF && mask1[i + 3] !== 0xFF) {
|
79
|
+
mask2[i + 3] = -1;
|
80
|
+
} else if (mask1[i + 2] === 0xFF && mask1[i + 3] === 0xFF && mask1[i + 1] !== 0xFF) {
|
81
|
+
mask2[i + 1] = -1;
|
82
|
+
} else if (mask1[i + 1] === 0xFF && mask1[i + 3] === 0xFF && mask1[i + 2] !== 0xFF) {
|
83
|
+
mask2[i + 2] = -1;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
var possVal = [];
|
89
|
+
for (i = 0; i < mask2.length; i++) {
|
90
|
+
if (mask2[i] !== 0xFF && mask2[i] !== -1) {
|
91
|
+
possVal[possVal.length] = i;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
if (possVal.length === 0) {
|
96
|
+
return -1;
|
97
|
+
} else {
|
98
|
+
return possVal;
|
99
|
+
}
|
100
|
+
};
|
101
|
+
|
102
|
+
// Funkcja sprawdza czy maska jest unikalna
|
103
|
+
// Integer length1 - liczba niezamaskowanych pol
|
104
|
+
// Integer sum1 - suma kwadratow indeksow
|
105
|
+
// niezamaskowanych pol
|
106
|
+
this.isUniqueMask = function(length1, sum1) {
|
107
|
+
for (var i = 0; i < masks.length; i++) {
|
108
|
+
if (length1 === lengths[i] && sum1 === powers[i]) {
|
109
|
+
return false;
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
return true;
|
114
|
+
};
|
115
|
+
|
116
|
+
// Funkcja zwraca losowa, dopuszczalna liczbe
|
117
|
+
// niezamaskowanym pol w masce
|
118
|
+
// Liczba ta jest z przedzialu <4, pass.length - 5>
|
119
|
+
// String pass1 - haslo
|
120
|
+
this.getMaskFieldsCount = function() {
|
121
|
+
return maskChar;
|
122
|
+
};
|
123
|
+
|
124
|
+
// Funkcja tworzy tablice (maske) o rozmiarze rownym
|
125
|
+
// dlugosci hasla i wypelnia ja
|
126
|
+
// losowymi bajtami roznymi od 0xFF
|
127
|
+
// Integer len - dlugosc hasla
|
128
|
+
this.createEmptyMask = function(len) {
|
129
|
+
var emptyMask = [];
|
130
|
+
for (var i = 0; i < len; i++) {
|
131
|
+
emptyMask.push(maskUtilService.rand(254));
|
132
|
+
}
|
133
|
+
|
134
|
+
return emptyMask;
|
135
|
+
};
|
136
|
+
|
137
|
+
// Funkcja generuje pseudolosowa, niepowtarzalna i
|
138
|
+
// nietrywialna maske o pseudolosowej dlugosci.
|
139
|
+
// Obcina maske za ostatnim niezamaskowanym polem.
|
140
|
+
// String pass1 - haslo
|
141
|
+
this.createRandomMask = function(pass1) {
|
142
|
+
// maska
|
143
|
+
var mask = [];
|
144
|
+
// suma kwadratow indeksow
|
145
|
+
var sum = 0;
|
146
|
+
// liczba niezamaskowanych pol
|
147
|
+
var maskFieldsCount = 0;
|
148
|
+
|
149
|
+
// wygenerowanie niepowtarzalnej i nietrywialnej
|
150
|
+
// maski
|
151
|
+
do {
|
152
|
+
// utworzenie maski wypelnionej losowymi
|
153
|
+
// bajtami roznymi od 0xFF
|
154
|
+
mask = this.createEmptyMask(pass1.length);
|
155
|
+
// wylosowanie dlugosci maski
|
156
|
+
maskFieldsCount = this.getMaskFieldsCount(pass1);
|
157
|
+
// ustawienie tej zmiennej oznacza, ze nie
|
158
|
+
// da sie wygenerowac maski
|
159
|
+
var impas = false;
|
160
|
+
// wyzerowanie sumy kwadratow
|
161
|
+
sum = 0;
|
162
|
+
|
163
|
+
var possibleValues = this.createPossibleValueList(mask);
|
164
|
+
|
165
|
+
for (var i = 0; i < maskFieldsCount; i++) {
|
166
|
+
var randValue = maskUtilService.randArrayValue(possibleValues);
|
167
|
+
mask[randValue] = 0xFF;
|
168
|
+
possibleValues = this.createPossibleValueList(mask);
|
169
|
+
if (possibleValues === -1) {
|
170
|
+
impas = true;
|
171
|
+
break;
|
172
|
+
}
|
173
|
+
sum += maskUtilService.power(randValue);
|
174
|
+
}
|
175
|
+
if (impas) {
|
176
|
+
continue;
|
177
|
+
}
|
178
|
+
} while (!this.isUniqueMask(maskFieldsCount, sum));
|
179
|
+
|
180
|
+
// obciecie maski za ostatnim niezamaskowanym
|
181
|
+
// polem
|
182
|
+
while (mask[mask.length - 1] !== 0xFF) {
|
183
|
+
mask.length = mask.length - 1;
|
184
|
+
}
|
185
|
+
|
186
|
+
// wstawienie dlugosci i sumy do tablic
|
187
|
+
// globalnych
|
188
|
+
lengths[lengths.length] = maskFieldsCount;
|
189
|
+
powers[powers.length] = sum;
|
190
|
+
|
191
|
+
return mask;
|
192
|
+
};
|
193
|
+
|
194
|
+
}]);
|