|
@@ -603,7 +603,8 @@ function dolibarr_get_const($db, $name, $entity = 1)
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
if ($obj) {
|
|
|
- $value = $obj->value;
|
|
|
+ include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
|
|
+ $value = dolDecrypt($obj->value);
|
|
|
}
|
|
|
}
|
|
|
return $value;
|
|
@@ -651,11 +652,22 @@ function dolibarr_set_const($db, $name, $value, $type = 'chaine', $visible = 0,
|
|
|
$resql = $db->query($sql);
|
|
|
|
|
|
if (strcmp($value, '')) { // true if different. Must work for $value='0' or $value=0
|
|
|
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity)";
|
|
|
+ if (!preg_match('/^MAIN_LOGEVENTS/', $name) && (preg_match('/(_KEY|_EXPORTKEY|_SECUREKEY|_SERVERKEY|_PASS|_PASSWORD|_PW|_PW_TICKET|_PW_EMAILING|_SECRET|_SECURITY_TOKEN|_WEB_TOKEN)$/', $name))) {
|
|
|
+ // This seems a sensitive constant, we encrypt its value
|
|
|
+ // To list all sensitive constant, you can make a
|
|
|
+ // WHERE name like '%\_KEY' or name like '%\_EXPORTKEY' or name like '%\_SECUREKEY' or name like '%\_SERVERKEY' or name like '%\_PASS' or name like '%\_PASSWORD' or name like '%\_SECRET'
|
|
|
+ // or name like '%\_SECURITY_TOKEN' or name like '%\WEB_TOKEN'
|
|
|
+ include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
|
|
+ $newvalue = dolEncrypt($value);
|
|
|
+ } else {
|
|
|
+ $newvalue = $value;
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."const(name, value, type, visible, note, entity)";
|
|
|
$sql .= " VALUES (";
|
|
|
$sql .= $db->encrypt($name);
|
|
|
- $sql .= ", ".$db->encrypt($value);
|
|
|
- $sql .= ",'".$db->escape($type)."',".((int) $visible).",'".$db->escape($note)."',".((int) $entity).")";
|
|
|
+ $sql .= ", ".$db->encrypt($newvalue);
|
|
|
+ $sql .= ", '".$db->escape($type)."', ".((int) $visible).", '".$db->escape($note)."', ".((int) $entity).")";
|
|
|
|
|
|
//print "sql".$value."-".pg_escape_string($value)."-".$sql;exit;
|
|
|
//print "xx".$db->escape($value);
|