Add setting to disable javascript console.

This setting is enabled by default.
Signed-off-by: brantje <brantje@gmail.com>
This commit is contained in:
brantje 2017-01-18 20:44:44 +01:00
parent 79717ef152
commit fa13c071b0
No known key found for this signature in database
GPG key ID: 5FF1D117F918687F
6 changed files with 38 additions and 3 deletions

View file

@ -179,7 +179,6 @@ module.exports = function (grunt) {
mangle: false,
screwIE8: true,
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
footer: "(function() { (function a() { try { (function b(i) { if (('' + (i / i)).length !== 1 || i % 20 === 0) { (function() {}).constructor('debugger')(); } else { debugger; } b(++i); })(0); } catch (e) { setTimeout(a, 5000); } })() })();"
},
build: {
old_files_array: [

View file

@ -42,14 +42,33 @@
}
$rootScope.$on('settings_loaded', function(){
if (SettingsService.getSetting('disable_contextmenu') === '1' || SettingsService.getSetting('disable_contextmenu') === 1) {
if (SettingsService.isEnabled('disable_contextmenu')) {
document.addEventListener('contextmenu', function (event) {
event.preventDefault();
});
}
if (SettingsService.getSetting('https_check') === '0' || SettingsService.getSetting('https_check') === 0) {
if (SettingsService.isEnabled('https_check')) {
$scope.http_warning_hidden = true;
}
if(SettingsService.isEnabled('disable_debugger')){
(function a() {
try {
(function b(i) {
if (('' + (i / i)).length !== 1 || i % 20 === 0) {
(function() {}).constructor('debugger')();
} else {
// This debugger statement is allowed to block javascript console
/*jshint -W087 */
debugger;
}
b(++i);
})(0);
} catch (e) {
setTimeout(a, 5000);
}
})();
}
});
$rootScope.setHttpWarning = function (state) {

View file

@ -57,6 +57,9 @@
setSetting: function (name, value) {
settings[name] = value;
localStorageService.set('settings', settings);
},
isEnabled: function (name) {
return settings[name] === 1 || settings[name] === '1';
}
};
}]);

View file

@ -95,6 +95,7 @@ $(document).ready(function () {
$('#passman_check_version').prop('checked', (settings.getKey('check_version').toString().toLowerCase() === '1'));
$('#passman_https_check').prop('checked', (settings.getKey('https_check').toString().toLowerCase() === '1'));
$('#passman_disable_contextmenu').prop('checked', (settings.getKey('disable_contextmenu').toString().toLowerCase() === '1'));
$('#passman_disable_debugger').prop('checked', (settings.getKey('disable_debugger').toString().toLowerCase() === '1'));
$('#vault_key_strength').val(settings.getKey('vault_key_strength'));
@ -110,6 +111,10 @@ $(document).ready(function () {
settings.setAdminKey('disable_contextmenu', ($(this).is(":checked")) ? 1 : 0);
});
$('#passman_disable_debugger').change(function () {
settings.setAdminKey('disable_debugger', ($(this).is(":checked")) ? 1 : 0);
});
$('#passman_sharing_enabled').change(function () {
settings.setAdminKey('user_sharing_enabled', ($(this).is(":checked")) ? 1 : 0);
});

View file

@ -56,6 +56,7 @@ class SettingsService {
'disable_contextmenu' => intval($this->config->getAppValue('passman', 'disable_contextmenu', 1)),
'server_side_encryption' => $this->config->getAppValue('passman', 'server_side_encryption', 'aes-256-cbc'),
'rounds_pbkdf2_stretching' => $this->config->getAppValue('passman', 'rounds_pbkdf2_stretching', 100),
'disable_debugger' => $this->config->getAppValue('passman', 'disable_debugger', 1),
'settings_loaded' => 1
);
}

View file

@ -83,6 +83,14 @@ $ciphers = openssl_get_cipher_methods();
<?php p($l->t('Disable context menu')); ?>
</label>
</p>
<p>
<input type="checkbox" name="passman_disable_debugger"
id="passman_disable_debugger" class="checkbox"
value="0"/>
<label for="passman_disable_debugger">
<?php p($l->t('Disable javascript debugger')); ?>
</label>
</p>
<p>
<label for="vault_key_strength">Minimum vault key strength:</label>
<select name="vault_key_strength" id="vault_key_strength">