diff --git a/build/debian/copyright b/build/debian/copyright index 7310915203439578130b0b40d6412790becca8c3..deccd8cbe526292da92a9c0c54d372c8d842bd7a 100644 --- a/build/debian/copyright +++ b/build/debian/copyright @@ -159,7 +159,7 @@ Comments: Those files are not shipped in the binary package as we configure Dolibarr to use Dejavu fonts from "fonts-dejavu-core". -Files: docs/images/* +Files: doc/images/* Copyright: Laurent Destailleur License: CC-BY-SA-3.0 You are free: @@ -176,7 +176,7 @@ License: CC-BY-SA-3.0 . For more information, see http://creativecommons.org/licenses/by-sa/3.0/ -Files: htdocs/includes/fpdi/* +Files: htdocs/includes/fpdfi/* Copyright: 2004-2011 Setasign - Jan Slabon License: GPL-2+ This program is free software; you can redistribute it diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index ac105cf3fbaeec0bff56dbfe94d3908fd74a8042..bf68c61f9c036dab0f5ea6c7b50655cd535b40ba 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -1,6 +1,7 @@ <?php -/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net> - * Copyright (C) 2011-2014 Juanjo Menent <jmenent@2byte.es> +/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2011-2014 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2016 Raphaƫl Doursenaud <rdoursenaud@gpcsolutions.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,7 +89,7 @@ if ($actionsave) // Save nb of agenda if (! $error) { - $res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','alpha')),'chaine',0,'',$conf->entity); + $res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','int')),'chaine',0,'',$conf->entity); if (! $res > 0) $error++; if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; $MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB; @@ -201,9 +202,9 @@ while ($i <= $MAXAGENDA) // Nb print '<td width="180" class="nowrap">'.$langs->trans("AgendaExtNb",$key)."</td>"; // Name - print '<td><input type="text" class="flat hideifnotset" name="agenda_ext_name'.$key.'" value="'. (GETPOST('agenda_ext_name'.$key)?GETPOST('agenda_ext_name'.$key):$conf->global->$name) . '" size="28"></td>'; + print '<td><input type="text" class="flat hideifnotset" name="agenda_ext_name'.$key.'" value="'. (GETPOST('agenda_ext_name'.$key)?GETPOST('agenda_ext_name'.$key, 'alpha'):$conf->global->$name) . '" size="28"></td>'; // URL - print '<td><input type="url" class="flat hideifnotset" name="agenda_ext_src'.$key.'" value="'. (GETPOST('agenda_ext_src'.$key)?GETPOST('agenda_ext_src'.$key):$conf->global->$src) . '" size="60"></td>'; + print '<td><input type="url" class="flat hideifnotset" name="agenda_ext_src'.$key.'" value="'. (GETPOST('agenda_ext_src'.$key)?GETPOST('agenda_ext_src'.$key, 'alpha'):$conf->global->$src) . '" size="60"></td>'; // Color (Possible colors are limited by Google) print '<td class="nowrap" align="right">'; //print $formadmin->selectColor($conf->global->$color, "google_agenda_color".$key, $colorlist); diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index 05defaed9eb5aba9b8b63a2c7ec880f6e159cf92..699d4a64a99c91a3252e0d59d7d3f04b2e9e698c 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -19,7 +19,7 @@ * Upgrade scripts can be ran from command line with syntax: * * cd htdocs/install - * php upgrade.php 3.4.0 3.5.0 + * php upgrade.php 3.4.0 3.5.0 [dirmodule|ignoredbversion] * php upgrade2.php 3.4.0 3.5.0 * * Return code is 0 if OK, >0 if error @@ -54,7 +54,8 @@ $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto'; $langs->setDefaultLang($setuplang); $versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]); $versionto=GETPOST("versionto",'',3)?GETPOST("versionto",'',3):(empty($argv[2])?'':$argv[2]); -$versionmodule=GETPOST("versionmodule",'',3)?GETPOST("versionmodule",'',3):(empty($argv[3])?'':$argv[3]); +$versionmodule=(GETPOST("versionmodule",'',3) && GETPOST("versionmodule",'',3) != 'ignoredbversion')?GETPOST("versionmodule",'',3):((empty($argv[3]) || $argv[3] == 'ignoredbversion')?'':$argv[3]); +$ignoredbversion=(GETPOST('ignoredbversion','',3)=='ignoredbversion')?GETPOST('ignoredbversion','',3):((empty($argv[3]) || $argv[3] != 'ignoredbversion')?'':$argv[3]); $langs->load("admin"); $langs->load("install"); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 7fba7f50247039f7750742de9e5c7455c2fad729..90eac77440740bf1151cf374b08fcb9a4252451d 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -80,13 +80,15 @@ function test_sql_and_script_inject($val, $type) // For SQL Injection (only GET and POST are used to be included into bad escaped SQL requests) if ($type != 2) { - $sql_inj += preg_match('/delete[\s]+from/i', $val); - $sql_inj += preg_match('/create[\s]+table/i', $val); - $sql_inj += preg_match('/update.+set.+=/i', $val); - $sql_inj += preg_match('/insert[\s]+into/i', $val); - $sql_inj += preg_match('/select.+from/i', $val); - $sql_inj += preg_match('/union.+select/i', $val); - $sql_inj += preg_match('/(\.\.%2f)+/i', $val); + $sql_inj += preg_match('/delete\s+from/i', $val); + $sql_inj += preg_match('/create\s+table/i', $val); + $sql_inj += preg_match('/update.+set.+=/i', $val); + $sql_inj += preg_match('/insert\s+into/i', $val); + $sql_inj += preg_match('/select.+from/i', $val); + $sql_inj += preg_match('/union.+select/i', $val); + $sql_inj += preg_match('/into\s+(outfile|dumpfile)/i', $val); + $sql_inj += preg_match('/(\.\.%2f)+/i', $val); + $sql_inj += preg_match('/onerror=/i', $val); } // For XSS Injection done by adding javascript with script // This is all cases a browser consider text is javascript: @@ -94,7 +96,8 @@ function test_sql_and_script_inject($val, $type) // All examples on page: http://ha.ckers.org/xss.html#XSScalc $sql_inj += preg_match('/<script/i', $val); if (! defined('NOSTYLECHECK')) $sql_inj += preg_match('/<style/i', $val); - $sql_inj += preg_match('/base[\s]+href/i', $val); + $sql_inj += preg_match('/base[\s]+href/si', $val); + $sql_inj += preg_match('/<.*onmouse/si', $val); // onmouseover can be set on img or any html tag like <img title='>' onmouseover=alert(1)> if ($type == 1) { $sql_inj += preg_match('/javascript:/i', $val);