@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | * Test utilisateur |
| 16 | 16 | */ |
| 17 | 17 | if (isset($_GET['test_ecran_securite'])) |
| 18 | - $ecran_securite_raison = 'test '._ECRAN_SECURITE; |
|
| 18 | + $ecran_securite_raison = 'test '._ECRAN_SECURITE; |
|
| 19 | 19 | |
| 20 | 20 | /* |
| 21 | 21 | * Monitoring |
@@ -24,215 +24,215 @@ discard block |
||
| 24 | 24 | * le load depasse ECRAN_SECURITE_LOAD) |
| 25 | 25 | */ |
| 26 | 26 | if (!defined('_IS_BOT') and isset($_GET['var_isbot'])){ |
| 27 | - define('_IS_BOT', $_GET['var_isbot'] ? true : false); |
|
| 27 | + define('_IS_BOT', $_GET['var_isbot'] ? true : false); |
|
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | /* |
| 31 | 31 | * Détecteur de robot d'indexation |
| 32 | 32 | */ |
| 33 | 33 | if (!defined('_IS_BOT')){ |
| 34 | - define('_IS_BOT', |
|
| 35 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 36 | - and preg_match(',' |
|
| 37 | - . implode ('|', array( |
|
| 38 | - // mots generiques |
|
| 39 | - 'bot', |
|
| 40 | - 'slurp', |
|
| 41 | - 'crawler', |
|
| 42 | - 'crwlr', |
|
| 43 | - 'java', |
|
| 44 | - 'monitoring', |
|
| 45 | - 'spider', |
|
| 46 | - 'webvac', |
|
| 47 | - 'yandex', |
|
| 48 | - 'MSIE 6\.0', // botnet 99,9% du temps |
|
| 49 | - // UA plus cibles |
|
| 50 | - '200please', |
|
| 51 | - '80legs', |
|
| 52 | - 'a6-indexer', |
|
| 53 | - 'aboundex', |
|
| 54 | - 'accoona', |
|
| 55 | - 'acrylicapps', |
|
| 56 | - 'addthis', |
|
| 57 | - 'adressendeutschland', |
|
| 58 | - 'alexa', |
|
| 59 | - 'altavista', |
|
| 60 | - 'analyticsseo', |
|
| 61 | - 'antennapod', |
|
| 62 | - 'arachnys', |
|
| 63 | - 'archive', |
|
| 64 | - 'argclrint', |
|
| 65 | - 'aspseek', |
|
| 66 | - 'baidu', |
|
| 67 | - 'begunadvertising', |
|
| 68 | - 'bing', |
|
| 69 | - 'bloglines', |
|
| 70 | - 'buck', |
|
| 71 | - 'browsershots', |
|
| 72 | - 'bubing', |
|
| 73 | - 'butterfly', |
|
| 74 | - 'changedetection', |
|
| 75 | - 'charlotte', |
|
| 76 | - 'chilkat', |
|
| 77 | - 'china', |
|
| 78 | - 'coccoc', |
|
| 79 | - 'crowsnest', |
|
| 80 | - 'dataminr', |
|
| 81 | - 'daumoa', |
|
| 82 | - 'dlvr\.it', |
|
| 83 | - 'dlweb', |
|
| 84 | - 'drupal', |
|
| 85 | - 'ec2linkfinder', |
|
| 86 | - 'eset\.com', |
|
| 87 | - 'estyle', |
|
| 88 | - 'exalead', |
|
| 89 | - 'ezooms', |
|
| 90 | - 'facebookexternalhit', |
|
| 91 | - 'facebookplatform', |
|
| 92 | - 'fairshare', |
|
| 93 | - 'feedfetcher', |
|
| 94 | - 'feedfetcher-google', |
|
| 95 | - 'feedly', |
|
| 96 | - 'fetch', |
|
| 97 | - 'flipboardproxy', |
|
| 98 | - 'genieo', |
|
| 99 | - 'google', |
|
| 100 | - 'go-http-client', |
|
| 101 | - 'grapeshot', |
|
| 102 | - 'hatena-useragent', |
|
| 103 | - 'head', |
|
| 104 | - 'hosttracker', |
|
| 105 | - 'hubspot', |
|
| 106 | - 'ia_archiver', |
|
| 107 | - 'ichiro', |
|
| 108 | - 'iltrovatore-setaccio', |
|
| 109 | - 'immediatenet', |
|
| 110 | - 'ina', |
|
| 111 | - 'inoreader', |
|
| 112 | - 'infegyatlas', |
|
| 113 | - 'infohelfer', |
|
| 114 | - 'instapaper', |
|
| 115 | - 'jabse', |
|
| 116 | - 'james', |
|
| 117 | - 'jersey', |
|
| 118 | - 'kumkie', |
|
| 119 | - 'linkdex', |
|
| 120 | - 'linkfluence', |
|
| 121 | - 'linkwalker', |
|
| 122 | - 'litefinder', |
|
| 123 | - 'loadimpactpageanalyzer', |
|
| 124 | - 'ltx71', |
|
| 125 | - 'luminate', |
|
| 126 | - 'lycos', |
|
| 127 | - 'lycosa', |
|
| 128 | - 'mediapartners-google', |
|
| 129 | - 'msai', |
|
| 130 | - 'myapp', |
|
| 131 | - 'nativehost', |
|
| 132 | - 'najdi', |
|
| 133 | - 'netcraftsurveyagent', |
|
| 134 | - 'netestate', |
|
| 135 | - 'netseer', |
|
| 136 | - 'netnewswire', |
|
| 137 | - 'newspaper', |
|
| 138 | - 'newsblur', |
|
| 139 | - 'nuhk', |
|
| 140 | - 'nuzzel', |
|
| 141 | - 'okhttp', |
|
| 142 | - 'otmedia', |
|
| 143 | - 'owlin', |
|
| 144 | - 'owncloud', |
|
| 145 | - 'panscient', |
|
| 146 | - 'paper\.li', |
|
| 147 | - 'parsijoo', |
|
| 148 | - 'protopage', |
|
| 149 | - 'plukkie', |
|
| 150 | - 'proximic', |
|
| 151 | - 'pubsub', |
|
| 152 | - 'python', |
|
| 153 | - 'qirina', |
|
| 154 | - 'qoshe', |
|
| 155 | - 'qualidator', |
|
| 156 | - 'qwantify', |
|
| 157 | - 'rambler', |
|
| 158 | - 'readability', |
|
| 159 | - 'ruby', |
|
| 160 | - 'sbsearch', |
|
| 161 | - 'scoop\.it', |
|
| 162 | - 'scooter', |
|
| 163 | - 'scoutjet', |
|
| 164 | - 'scrapy', |
|
| 165 | - 'scrubby', |
|
| 166 | - 'scrubbybloglines', |
|
| 167 | - 'shareaholic', |
|
| 168 | - 'shopwiki', |
|
| 169 | - 'simplepie', |
|
| 170 | - 'sistrix', |
|
| 171 | - 'sitechecker', |
|
| 172 | - 'siteexplorer', |
|
| 173 | - 'snapshot', |
|
| 174 | - 'sogou', |
|
| 175 | - 'special_archiver', |
|
| 176 | - 'speedy', |
|
| 177 | - 'spinn3r', |
|
| 178 | - 'spreadtrum', |
|
| 179 | - 'steeler', |
|
| 180 | - 'subscriber', |
|
| 181 | - 'suma', |
|
| 182 | - 'superdownloads', |
|
| 183 | - 'svenska-webbsido', |
|
| 184 | - 'teoma', |
|
| 185 | - 'the knowledge AI', |
|
| 186 | - 'thumbshots', |
|
| 187 | - 'tineye', |
|
| 188 | - 'traackr', |
|
| 189 | - 'trendiction', |
|
| 190 | - 'trendsmap', |
|
| 191 | - 'tweetedtimes', |
|
| 192 | - 'tweetmeme', |
|
| 193 | - 'universalfeedparser', |
|
| 194 | - 'uaslinkchecker', |
|
| 195 | - 'undrip', |
|
| 196 | - 'unwindfetchor', |
|
| 197 | - 'upday', |
|
| 198 | - 'vedma', |
|
| 199 | - 'vkshare', |
|
| 200 | - 'vm', |
|
| 201 | - 'wch', |
|
| 202 | - 'webalta', |
|
| 203 | - 'webcookies', |
|
| 204 | - 'webparser', |
|
| 205 | - 'webthumbnail', |
|
| 206 | - 'wesee', |
|
| 207 | - 'wise-guys', |
|
| 208 | - 'woko', |
|
| 209 | - 'wordpress', |
|
| 210 | - 'wotbox', |
|
| 211 | - 'y!j-bri', |
|
| 212 | - 'y!j-bro', |
|
| 213 | - 'y!j-brw', |
|
| 214 | - 'y!j-bsc', |
|
| 215 | - 'yahoo', |
|
| 216 | - 'yahoo!', |
|
| 217 | - 'yahooysmcm', |
|
| 218 | - 'ymobactus', |
|
| 219 | - 'yats', |
|
| 220 | - 'yeti', |
|
| 221 | - 'zeerch' |
|
| 222 | - )) . ',i', |
|
| 223 | - (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 224 | - ); |
|
| 34 | + define('_IS_BOT', |
|
| 35 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 36 | + and preg_match(',' |
|
| 37 | + . implode ('|', array( |
|
| 38 | + // mots generiques |
|
| 39 | + 'bot', |
|
| 40 | + 'slurp', |
|
| 41 | + 'crawler', |
|
| 42 | + 'crwlr', |
|
| 43 | + 'java', |
|
| 44 | + 'monitoring', |
|
| 45 | + 'spider', |
|
| 46 | + 'webvac', |
|
| 47 | + 'yandex', |
|
| 48 | + 'MSIE 6\.0', // botnet 99,9% du temps |
|
| 49 | + // UA plus cibles |
|
| 50 | + '200please', |
|
| 51 | + '80legs', |
|
| 52 | + 'a6-indexer', |
|
| 53 | + 'aboundex', |
|
| 54 | + 'accoona', |
|
| 55 | + 'acrylicapps', |
|
| 56 | + 'addthis', |
|
| 57 | + 'adressendeutschland', |
|
| 58 | + 'alexa', |
|
| 59 | + 'altavista', |
|
| 60 | + 'analyticsseo', |
|
| 61 | + 'antennapod', |
|
| 62 | + 'arachnys', |
|
| 63 | + 'archive', |
|
| 64 | + 'argclrint', |
|
| 65 | + 'aspseek', |
|
| 66 | + 'baidu', |
|
| 67 | + 'begunadvertising', |
|
| 68 | + 'bing', |
|
| 69 | + 'bloglines', |
|
| 70 | + 'buck', |
|
| 71 | + 'browsershots', |
|
| 72 | + 'bubing', |
|
| 73 | + 'butterfly', |
|
| 74 | + 'changedetection', |
|
| 75 | + 'charlotte', |
|
| 76 | + 'chilkat', |
|
| 77 | + 'china', |
|
| 78 | + 'coccoc', |
|
| 79 | + 'crowsnest', |
|
| 80 | + 'dataminr', |
|
| 81 | + 'daumoa', |
|
| 82 | + 'dlvr\.it', |
|
| 83 | + 'dlweb', |
|
| 84 | + 'drupal', |
|
| 85 | + 'ec2linkfinder', |
|
| 86 | + 'eset\.com', |
|
| 87 | + 'estyle', |
|
| 88 | + 'exalead', |
|
| 89 | + 'ezooms', |
|
| 90 | + 'facebookexternalhit', |
|
| 91 | + 'facebookplatform', |
|
| 92 | + 'fairshare', |
|
| 93 | + 'feedfetcher', |
|
| 94 | + 'feedfetcher-google', |
|
| 95 | + 'feedly', |
|
| 96 | + 'fetch', |
|
| 97 | + 'flipboardproxy', |
|
| 98 | + 'genieo', |
|
| 99 | + 'google', |
|
| 100 | + 'go-http-client', |
|
| 101 | + 'grapeshot', |
|
| 102 | + 'hatena-useragent', |
|
| 103 | + 'head', |
|
| 104 | + 'hosttracker', |
|
| 105 | + 'hubspot', |
|
| 106 | + 'ia_archiver', |
|
| 107 | + 'ichiro', |
|
| 108 | + 'iltrovatore-setaccio', |
|
| 109 | + 'immediatenet', |
|
| 110 | + 'ina', |
|
| 111 | + 'inoreader', |
|
| 112 | + 'infegyatlas', |
|
| 113 | + 'infohelfer', |
|
| 114 | + 'instapaper', |
|
| 115 | + 'jabse', |
|
| 116 | + 'james', |
|
| 117 | + 'jersey', |
|
| 118 | + 'kumkie', |
|
| 119 | + 'linkdex', |
|
| 120 | + 'linkfluence', |
|
| 121 | + 'linkwalker', |
|
| 122 | + 'litefinder', |
|
| 123 | + 'loadimpactpageanalyzer', |
|
| 124 | + 'ltx71', |
|
| 125 | + 'luminate', |
|
| 126 | + 'lycos', |
|
| 127 | + 'lycosa', |
|
| 128 | + 'mediapartners-google', |
|
| 129 | + 'msai', |
|
| 130 | + 'myapp', |
|
| 131 | + 'nativehost', |
|
| 132 | + 'najdi', |
|
| 133 | + 'netcraftsurveyagent', |
|
| 134 | + 'netestate', |
|
| 135 | + 'netseer', |
|
| 136 | + 'netnewswire', |
|
| 137 | + 'newspaper', |
|
| 138 | + 'newsblur', |
|
| 139 | + 'nuhk', |
|
| 140 | + 'nuzzel', |
|
| 141 | + 'okhttp', |
|
| 142 | + 'otmedia', |
|
| 143 | + 'owlin', |
|
| 144 | + 'owncloud', |
|
| 145 | + 'panscient', |
|
| 146 | + 'paper\.li', |
|
| 147 | + 'parsijoo', |
|
| 148 | + 'protopage', |
|
| 149 | + 'plukkie', |
|
| 150 | + 'proximic', |
|
| 151 | + 'pubsub', |
|
| 152 | + 'python', |
|
| 153 | + 'qirina', |
|
| 154 | + 'qoshe', |
|
| 155 | + 'qualidator', |
|
| 156 | + 'qwantify', |
|
| 157 | + 'rambler', |
|
| 158 | + 'readability', |
|
| 159 | + 'ruby', |
|
| 160 | + 'sbsearch', |
|
| 161 | + 'scoop\.it', |
|
| 162 | + 'scooter', |
|
| 163 | + 'scoutjet', |
|
| 164 | + 'scrapy', |
|
| 165 | + 'scrubby', |
|
| 166 | + 'scrubbybloglines', |
|
| 167 | + 'shareaholic', |
|
| 168 | + 'shopwiki', |
|
| 169 | + 'simplepie', |
|
| 170 | + 'sistrix', |
|
| 171 | + 'sitechecker', |
|
| 172 | + 'siteexplorer', |
|
| 173 | + 'snapshot', |
|
| 174 | + 'sogou', |
|
| 175 | + 'special_archiver', |
|
| 176 | + 'speedy', |
|
| 177 | + 'spinn3r', |
|
| 178 | + 'spreadtrum', |
|
| 179 | + 'steeler', |
|
| 180 | + 'subscriber', |
|
| 181 | + 'suma', |
|
| 182 | + 'superdownloads', |
|
| 183 | + 'svenska-webbsido', |
|
| 184 | + 'teoma', |
|
| 185 | + 'the knowledge AI', |
|
| 186 | + 'thumbshots', |
|
| 187 | + 'tineye', |
|
| 188 | + 'traackr', |
|
| 189 | + 'trendiction', |
|
| 190 | + 'trendsmap', |
|
| 191 | + 'tweetedtimes', |
|
| 192 | + 'tweetmeme', |
|
| 193 | + 'universalfeedparser', |
|
| 194 | + 'uaslinkchecker', |
|
| 195 | + 'undrip', |
|
| 196 | + 'unwindfetchor', |
|
| 197 | + 'upday', |
|
| 198 | + 'vedma', |
|
| 199 | + 'vkshare', |
|
| 200 | + 'vm', |
|
| 201 | + 'wch', |
|
| 202 | + 'webalta', |
|
| 203 | + 'webcookies', |
|
| 204 | + 'webparser', |
|
| 205 | + 'webthumbnail', |
|
| 206 | + 'wesee', |
|
| 207 | + 'wise-guys', |
|
| 208 | + 'woko', |
|
| 209 | + 'wordpress', |
|
| 210 | + 'wotbox', |
|
| 211 | + 'y!j-bri', |
|
| 212 | + 'y!j-bro', |
|
| 213 | + 'y!j-brw', |
|
| 214 | + 'y!j-bsc', |
|
| 215 | + 'yahoo', |
|
| 216 | + 'yahoo!', |
|
| 217 | + 'yahooysmcm', |
|
| 218 | + 'ymobactus', |
|
| 219 | + 'yats', |
|
| 220 | + 'yeti', |
|
| 221 | + 'zeerch' |
|
| 222 | + )) . ',i', |
|
| 223 | + (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 224 | + ); |
|
| 225 | 225 | } |
| 226 | 226 | if (!defined('_IS_BOT_FRIEND')){ |
| 227 | - define('_IS_BOT_FRIEND', |
|
| 228 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 229 | - and preg_match(',' . implode ('|', array( |
|
| 230 | - 'facebookexternalhit', |
|
| 231 | - 'flipboardproxy', |
|
| 232 | - 'wordpress' |
|
| 233 | - )) . ',i', |
|
| 234 | - (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 235 | - ); |
|
| 227 | + define('_IS_BOT_FRIEND', |
|
| 228 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 229 | + and preg_match(',' . implode ('|', array( |
|
| 230 | + 'facebookexternalhit', |
|
| 231 | + 'flipboardproxy', |
|
| 232 | + 'wordpress' |
|
| 233 | + )) . ',i', |
|
| 234 | + (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 235 | + ); |
|
| 236 | 236 | } |
| 237 | 237 | |
| 238 | 238 | /* |
@@ -244,17 +244,17 @@ discard block |
||
| 244 | 244 | */ |
| 245 | 245 | $_exceptions = array('id_table','id_base','id_parent','id_article_pdf'); |
| 246 | 246 | foreach ($_GET as $var => $val) |
| 247 | - if ($_GET[$var] and strncmp($var, "id_", 3) == 0 |
|
| 248 | - and !in_array($var, $_exceptions)) |
|
| 249 | - $_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]); |
|
| 247 | + if ($_GET[$var] and strncmp($var, "id_", 3) == 0 |
|
| 248 | + and !in_array($var, $_exceptions)) |
|
| 249 | + $_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]); |
|
| 250 | 250 | foreach ($_POST as $var => $val) |
| 251 | - if ($_POST[$var] and strncmp($var, "id_", 3) == 0 |
|
| 252 | - and !in_array($var, $_exceptions)) |
|
| 253 | - $_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]); |
|
| 251 | + if ($_POST[$var] and strncmp($var, "id_", 3) == 0 |
|
| 252 | + and !in_array($var, $_exceptions)) |
|
| 253 | + $_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]); |
|
| 254 | 254 | foreach ($GLOBALS as $var => $val) |
| 255 | - if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
|
| 256 | - and !in_array($var, $_exceptions)) |
|
| 257 | - $GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]); |
|
| 255 | + if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
|
| 256 | + and !in_array($var, $_exceptions)) |
|
| 257 | + $GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]); |
|
| 258 | 258 | |
| 259 | 259 | /* |
| 260 | 260 | * Interdit la variable $cjpeg_command, qui était utilisée sans |
@@ -266,17 +266,17 @@ discard block |
||
| 266 | 266 | * Contrôle de quelques variables (XSS) |
| 267 | 267 | */ |
| 268 | 268 | foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
| 269 | - if (isset($_GET[$var])) |
|
| 270 | - $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 271 | - if (isset($_POST[$var])) |
|
| 272 | - $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 269 | + if (isset($_GET[$var])) |
|
| 270 | + $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 271 | + if (isset($_POST[$var])) |
|
| 272 | + $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 273 | 273 | } |
| 274 | 274 | |
| 275 | 275 | /* |
| 276 | 276 | * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x) |
| 277 | 277 | */ |
| 278 | 278 | if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) { |
| 279 | - $file = addslashes((string)$_GET['file']); |
|
| 279 | + $file = addslashes((string)$_GET['file']); |
|
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | /* |
@@ -285,79 +285,79 @@ discard block |
||
| 285 | 285 | if (isset($_REQUEST['mode']) and isset($_REQUEST['page']) |
| 286 | 286 | and !in_array($_REQUEST['mode'], array("6forum", "1comite")) |
| 287 | 287 | and $_REQUEST['page'] == "identifiants") |
| 288 | - $ecran_securite_raison = "identifiants"; |
|
| 288 | + $ecran_securite_raison = "identifiants"; |
|
| 289 | 289 | |
| 290 | 290 | /* |
| 291 | 291 | * Agenda joue à l'injection php |
| 292 | 292 | */ |
| 293 | 293 | if (isset($_REQUEST['partie_cal']) |
| 294 | 294 | and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])) |
| 295 | - $ecran_securite_raison = "partie_cal"; |
|
| 295 | + $ecran_securite_raison = "partie_cal"; |
|
| 296 | 296 | if (isset($_REQUEST['echelle']) |
| 297 | 297 | and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])) |
| 298 | - $ecran_securite_raison = "echelle"; |
|
| 298 | + $ecran_securite_raison = "echelle"; |
|
| 299 | 299 | |
| 300 | 300 | /* |
| 301 | 301 | * Espace privé |
| 302 | 302 | */ |
| 303 | 303 | if (isset($_REQUEST['exec']) |
| 304 | 304 | and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])) |
| 305 | - $ecran_securite_raison = "exec"; |
|
| 305 | + $ecran_securite_raison = "exec"; |
|
| 306 | 306 | if (isset($_REQUEST['cherche_auteur']) |
| 307 | 307 | and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])) |
| 308 | - $ecran_securite_raison = "cherche_auteur"; |
|
| 308 | + $ecran_securite_raison = "cherche_auteur"; |
|
| 309 | 309 | if (isset($_REQUEST['exec']) |
| 310 | 310 | and $_REQUEST['exec'] == 'auteurs' |
| 311 | 311 | and preg_match(',[<],', (string)$_REQUEST['recherche'])) |
| 312 | - $ecran_securite_raison = "recherche"; |
|
| 312 | + $ecran_securite_raison = "recherche"; |
|
| 313 | 313 | if (isset($_REQUEST['exec']) |
| 314 | 314 | and $_REQUEST['exec'] == 'info_plugin' |
| 315 | 315 | and preg_match(',[<],', (string)$_REQUEST['plugin'])) |
| 316 | - $ecran_securite_raison = "plugin"; |
|
| 316 | + $ecran_securite_raison = "plugin"; |
|
| 317 | 317 | if (isset($_REQUEST['exec']) |
| 318 | 318 | and $_REQUEST['exec'] == 'puce_statut' |
| 319 | 319 | and isset($_REQUEST['id']) |
| 320 | 320 | and !intval($_REQUEST['id'])) |
| 321 | - $ecran_securite_raison = "puce_statut"; |
|
| 321 | + $ecran_securite_raison = "puce_statut"; |
|
| 322 | 322 | if (isset($_REQUEST['action']) |
| 323 | 323 | and $_REQUEST['action'] == 'configurer') { |
| 324 | - if (@file_exists('inc_version.php') |
|
| 325 | - or @file_exists('ecrire/inc_version.php')) { |
|
| 326 | - function action_configurer() { |
|
| 327 | - include_spip('inc/autoriser'); |
|
| 328 | - if(!autoriser('configurer', _request('configuration'))) { |
|
| 329 | - include_spip('inc/minipres'); |
|
| 330 | - echo minipres(_T('info_acces_interdit')); |
|
| 331 | - exit; |
|
| 332 | - } |
|
| 333 | - require _DIR_RESTREINT.'action/configurer.php'; |
|
| 334 | - action_configurer_dist(); |
|
| 335 | - } |
|
| 336 | - } |
|
| 324 | + if (@file_exists('inc_version.php') |
|
| 325 | + or @file_exists('ecrire/inc_version.php')) { |
|
| 326 | + function action_configurer() { |
|
| 327 | + include_spip('inc/autoriser'); |
|
| 328 | + if(!autoriser('configurer', _request('configuration'))) { |
|
| 329 | + include_spip('inc/minipres'); |
|
| 330 | + echo minipres(_T('info_acces_interdit')); |
|
| 331 | + exit; |
|
| 332 | + } |
|
| 333 | + require _DIR_RESTREINT.'action/configurer.php'; |
|
| 334 | + action_configurer_dist(); |
|
| 335 | + } |
|
| 336 | + } |
|
| 337 | 337 | } |
| 338 | 338 | |
| 339 | 339 | /* |
| 340 | 340 | * Bloque les requêtes contenant %00 (manipulation d'include) |
| 341 | 341 | */ |
| 342 | 342 | if (strpos( |
| 343 | - @get_magic_quotes_gpc() ? |
|
| 344 | - stripslashes(serialize($_REQUEST)) : serialize($_REQUEST), |
|
| 345 | - chr(0) |
|
| 343 | + @get_magic_quotes_gpc() ? |
|
| 344 | + stripslashes(serialize($_REQUEST)) : serialize($_REQUEST), |
|
| 345 | + chr(0) |
|
| 346 | 346 | ) !== false) |
| 347 | - $ecran_securite_raison = "%00"; |
|
| 347 | + $ecran_securite_raison = "%00"; |
|
| 348 | 348 | |
| 349 | 349 | /* |
| 350 | 350 | * Bloque les requêtes fond=formulaire_ |
| 351 | 351 | */ |
| 352 | 352 | if (isset($_REQUEST['fond']) |
| 353 | 353 | and preg_match(',^formulaire_,i', $_REQUEST['fond'])) |
| 354 | - $ecran_securite_raison = "fond=formulaire_"; |
|
| 354 | + $ecran_securite_raison = "fond=formulaire_"; |
|
| 355 | 355 | |
| 356 | 356 | /* |
| 357 | 357 | * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php) |
| 358 | 358 | */ |
| 359 | 359 | if (isset($_REQUEST['GLOBALS'])) |
| 360 | - $ecran_securite_raison = "GLOBALS[GLOBALS]"; |
|
| 360 | + $ecran_securite_raison = "GLOBALS[GLOBALS]"; |
|
| 361 | 361 | |
| 362 | 362 | /* |
| 363 | 363 | * Bloque les requêtes des bots sur: |
@@ -365,26 +365,26 @@ discard block |
||
| 365 | 365 | * les paginations entremélées |
| 366 | 366 | */ |
| 367 | 367 | if (_IS_BOT and ( |
| 368 | - (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
|
| 369 | - or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 370 | - or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') ) |
|
| 371 | - or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 368 | + (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
|
| 369 | + or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 370 | + or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') ) |
|
| 371 | + or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 372 | 372 | ) |
| 373 | 373 | ) |
| 374 | - $ecran_securite_raison = "robot agenda/double pagination"; |
|
| 374 | + $ecran_securite_raison = "robot agenda/double pagination"; |
|
| 375 | 375 | |
| 376 | 376 | /* |
| 377 | 377 | * Bloque une vieille page de tests de CFG (<1.11) |
| 378 | 378 | * Bloque un XSS sur une page inexistante |
| 379 | 379 | */ |
| 380 | 380 | if (isset($_REQUEST['page'])) { |
| 381 | - if ($_REQUEST['page'] == 'test_cfg') |
|
| 382 | - $ecran_securite_raison = "test_cfg"; |
|
| 383 | - if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) |
|
| 384 | - $ecran_securite_raison = "xsspage"; |
|
| 385 | - if ($_REQUEST['page'] == '404' |
|
| 386 | - and isset($_REQUEST['erreur'])) |
|
| 387 | - $ecran_securite_raison = "xss404"; |
|
| 381 | + if ($_REQUEST['page'] == 'test_cfg') |
|
| 382 | + $ecran_securite_raison = "test_cfg"; |
|
| 383 | + if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) |
|
| 384 | + $ecran_securite_raison = "xsspage"; |
|
| 385 | + if ($_REQUEST['page'] == '404' |
|
| 386 | + and isset($_REQUEST['erreur'])) |
|
| 387 | + $ecran_securite_raison = "xss404"; |
|
| 388 | 388 | } |
| 389 | 389 | |
| 390 | 390 | /* |
@@ -392,40 +392,40 @@ discard block |
||
| 392 | 392 | */ |
| 393 | 393 | foreach (array('var_login') as $var) |
| 394 | 394 | if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) |
| 395 | - $ecran_securite_raison = "xss ".$var; |
|
| 395 | + $ecran_securite_raison = "xss ".$var; |
|
| 396 | 396 | |
| 397 | 397 | /* |
| 398 | 398 | * Parade antivirale contre un cheval de troie |
| 399 | 399 | */ |
| 400 | 400 | if (!function_exists('tmp_lkojfghx')) { |
| 401 | - function tmp_lkojfghx() {} |
|
| 402 | - function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) { |
|
| 403 | - // si jamais on est arrivé ici sur une erreur php |
|
| 404 | - // et qu'un autre gestionnaire d'erreur est défini, l'appeller |
|
| 405 | - if ($b && $GLOBALS['tmp_xhgfjokl']) |
|
| 406 | - call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 407 | - } |
|
| 401 | + function tmp_lkojfghx() {} |
|
| 402 | + function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) { |
|
| 403 | + // si jamais on est arrivé ici sur une erreur php |
|
| 404 | + // et qu'un autre gestionnaire d'erreur est défini, l'appeller |
|
| 405 | + if ($b && $GLOBALS['tmp_xhgfjokl']) |
|
| 406 | + call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 407 | + } |
|
| 408 | 408 | } |
| 409 | 409 | if (isset($_POST['tmp_lkojfghx3'])) |
| 410 | - $ecran_securite_raison = "gumblar"; |
|
| 410 | + $ecran_securite_raison = "gumblar"; |
|
| 411 | 411 | |
| 412 | 412 | /* |
| 413 | 413 | * Outils XML mal sécurisés < 2.0.9 |
| 414 | 414 | */ |
| 415 | 415 | if (isset($_REQUEST['transformer_xml'])) |
| 416 | - $ecran_securite_raison = "transformer_xml"; |
|
| 416 | + $ecran_securite_raison = "transformer_xml"; |
|
| 417 | 417 | |
| 418 | 418 | /* |
| 419 | 419 | * Outils XML mal sécurisés again |
| 420 | 420 | */ |
| 421 | 421 | if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec']=='valider_xml'){ |
| 422 | - $url = trim($_REQUEST['var_url']); |
|
| 423 | - if (strncmp($url,'/',1)==0 |
|
| 424 | - or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false) |
|
| 425 | - or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false) |
|
| 426 | - or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) { |
|
| 427 | - $ecran_securite_raison = 'URL interdite pour var_url'; |
|
| 428 | - } |
|
| 422 | + $url = trim($_REQUEST['var_url']); |
|
| 423 | + if (strncmp($url,'/',1)==0 |
|
| 424 | + or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false) |
|
| 425 | + or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false) |
|
| 426 | + or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) { |
|
| 427 | + $ecran_securite_raison = 'URL interdite pour var_url'; |
|
| 428 | + } |
|
| 429 | 429 | } |
| 430 | 430 | |
| 431 | 431 | /* |
@@ -433,10 +433,10 @@ discard block |
||
| 433 | 433 | */ |
| 434 | 434 | if (isset($_REQUEST['nom_sauvegarde']) |
| 435 | 435 | and strstr((string)$_REQUEST['nom_sauvegarde'], '/')) |
| 436 | - $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
|
| 436 | + $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
|
| 437 | 437 | if (isset($_REQUEST['znom_sauvegarde']) |
| 438 | 438 | and strstr((string)$_REQUEST['znom_sauvegarde'], '/')) |
| 439 | - $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
|
| 439 | + $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
|
| 440 | 440 | |
| 441 | 441 | |
| 442 | 442 | /* |
@@ -445,26 +445,26 @@ discard block |
||
| 445 | 445 | */ |
| 446 | 446 | if (isset($_REQUEST['op']) and isset($_REQUEST['page']) |
| 447 | 447 | and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op'])) |
| 448 | - $ecran_securite_raison = 'op'; |
|
| 448 | + $ecran_securite_raison = 'op'; |
|
| 449 | 449 | |
| 450 | 450 | /* |
| 451 | 451 | * Forms & Table ne se méfiait pas assez des uploads de fichiers |
| 452 | 452 | */ |
| 453 | 453 | if (count($_FILES)){ |
| 454 | - foreach($_FILES as $k => $v){ |
|
| 455 | - if (preg_match(',^fichier_\d+$,', $k) |
|
| 456 | - and preg_match(',\.php,i', $v['name'])) |
|
| 457 | - unset($_FILES[$k]); |
|
| 458 | - } |
|
| 454 | + foreach($_FILES as $k => $v){ |
|
| 455 | + if (preg_match(',^fichier_\d+$,', $k) |
|
| 456 | + and preg_match(',\.php,i', $v['name'])) |
|
| 457 | + unset($_FILES[$k]); |
|
| 458 | + } |
|
| 459 | 459 | } |
| 460 | 460 | /* |
| 461 | 461 | * et Contact trop laxiste avec une variable externe |
| 462 | 462 | * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout |
| 463 | 463 | */ |
| 464 | 464 | if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']){ |
| 465 | - unset($_REQUEST['pj_enregistrees_nom']); |
|
| 466 | - unset($_GET['pj_enregistrees_nom']); |
|
| 467 | - unset($_POST['pj_enregistrees_nom']); |
|
| 465 | + unset($_REQUEST['pj_enregistrees_nom']); |
|
| 466 | + unset($_GET['pj_enregistrees_nom']); |
|
| 467 | + unset($_POST['pj_enregistrees_nom']); |
|
| 468 | 468 | } |
| 469 | 469 | |
| 470 | 470 | /* |
@@ -472,66 +472,66 @@ discard block |
||
| 472 | 472 | */ |
| 473 | 473 | if (isset($_REQUEST['reinstall']) |
| 474 | 474 | and $_REQUEST['reinstall'] == 'oui') |
| 475 | - $ecran_securite_raison = 'reinstall=oui'; |
|
| 475 | + $ecran_securite_raison = 'reinstall=oui'; |
|
| 476 | 476 | |
| 477 | 477 | /* |
| 478 | 478 | * Échappement xss referer |
| 479 | 479 | */ |
| 480 | 480 | if (isset($_SERVER['HTTP_REFERER'])) |
| 481 | - $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##'); |
|
| 481 | + $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##'); |
|
| 482 | 482 | |
| 483 | 483 | |
| 484 | 484 | /* |
| 485 | 485 | * Echappement HTTP_X_FORWARDED_HOST |
| 486 | 486 | */ |
| 487 | 487 | if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) |
| 488 | - $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 488 | + $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 489 | 489 | |
| 490 | 490 | |
| 491 | 491 | /* |
| 492 | 492 | * Réinjection des clés en html dans l'admin r19561 |
| 493 | 493 | */ |
| 494 | 494 | if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){ |
| 495 | - $zzzz = implode("", array_keys($_REQUEST)); |
|
| 496 | - if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) |
|
| 497 | - $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 495 | + $zzzz = implode("", array_keys($_REQUEST)); |
|
| 496 | + if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) |
|
| 497 | + $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 498 | 498 | } |
| 499 | 499 | |
| 500 | 500 | /* |
| 501 | 501 | * Injection par connect |
| 502 | 502 | */ |
| 503 | 503 | if (isset($_REQUEST['connect']) |
| 504 | - and |
|
| 505 | - // cas qui permettent de sortir d'un commentaire PHP |
|
| 506 | - (strpos($_REQUEST['connect'], "?") !== false |
|
| 507 | - or strpos($_REQUEST['connect'], "<") !== false |
|
| 508 | - or strpos($_REQUEST['connect'], ">") !== false |
|
| 509 | - or strpos($_REQUEST['connect'], "\n") !== false |
|
| 510 | - or strpos($_REQUEST['connect'], "\r") !== false) |
|
| 511 | - ) { |
|
| 512 | - $ecran_securite_raison = "malformed connect argument"; |
|
| 504 | + and |
|
| 505 | + // cas qui permettent de sortir d'un commentaire PHP |
|
| 506 | + (strpos($_REQUEST['connect'], "?") !== false |
|
| 507 | + or strpos($_REQUEST['connect'], "<") !== false |
|
| 508 | + or strpos($_REQUEST['connect'], ">") !== false |
|
| 509 | + or strpos($_REQUEST['connect'], "\n") !== false |
|
| 510 | + or strpos($_REQUEST['connect'], "\r") !== false) |
|
| 511 | + ) { |
|
| 512 | + $ecran_securite_raison = "malformed connect argument"; |
|
| 513 | 513 | } |
| 514 | 514 | |
| 515 | 515 | /* |
| 516 | 516 | * S'il y a une raison de mourir, mourons |
| 517 | 517 | */ |
| 518 | 518 | if (isset($ecran_securite_raison)) { |
| 519 | - header("HTTP/1.0 403 Forbidden"); |
|
| 520 | - header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 521 | - header("Cache-Control: no-cache, must-revalidate"); |
|
| 522 | - header("Pragma: no-cache"); |
|
| 523 | - header("Content-Type: text/html"); |
|
| 524 | - die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>"); |
|
| 519 | + header("HTTP/1.0 403 Forbidden"); |
|
| 520 | + header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 521 | + header("Cache-Control: no-cache, must-revalidate"); |
|
| 522 | + header("Pragma: no-cache"); |
|
| 523 | + header("Content-Type: text/html"); |
|
| 524 | + die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>"); |
|
| 525 | 525 | } |
| 526 | 526 | |
| 527 | 527 | /* |
| 528 | 528 | * Un filtre filtrer_entites securise |
| 529 | 529 | */ |
| 530 | 530 | if (!function_exists('filtre_filtrer_entites_dist')) { |
| 531 | - function filtre_filtrer_entites_dist($t) { |
|
| 532 | - include_spip('inc/texte'); |
|
| 533 | - return interdire_scripts(filtrer_entites($t)); |
|
| 534 | - } |
|
| 531 | + function filtre_filtrer_entites_dist($t) { |
|
| 532 | + include_spip('inc/texte'); |
|
| 533 | + return interdire_scripts(filtrer_entites($t)); |
|
| 534 | + } |
|
| 535 | 535 | } |
| 536 | 536 | |
| 537 | 537 | |
@@ -545,35 +545,35 @@ discard block |
||
| 545 | 545 | * Bloque les bots quand le load déborde |
| 546 | 546 | */ |
| 547 | 547 | if (!defined('_ECRAN_SECURITE_LOAD')) |
| 548 | - define('_ECRAN_SECURITE_LOAD', 4); |
|
| 548 | + define('_ECRAN_SECURITE_LOAD', 4); |
|
| 549 | 549 | |
| 550 | 550 | if ( |
| 551 | - defined('_ECRAN_SECURITE_LOAD') |
|
| 552 | - and _ECRAN_SECURITE_LOAD > 0 |
|
| 553 | - and _IS_BOT |
|
| 554 | - and !_IS_BOT_FRIEND |
|
| 555 | - and $_SERVER['REQUEST_METHOD'] === 'GET' |
|
| 556 | - and ( |
|
| 557 | - (function_exists('sys_getloadavg') |
|
| 558 | - and $load = sys_getloadavg() |
|
| 559 | - and is_array($load) |
|
| 560 | - and $load = array_shift($load) |
|
| 561 | - ) |
|
| 562 | - or |
|
| 563 | - (@is_readable('/proc/loadavg') |
|
| 564 | - and $load = file_get_contents('/proc/loadavg') |
|
| 565 | - and $load = floatval($load) |
|
| 566 | - ) |
|
| 567 | - ) |
|
| 568 | - and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite |
|
| 569 | - and rand(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD |
|
| 551 | + defined('_ECRAN_SECURITE_LOAD') |
|
| 552 | + and _ECRAN_SECURITE_LOAD > 0 |
|
| 553 | + and _IS_BOT |
|
| 554 | + and !_IS_BOT_FRIEND |
|
| 555 | + and $_SERVER['REQUEST_METHOD'] === 'GET' |
|
| 556 | + and ( |
|
| 557 | + (function_exists('sys_getloadavg') |
|
| 558 | + and $load = sys_getloadavg() |
|
| 559 | + and is_array($load) |
|
| 560 | + and $load = array_shift($load) |
|
| 561 | + ) |
|
| 562 | + or |
|
| 563 | + (@is_readable('/proc/loadavg') |
|
| 564 | + and $load = file_get_contents('/proc/loadavg') |
|
| 565 | + and $load = floatval($load) |
|
| 566 | + ) |
|
| 567 | + ) |
|
| 568 | + and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite |
|
| 569 | + and rand(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD |
|
| 570 | 570 | ) { |
| 571 | - //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot |
|
| 572 | - header("HTTP/1.0 429 Too Many Requests"); |
|
| 573 | - header("Retry-After: 300"); |
|
| 574 | - header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 575 | - header("Cache-Control: no-cache, must-revalidate"); |
|
| 576 | - header("Pragma: no-cache"); |
|
| 577 | - header("Content-Type: text/html"); |
|
| 578 | - die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>"); |
|
| 571 | + //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot |
|
| 572 | + header("HTTP/1.0 429 Too Many Requests"); |
|
| 573 | + header("Retry-After: 300"); |
|
| 574 | + header("Expires: Wed, 11 Jan 1984 05:00:00 GMT"); |
|
| 575 | + header("Cache-Control: no-cache, must-revalidate"); |
|
| 576 | + header("Pragma: no-cache"); |
|
| 577 | + header("Content-Type: text/html"); |
|
| 578 | + die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>"); |
|
| 579 | 579 | } |
@@ -23,18 +23,18 @@ discard block |
||
| 23 | 23 | * var_isbot=1 peut etre utilise pour monitorer la disponibilite pour les bots (sujets a 503 de delestage si |
| 24 | 24 | * le load depasse ECRAN_SECURITE_LOAD) |
| 25 | 25 | */ |
| 26 | -if (!defined('_IS_BOT') and isset($_GET['var_isbot'])){ |
|
| 26 | +if (!defined('_IS_BOT') and isset($_GET['var_isbot'])) { |
|
| 27 | 27 | define('_IS_BOT', $_GET['var_isbot'] ? true : false); |
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | /* |
| 31 | 31 | * Détecteur de robot d'indexation |
| 32 | 32 | */ |
| 33 | -if (!defined('_IS_BOT')){ |
|
| 33 | +if (!defined('_IS_BOT')) { |
|
| 34 | 34 | define('_IS_BOT', |
| 35 | 35 | isset($_SERVER['HTTP_USER_AGENT']) |
| 36 | 36 | and preg_match(',' |
| 37 | - . implode ('|', array( |
|
| 37 | + . implode('|', array( |
|
| 38 | 38 | // mots generiques |
| 39 | 39 | 'bot', |
| 40 | 40 | 'slurp', |
@@ -219,19 +219,19 @@ discard block |
||
| 219 | 219 | 'yats', |
| 220 | 220 | 'yeti', |
| 221 | 221 | 'zeerch' |
| 222 | - )) . ',i', |
|
| 223 | - (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 222 | + )).',i', |
|
| 223 | + (string) $_SERVER['HTTP_USER_AGENT']) |
|
| 224 | 224 | ); |
| 225 | 225 | } |
| 226 | -if (!defined('_IS_BOT_FRIEND')){ |
|
| 226 | +if (!defined('_IS_BOT_FRIEND')) { |
|
| 227 | 227 | define('_IS_BOT_FRIEND', |
| 228 | 228 | isset($_SERVER['HTTP_USER_AGENT']) |
| 229 | - and preg_match(',' . implode ('|', array( |
|
| 229 | + and preg_match(','.implode('|', array( |
|
| 230 | 230 | 'facebookexternalhit', |
| 231 | 231 | 'flipboardproxy', |
| 232 | 232 | 'wordpress' |
| 233 | - )) . ',i', |
|
| 234 | - (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 233 | + )).',i', |
|
| 234 | + (string) $_SERVER['HTTP_USER_AGENT']) |
|
| 235 | 235 | ); |
| 236 | 236 | } |
| 237 | 237 | |
@@ -242,19 +242,19 @@ discard block |
||
| 242 | 242 | * (sauf pour id_table, qui n'est pas numérique jusqu'à [5743]) |
| 243 | 243 | * (id_base est une variable de la config des widgets de WordPress) |
| 244 | 244 | */ |
| 245 | -$_exceptions = array('id_table','id_base','id_parent','id_article_pdf'); |
|
| 245 | +$_exceptions = array('id_table', 'id_base', 'id_parent', 'id_article_pdf'); |
|
| 246 | 246 | foreach ($_GET as $var => $val) |
| 247 | 247 | if ($_GET[$var] and strncmp($var, "id_", 3) == 0 |
| 248 | 248 | and !in_array($var, $_exceptions)) |
| 249 | - $_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]); |
|
| 249 | + $_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]); |
|
| 250 | 250 | foreach ($_POST as $var => $val) |
| 251 | 251 | if ($_POST[$var] and strncmp($var, "id_", 3) == 0 |
| 252 | 252 | and !in_array($var, $_exceptions)) |
| 253 | - $_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]); |
|
| 253 | + $_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]); |
|
| 254 | 254 | foreach ($GLOBALS as $var => $val) |
| 255 | 255 | if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
| 256 | 256 | and !in_array($var, $_exceptions)) |
| 257 | - $GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]); |
|
| 257 | + $GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]); |
|
| 258 | 258 | |
| 259 | 259 | /* |
| 260 | 260 | * Interdit la variable $cjpeg_command, qui était utilisée sans |
@@ -265,18 +265,18 @@ discard block |
||
| 265 | 265 | /* |
| 266 | 266 | * Contrôle de quelques variables (XSS) |
| 267 | 267 | */ |
| 268 | -foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
|
| 268 | +foreach (array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
|
| 269 | 269 | if (isset($_GET[$var])) |
| 270 | - $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 270 | + $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_GET[$var]); |
|
| 271 | 271 | if (isset($_POST[$var])) |
| 272 | - $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 272 | + $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_POST[$var]); |
|
| 273 | 273 | } |
| 274 | 274 | |
| 275 | 275 | /* |
| 276 | 276 | * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x) |
| 277 | 277 | */ |
| 278 | -if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) { |
|
| 279 | - $file = addslashes((string)$_GET['file']); |
|
| 278 | +if (preg_match(',^(.*/)?spip_acces_doc\.,', (string) $_SERVER['REQUEST_URI'])) { |
|
| 279 | + $file = addslashes((string) $_GET['file']); |
|
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | /* |
@@ -291,28 +291,28 @@ discard block |
||
| 291 | 291 | * Agenda joue à l'injection php |
| 292 | 292 | */ |
| 293 | 293 | if (isset($_REQUEST['partie_cal']) |
| 294 | -and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])) |
|
| 294 | +and $_REQUEST['partie_cal'] !== htmlentities((string) $_REQUEST['partie_cal'])) |
|
| 295 | 295 | $ecran_securite_raison = "partie_cal"; |
| 296 | 296 | if (isset($_REQUEST['echelle']) |
| 297 | -and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])) |
|
| 297 | +and $_REQUEST['echelle'] !== htmlentities((string) $_REQUEST['echelle'])) |
|
| 298 | 298 | $ecran_securite_raison = "echelle"; |
| 299 | 299 | |
| 300 | 300 | /* |
| 301 | 301 | * Espace privé |
| 302 | 302 | */ |
| 303 | 303 | if (isset($_REQUEST['exec']) |
| 304 | -and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])) |
|
| 304 | +and !preg_match(',^[\w-]+$,', (string) $_REQUEST['exec'])) |
|
| 305 | 305 | $ecran_securite_raison = "exec"; |
| 306 | 306 | if (isset($_REQUEST['cherche_auteur']) |
| 307 | -and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])) |
|
| 307 | +and preg_match(',[<],', (string) $_REQUEST['cherche_auteur'])) |
|
| 308 | 308 | $ecran_securite_raison = "cherche_auteur"; |
| 309 | 309 | if (isset($_REQUEST['exec']) |
| 310 | 310 | and $_REQUEST['exec'] == 'auteurs' |
| 311 | -and preg_match(',[<],', (string)$_REQUEST['recherche'])) |
|
| 311 | +and preg_match(',[<],', (string) $_REQUEST['recherche'])) |
|
| 312 | 312 | $ecran_securite_raison = "recherche"; |
| 313 | 313 | if (isset($_REQUEST['exec']) |
| 314 | 314 | and $_REQUEST['exec'] == 'info_plugin' |
| 315 | -and preg_match(',[<],', (string)$_REQUEST['plugin'])) |
|
| 315 | +and preg_match(',[<],', (string) $_REQUEST['plugin'])) |
|
| 316 | 316 | $ecran_securite_raison = "plugin"; |
| 317 | 317 | if (isset($_REQUEST['exec']) |
| 318 | 318 | and $_REQUEST['exec'] == 'puce_statut' |
@@ -325,7 +325,7 @@ discard block |
||
| 325 | 325 | or @file_exists('ecrire/inc_version.php')) { |
| 326 | 326 | function action_configurer() { |
| 327 | 327 | include_spip('inc/autoriser'); |
| 328 | - if(!autoriser('configurer', _request('configuration'))) { |
|
| 328 | + if (!autoriser('configurer', _request('configuration'))) { |
|
| 329 | 329 | include_spip('inc/minipres'); |
| 330 | 330 | echo minipres(_T('info_acces_interdit')); |
| 331 | 331 | exit; |
@@ -366,9 +366,9 @@ discard block |
||
| 366 | 366 | */ |
| 367 | 367 | if (_IS_BOT and ( |
| 368 | 368 | (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type'])) |
| 369 | - or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI'])) |
|
| 370 | - or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') ) |
|
| 371 | - or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
|
| 369 | + or (strpos((string) $_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string) $_SERVER['REQUEST_URI'])) |
|
| 370 | + or (isset($_REQUEST['calendrier_annee']) and strpos((string) $_SERVER['REQUEST_URI'], 'debut_')) |
|
| 371 | + or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string) $_SERVER['REQUEST_URI'])) |
|
| 372 | 372 | ) |
| 373 | 373 | ) |
| 374 | 374 | $ecran_securite_raison = "robot agenda/double pagination"; |
@@ -380,7 +380,7 @@ discard block |
||
| 380 | 380 | if (isset($_REQUEST['page'])) { |
| 381 | 381 | if ($_REQUEST['page'] == 'test_cfg') |
| 382 | 382 | $ecran_securite_raison = "test_cfg"; |
| 383 | - if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) |
|
| 383 | + if ($_REQUEST['page'] !== htmlspecialchars((string) $_REQUEST['page'])) |
|
| 384 | 384 | $ecran_securite_raison = "xsspage"; |
| 385 | 385 | if ($_REQUEST['page'] == '404' |
| 386 | 386 | and isset($_REQUEST['erreur'])) |
@@ -418,12 +418,12 @@ discard block |
||
| 418 | 418 | /* |
| 419 | 419 | * Outils XML mal sécurisés again |
| 420 | 420 | */ |
| 421 | -if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec']=='valider_xml'){ |
|
| 421 | +if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec'] == 'valider_xml') { |
|
| 422 | 422 | $url = trim($_REQUEST['var_url']); |
| 423 | - if (strncmp($url,'/',1)==0 |
|
| 424 | - or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false) |
|
| 425 | - or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false) |
|
| 426 | - or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) { |
|
| 423 | + if (strncmp($url, '/', 1) == 0 |
|
| 424 | + or (($p = strpos($url, '..')) !== false AND strpos($url, '..', $p + 3) !== false) |
|
| 425 | + or (($p = strpos($url, '..')) !== false AND strpos($url, 'IMG', $p + 3) !== false) |
|
| 426 | + or (strpos($url, '://') !== false or strpos($url, ':\\') !== false)) { |
|
| 427 | 427 | $ecran_securite_raison = 'URL interdite pour var_url'; |
| 428 | 428 | } |
| 429 | 429 | } |
@@ -432,10 +432,10 @@ discard block |
||
| 432 | 432 | * Sauvegarde mal securisée < 2.0.9 |
| 433 | 433 | */ |
| 434 | 434 | if (isset($_REQUEST['nom_sauvegarde']) |
| 435 | -and strstr((string)$_REQUEST['nom_sauvegarde'], '/')) |
|
| 435 | +and strstr((string) $_REQUEST['nom_sauvegarde'], '/')) |
|
| 436 | 436 | $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
| 437 | 437 | if (isset($_REQUEST['znom_sauvegarde']) |
| 438 | -and strstr((string)$_REQUEST['znom_sauvegarde'], '/')) |
|
| 438 | +and strstr((string) $_REQUEST['znom_sauvegarde'], '/')) |
|
| 439 | 439 | $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
| 440 | 440 | |
| 441 | 441 | |
@@ -450,8 +450,8 @@ discard block |
||
| 450 | 450 | /* |
| 451 | 451 | * Forms & Table ne se méfiait pas assez des uploads de fichiers |
| 452 | 452 | */ |
| 453 | -if (count($_FILES)){ |
|
| 454 | - foreach($_FILES as $k => $v){ |
|
| 453 | +if (count($_FILES)) { |
|
| 454 | + foreach ($_FILES as $k => $v) { |
|
| 455 | 455 | if (preg_match(',^fichier_\d+$,', $k) |
| 456 | 456 | and preg_match(',\.php,i', $v['name'])) |
| 457 | 457 | unset($_FILES[$k]); |
@@ -461,7 +461,7 @@ discard block |
||
| 461 | 461 | * et Contact trop laxiste avec une variable externe |
| 462 | 462 | * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout |
| 463 | 463 | */ |
| 464 | -if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']){ |
|
| 464 | +if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']) { |
|
| 465 | 465 | unset($_REQUEST['pj_enregistrees_nom']); |
| 466 | 466 | unset($_GET['pj_enregistrees_nom']); |
| 467 | 467 | unset($_POST['pj_enregistrees_nom']); |
@@ -491,7 +491,7 @@ discard block |
||
| 491 | 491 | /* |
| 492 | 492 | * Réinjection des clés en html dans l'admin r19561 |
| 493 | 493 | */ |
| 494 | -if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){ |
|
| 494 | +if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])) { |
|
| 495 | 495 | $zzzz = implode("", array_keys($_REQUEST)); |
| 496 | 496 | if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) |
| 497 | 497 | $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
@@ -14,8 +14,9 @@ discard block |
||
| 14 | 14 | /* |
| 15 | 15 | * Test utilisateur |
| 16 | 16 | */ |
| 17 | -if (isset($_GET['test_ecran_securite'])) |
|
| 17 | +if (isset($_GET['test_ecran_securite'])) { |
|
| 18 | 18 | $ecran_securite_raison = 'test '._ECRAN_SECURITE; |
| 19 | +} |
|
| 19 | 20 | |
| 20 | 21 | /* |
| 21 | 22 | * Monitoring |
@@ -243,18 +244,21 @@ discard block |
||
| 243 | 244 | * (id_base est une variable de la config des widgets de WordPress) |
| 244 | 245 | */ |
| 245 | 246 | $_exceptions = array('id_table','id_base','id_parent','id_article_pdf'); |
| 246 | -foreach ($_GET as $var => $val) |
|
| 247 | +foreach ($_GET as $var => $val) { |
|
| 247 | 248 | if ($_GET[$var] and strncmp($var, "id_", 3) == 0 |
| 248 | 249 | and !in_array($var, $_exceptions)) |
| 249 | 250 | $_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]); |
| 250 | -foreach ($_POST as $var => $val) |
|
| 251 | +} |
|
| 252 | +foreach ($_POST as $var => $val) { |
|
| 251 | 253 | if ($_POST[$var] and strncmp($var, "id_", 3) == 0 |
| 252 | 254 | and !in_array($var, $_exceptions)) |
| 253 | 255 | $_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]); |
| 254 | -foreach ($GLOBALS as $var => $val) |
|
| 256 | +} |
|
| 257 | +foreach ($GLOBALS as $var => $val) { |
|
| 255 | 258 | if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0 |
| 256 | 259 | and !in_array($var, $_exceptions)) |
| 257 | 260 | $GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]); |
| 261 | +} |
|
| 258 | 262 | |
| 259 | 263 | /* |
| 260 | 264 | * Interdit la variable $cjpeg_command, qui était utilisée sans |
@@ -266,11 +270,13 @@ discard block |
||
| 266 | 270 | * Contrôle de quelques variables (XSS) |
| 267 | 271 | */ |
| 268 | 272 | foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) { |
| 269 | - if (isset($_GET[$var])) |
|
| 270 | - $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 271 | - if (isset($_POST[$var])) |
|
| 272 | - $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 273 | -} |
|
| 273 | + if (isset($_GET[$var])) { |
|
| 274 | + $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]); |
|
| 275 | + } |
|
| 276 | + if (isset($_POST[$var])) { |
|
| 277 | + $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]); |
|
| 278 | + } |
|
| 279 | + } |
|
| 274 | 280 | |
| 275 | 281 | /* |
| 276 | 282 | * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x) |
@@ -284,41 +290,49 @@ discard block |
||
| 284 | 290 | */ |
| 285 | 291 | if (isset($_REQUEST['mode']) and isset($_REQUEST['page']) |
| 286 | 292 | and !in_array($_REQUEST['mode'], array("6forum", "1comite")) |
| 287 | -and $_REQUEST['page'] == "identifiants") |
|
| 293 | +and $_REQUEST['page'] == "identifiants") { |
|
| 288 | 294 | $ecran_securite_raison = "identifiants"; |
| 295 | +} |
|
| 289 | 296 | |
| 290 | 297 | /* |
| 291 | 298 | * Agenda joue à l'injection php |
| 292 | 299 | */ |
| 293 | 300 | if (isset($_REQUEST['partie_cal']) |
| 294 | -and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])) |
|
| 301 | +and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])) { |
|
| 295 | 302 | $ecran_securite_raison = "partie_cal"; |
| 303 | +} |
|
| 296 | 304 | if (isset($_REQUEST['echelle']) |
| 297 | -and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])) |
|
| 305 | +and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])) { |
|
| 298 | 306 | $ecran_securite_raison = "echelle"; |
| 307 | +} |
|
| 299 | 308 | |
| 300 | 309 | /* |
| 301 | 310 | * Espace privé |
| 302 | 311 | */ |
| 303 | 312 | if (isset($_REQUEST['exec']) |
| 304 | -and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])) |
|
| 313 | +and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])) { |
|
| 305 | 314 | $ecran_securite_raison = "exec"; |
| 315 | +} |
|
| 306 | 316 | if (isset($_REQUEST['cherche_auteur']) |
| 307 | -and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])) |
|
| 317 | +and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])) { |
|
| 308 | 318 | $ecran_securite_raison = "cherche_auteur"; |
| 319 | +} |
|
| 309 | 320 | if (isset($_REQUEST['exec']) |
| 310 | 321 | and $_REQUEST['exec'] == 'auteurs' |
| 311 | -and preg_match(',[<],', (string)$_REQUEST['recherche'])) |
|
| 322 | +and preg_match(',[<],', (string)$_REQUEST['recherche'])) { |
|
| 312 | 323 | $ecran_securite_raison = "recherche"; |
| 324 | +} |
|
| 313 | 325 | if (isset($_REQUEST['exec']) |
| 314 | 326 | and $_REQUEST['exec'] == 'info_plugin' |
| 315 | -and preg_match(',[<],', (string)$_REQUEST['plugin'])) |
|
| 327 | +and preg_match(',[<],', (string)$_REQUEST['plugin'])) { |
|
| 316 | 328 | $ecran_securite_raison = "plugin"; |
| 329 | +} |
|
| 317 | 330 | if (isset($_REQUEST['exec']) |
| 318 | 331 | and $_REQUEST['exec'] == 'puce_statut' |
| 319 | 332 | and isset($_REQUEST['id']) |
| 320 | -and !intval($_REQUEST['id'])) |
|
| 333 | +and !intval($_REQUEST['id'])) { |
|
| 321 | 334 | $ecran_securite_raison = "puce_statut"; |
| 335 | +} |
|
| 322 | 336 | if (isset($_REQUEST['action']) |
| 323 | 337 | and $_REQUEST['action'] == 'configurer') { |
| 324 | 338 | if (@file_exists('inc_version.php') |
@@ -343,21 +357,24 @@ discard block |
||
| 343 | 357 | @get_magic_quotes_gpc() ? |
| 344 | 358 | stripslashes(serialize($_REQUEST)) : serialize($_REQUEST), |
| 345 | 359 | chr(0) |
| 346 | -) !== false) |
|
| 360 | +) !== false) { |
|
| 347 | 361 | $ecran_securite_raison = "%00"; |
| 362 | +} |
|
| 348 | 363 | |
| 349 | 364 | /* |
| 350 | 365 | * Bloque les requêtes fond=formulaire_ |
| 351 | 366 | */ |
| 352 | 367 | if (isset($_REQUEST['fond']) |
| 353 | -and preg_match(',^formulaire_,i', $_REQUEST['fond'])) |
|
| 368 | +and preg_match(',^formulaire_,i', $_REQUEST['fond'])) { |
|
| 354 | 369 | $ecran_securite_raison = "fond=formulaire_"; |
| 370 | +} |
|
| 355 | 371 | |
| 356 | 372 | /* |
| 357 | 373 | * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php) |
| 358 | 374 | */ |
| 359 | -if (isset($_REQUEST['GLOBALS'])) |
|
| 375 | +if (isset($_REQUEST['GLOBALS'])) { |
|
| 360 | 376 | $ecran_securite_raison = "GLOBALS[GLOBALS]"; |
| 377 | +} |
|
| 361 | 378 | |
| 362 | 379 | /* |
| 363 | 380 | * Bloque les requêtes des bots sur: |
@@ -370,29 +387,34 @@ discard block |
||
| 370 | 387 | or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') ) |
| 371 | 388 | or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI'])) |
| 372 | 389 | ) |
| 373 | -) |
|
| 390 | +) { |
|
| 374 | 391 | $ecran_securite_raison = "robot agenda/double pagination"; |
| 392 | +} |
|
| 375 | 393 | |
| 376 | 394 | /* |
| 377 | 395 | * Bloque une vieille page de tests de CFG (<1.11) |
| 378 | 396 | * Bloque un XSS sur une page inexistante |
| 379 | 397 | */ |
| 380 | 398 | if (isset($_REQUEST['page'])) { |
| 381 | - if ($_REQUEST['page'] == 'test_cfg') |
|
| 382 | - $ecran_securite_raison = "test_cfg"; |
|
| 383 | - if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) |
|
| 384 | - $ecran_securite_raison = "xsspage"; |
|
| 399 | + if ($_REQUEST['page'] == 'test_cfg') { |
|
| 400 | + $ecran_securite_raison = "test_cfg"; |
|
| 401 | + } |
|
| 402 | + if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) { |
|
| 403 | + $ecran_securite_raison = "xsspage"; |
|
| 404 | + } |
|
| 385 | 405 | if ($_REQUEST['page'] == '404' |
| 386 | - and isset($_REQUEST['erreur'])) |
|
| 387 | - $ecran_securite_raison = "xss404"; |
|
| 388 | -} |
|
| 406 | + and isset($_REQUEST['erreur'])) { |
|
| 407 | + $ecran_securite_raison = "xss404"; |
|
| 408 | + } |
|
| 409 | + } |
|
| 389 | 410 | |
| 390 | 411 | /* |
| 391 | 412 | * XSS par array |
| 392 | 413 | */ |
| 393 | -foreach (array('var_login') as $var) |
|
| 394 | -if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) |
|
| 414 | +foreach (array('var_login') as $var) { |
|
| 415 | + if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) |
|
| 395 | 416 | $ecran_securite_raison = "xss ".$var; |
| 417 | +} |
|
| 396 | 418 | |
| 397 | 419 | /* |
| 398 | 420 | * Parade antivirale contre un cheval de troie |
@@ -402,18 +424,21 @@ discard block |
||
| 402 | 424 | function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) { |
| 403 | 425 | // si jamais on est arrivé ici sur une erreur php |
| 404 | 426 | // et qu'un autre gestionnaire d'erreur est défini, l'appeller |
| 405 | - if ($b && $GLOBALS['tmp_xhgfjokl']) |
|
| 406 | - call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 427 | + if ($b && $GLOBALS['tmp_xhgfjokl']) { |
|
| 428 | + call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d); |
|
| 429 | + } |
|
| 407 | 430 | } |
| 408 | 431 | } |
| 409 | -if (isset($_POST['tmp_lkojfghx3'])) |
|
| 432 | +if (isset($_POST['tmp_lkojfghx3'])) { |
|
| 410 | 433 | $ecran_securite_raison = "gumblar"; |
| 434 | +} |
|
| 411 | 435 | |
| 412 | 436 | /* |
| 413 | 437 | * Outils XML mal sécurisés < 2.0.9 |
| 414 | 438 | */ |
| 415 | -if (isset($_REQUEST['transformer_xml'])) |
|
| 439 | +if (isset($_REQUEST['transformer_xml'])) { |
|
| 416 | 440 | $ecran_securite_raison = "transformer_xml"; |
| 441 | +} |
|
| 417 | 442 | |
| 418 | 443 | /* |
| 419 | 444 | * Outils XML mal sécurisés again |
@@ -432,11 +457,13 @@ discard block |
||
| 432 | 457 | * Sauvegarde mal securisée < 2.0.9 |
| 433 | 458 | */ |
| 434 | 459 | if (isset($_REQUEST['nom_sauvegarde']) |
| 435 | -and strstr((string)$_REQUEST['nom_sauvegarde'], '/')) |
|
| 460 | +and strstr((string)$_REQUEST['nom_sauvegarde'], '/')) { |
|
| 436 | 461 | $ecran_securite_raison = 'nom_sauvegarde manipulee'; |
| 462 | +} |
|
| 437 | 463 | if (isset($_REQUEST['znom_sauvegarde']) |
| 438 | -and strstr((string)$_REQUEST['znom_sauvegarde'], '/')) |
|
| 464 | +and strstr((string)$_REQUEST['znom_sauvegarde'], '/')) { |
|
| 439 | 465 | $ecran_securite_raison = 'znom_sauvegarde manipulee'; |
| 466 | +} |
|
| 440 | 467 | |
| 441 | 468 | |
| 442 | 469 | /* |
@@ -444,8 +471,9 @@ discard block |
||
| 444 | 471 | * on vérifie 'page' pour ne pas bloquer ... drupal |
| 445 | 472 | */ |
| 446 | 473 | if (isset($_REQUEST['op']) and isset($_REQUEST['page']) |
| 447 | -and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op'])) |
|
| 474 | +and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op'])) { |
|
| 448 | 475 | $ecran_securite_raison = 'op'; |
| 476 | +} |
|
| 449 | 477 | |
| 450 | 478 | /* |
| 451 | 479 | * Forms & Table ne se méfiait pas assez des uploads de fichiers |
@@ -453,8 +481,9 @@ discard block |
||
| 453 | 481 | if (count($_FILES)){ |
| 454 | 482 | foreach($_FILES as $k => $v){ |
| 455 | 483 | if (preg_match(',^fichier_\d+$,', $k) |
| 456 | - and preg_match(',\.php,i', $v['name'])) |
|
| 457 | - unset($_FILES[$k]); |
|
| 484 | + and preg_match(',\.php,i', $v['name'])) { |
|
| 485 | + unset($_FILES[$k]); |
|
| 486 | + } |
|
| 458 | 487 | } |
| 459 | 488 | } |
| 460 | 489 | /* |
@@ -471,21 +500,24 @@ discard block |
||
| 471 | 500 | * reinstall=oui un peu trop permissif |
| 472 | 501 | */ |
| 473 | 502 | if (isset($_REQUEST['reinstall']) |
| 474 | -and $_REQUEST['reinstall'] == 'oui') |
|
| 503 | +and $_REQUEST['reinstall'] == 'oui') { |
|
| 475 | 504 | $ecran_securite_raison = 'reinstall=oui'; |
| 505 | +} |
|
| 476 | 506 | |
| 477 | 507 | /* |
| 478 | 508 | * Échappement xss referer |
| 479 | 509 | */ |
| 480 | -if (isset($_SERVER['HTTP_REFERER'])) |
|
| 510 | +if (isset($_SERVER['HTTP_REFERER'])) { |
|
| 481 | 511 | $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##'); |
| 512 | +} |
|
| 482 | 513 | |
| 483 | 514 | |
| 484 | 515 | /* |
| 485 | 516 | * Echappement HTTP_X_FORWARDED_HOST |
| 486 | 517 | */ |
| 487 | -if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) |
|
| 518 | +if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 488 | 519 | $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________'); |
| 520 | +} |
|
| 489 | 521 | |
| 490 | 522 | |
| 491 | 523 | /* |
@@ -493,9 +525,10 @@ discard block |
||
| 493 | 525 | */ |
| 494 | 526 | if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){ |
| 495 | 527 | $zzzz = implode("", array_keys($_REQUEST)); |
| 496 | - if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) |
|
| 497 | - $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 498 | -} |
|
| 528 | + if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) { |
|
| 529 | + $ecran_securite_raison = 'Cle incorrecte en $_REQUEST'; |
|
| 530 | + } |
|
| 531 | + } |
|
| 499 | 532 | |
| 500 | 533 | /* |
| 501 | 534 | * Injection par connect |
@@ -544,8 +577,9 @@ discard block |
||
| 544 | 577 | /* |
| 545 | 578 | * Bloque les bots quand le load déborde |
| 546 | 579 | */ |
| 547 | -if (!defined('_ECRAN_SECURITE_LOAD')) |
|
| 580 | +if (!defined('_ECRAN_SECURITE_LOAD')) { |
|
| 548 | 581 | define('_ECRAN_SECURITE_LOAD', 4); |
| 582 | +} |
|
| 549 | 583 | |
| 550 | 584 | if ( |
| 551 | 585 | defined('_ECRAN_SECURITE_LOAD') |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | */ |
| 20 | 20 | |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | |
@@ -40,15 +40,15 @@ discard block |
||
| 40 | 40 | * @return bool|null|void |
| 41 | 41 | */ |
| 42 | 42 | function inc_session_dist($auteur = false) { |
| 43 | - if (is_numeric($auteur)) { |
|
| 44 | - return supprimer_sessions($auteur, $auteur > 0); |
|
| 45 | - } else { |
|
| 46 | - if (is_array($auteur)) { |
|
| 47 | - return ajouter_session($auteur); |
|
| 48 | - } else { |
|
| 49 | - return verifier_session($auteur); |
|
| 50 | - } |
|
| 51 | - } |
|
| 43 | + if (is_numeric($auteur)) { |
|
| 44 | + return supprimer_sessions($auteur, $auteur > 0); |
|
| 45 | + } else { |
|
| 46 | + if (is_array($auteur)) { |
|
| 47 | + return ajouter_session($auteur); |
|
| 48 | + } else { |
|
| 49 | + return verifier_session($auteur); |
|
| 50 | + } |
|
| 51 | + } |
|
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | |
@@ -77,26 +77,26 @@ discard block |
||
| 77 | 77 | */ |
| 78 | 78 | function supprimer_sessions($id_auteur, $toutes = true, $actives = true) { |
| 79 | 79 | |
| 80 | - spip_log("supprimer sessions auteur $id_auteur", "session"); |
|
| 81 | - if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 82 | - if ($dir = opendir(_DIR_SESSIONS)) { |
|
| 83 | - $t = time() - (4 * _RENOUVELLE_ALEA); |
|
| 84 | - while (($f = readdir($dir)) !== false) { |
|
| 85 | - if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) { |
|
| 86 | - $f = _DIR_SESSIONS . $f; |
|
| 87 | - if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) { |
|
| 88 | - spip_unlink($f); |
|
| 89 | - } |
|
| 90 | - } |
|
| 91 | - } |
|
| 92 | - } |
|
| 93 | - } else { |
|
| 94 | - verifier_session(); |
|
| 95 | - spip_unlink(fichier_session('alea_ephemere', true)); |
|
| 96 | - } |
|
| 97 | - |
|
| 98 | - // forcer le recalcul de la session courante |
|
| 99 | - spip_session(true); |
|
| 80 | + spip_log("supprimer sessions auteur $id_auteur", "session"); |
|
| 81 | + if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 82 | + if ($dir = opendir(_DIR_SESSIONS)) { |
|
| 83 | + $t = time() - (4 * _RENOUVELLE_ALEA); |
|
| 84 | + while (($f = readdir($dir)) !== false) { |
|
| 85 | + if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) { |
|
| 86 | + $f = _DIR_SESSIONS . $f; |
|
| 87 | + if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) { |
|
| 88 | + spip_unlink($f); |
|
| 89 | + } |
|
| 90 | + } |
|
| 91 | + } |
|
| 92 | + } |
|
| 93 | + } else { |
|
| 94 | + verifier_session(); |
|
| 95 | + spip_unlink(fichier_session('alea_ephemere', true)); |
|
| 96 | + } |
|
| 97 | + |
|
| 98 | + // forcer le recalcul de la session courante |
|
| 99 | + spip_session(true); |
|
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | /** |
@@ -114,116 +114,116 @@ discard block |
||
| 114 | 114 | * @return bool|string |
| 115 | 115 | */ |
| 116 | 116 | function ajouter_session($auteur) { |
| 117 | - // Si le client a deja une session valide pour son id_auteur |
|
| 118 | - // on conserve le meme fichier |
|
| 119 | - |
|
| 120 | - // Attention un visiteur peut avoir une session et un id=0, |
|
| 121 | - // => ne pas melanger les sessions des differents visiteurs |
|
| 122 | - $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0; |
|
| 123 | - |
|
| 124 | - // Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session) |
|
| 125 | - // on va vérifier s'il y a vraiment des choses à écrire |
|
| 126 | - if (!$id_auteur) { |
|
| 127 | - // On supprime les données de base pour voir le contenu réel de la session |
|
| 128 | - $auteur_verif = $auteur; |
|
| 129 | - if (isset($auteur_verif['id_auteur'])) { |
|
| 130 | - unset($auteur_verif['id_auteur']); |
|
| 131 | - } |
|
| 132 | - if (isset($auteur_verif['hash_env'])) { |
|
| 133 | - unset($auteur_verif['hash_env']); |
|
| 134 | - } |
|
| 135 | - if (isset($auteur_verif['ip_change'])) { |
|
| 136 | - unset($auteur_verif['ip_change']); |
|
| 137 | - } |
|
| 138 | - if (isset($auteur_verif['date_session'])) { |
|
| 139 | - unset($auteur_verif['date_session']); |
|
| 140 | - } |
|
| 141 | - |
|
| 142 | - // Les variables vraiment nulle ne sont pas à prendre en compte non plus |
|
| 143 | - foreach ($auteur_verif as $variable => $valeur) { |
|
| 144 | - if ($valeur === null) { |
|
| 145 | - unset($auteur_verif[$variable]); |
|
| 146 | - } |
|
| 147 | - } |
|
| 148 | - |
|
| 149 | - // Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là |
|
| 150 | - if (!$auteur_verif) { |
|
| 151 | - if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) { |
|
| 152 | - unset($_SESSION[$_COOKIE['spip_session']]); |
|
| 153 | - } |
|
| 154 | - if (isset($_COOKIE['spip_session'])) { |
|
| 155 | - unset($_COOKIE['spip_session']); |
|
| 156 | - } |
|
| 157 | - |
|
| 158 | - return false; |
|
| 159 | - } |
|
| 160 | - } |
|
| 161 | - |
|
| 162 | - if (!isset($_COOKIE['spip_session']) |
|
| 163 | - or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session']) |
|
| 164 | - ) { |
|
| 165 | - $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true)); |
|
| 166 | - } |
|
| 167 | - |
|
| 168 | - // Maintenant on sait qu'on a des choses à écrire |
|
| 169 | - // On s'assure d'avoir au moins ces valeurs |
|
| 170 | - $auteur['id_auteur'] = $id_auteur; |
|
| 171 | - if (!isset($auteur['hash_env'])) { |
|
| 172 | - $auteur['hash_env'] = hash_env(); |
|
| 173 | - } |
|
| 174 | - if (!isset($auteur['ip_change'])) { |
|
| 175 | - $auteur['ip_change'] = false; |
|
| 176 | - } |
|
| 177 | - |
|
| 178 | - if (!isset($auteur['date_session'])) { |
|
| 179 | - $auteur['date_session'] = time(); |
|
| 180 | - } |
|
| 181 | - if (isset($auteur['prefs']) |
|
| 182 | - and is_string($auteur['prefs']) |
|
| 183 | - and $prefs = @unserialize($auteur['prefs'])) { |
|
| 184 | - $auteur['prefs'] = $prefs; |
|
| 185 | - } |
|
| 186 | - |
|
| 187 | - $fichier_session = ""; |
|
| 188 | - |
|
| 189 | - // les sessions anonymes sont stockees dans $_SESSION |
|
| 190 | - if (!$id_auteur) { |
|
| 191 | - spip_php_session_start(); |
|
| 192 | - $_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur); |
|
| 193 | - } else { |
|
| 194 | - $fichier_session = fichier_session('alea_ephemere'); |
|
| 195 | - if (!ecrire_fichier_session($fichier_session, $auteur)) { |
|
| 196 | - spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS); |
|
| 197 | - include_spip('inc/minipres'); |
|
| 198 | - echo minipres(); |
|
| 199 | - exit; |
|
| 200 | - } |
|
| 201 | - // verifier et limiter le nombre maxi de sessions |
|
| 202 | - // https://core.spip.net/issues/3807 |
|
| 203 | - lister_sessions_auteur($id_auteur); |
|
| 204 | - } |
|
| 205 | - |
|
| 206 | - // poser le cookie de session SPIP |
|
| 207 | - include_spip('inc/cookie'); |
|
| 208 | - $duree = definir_duree_cookie_session($auteur); |
|
| 209 | - spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree); |
|
| 210 | - spip_log("ajoute session $fichier_session cookie $duree", "session"); |
|
| 211 | - |
|
| 212 | - // Si on est admin, poser le cookie de correspondance |
|
| 213 | - if (!function_exists('autoriser')) { |
|
| 214 | - include_spip('inc/autoriser'); |
|
| 215 | - } |
|
| 216 | - if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) { |
|
| 217 | - spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree)); |
|
| 218 | - } // sinon le supprimer ... |
|
| 219 | - else { |
|
| 220 | - spip_setcookie('spip_admin', '', 1); |
|
| 221 | - } |
|
| 222 | - |
|
| 223 | - # on en profite pour purger les vieilles sessions anonymes abandonnees |
|
| 224 | - # supprimer_sessions(0, true, false); |
|
| 225 | - |
|
| 226 | - return $_COOKIE['spip_session']; |
|
| 117 | + // Si le client a deja une session valide pour son id_auteur |
|
| 118 | + // on conserve le meme fichier |
|
| 119 | + |
|
| 120 | + // Attention un visiteur peut avoir une session et un id=0, |
|
| 121 | + // => ne pas melanger les sessions des differents visiteurs |
|
| 122 | + $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0; |
|
| 123 | + |
|
| 124 | + // Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session) |
|
| 125 | + // on va vérifier s'il y a vraiment des choses à écrire |
|
| 126 | + if (!$id_auteur) { |
|
| 127 | + // On supprime les données de base pour voir le contenu réel de la session |
|
| 128 | + $auteur_verif = $auteur; |
|
| 129 | + if (isset($auteur_verif['id_auteur'])) { |
|
| 130 | + unset($auteur_verif['id_auteur']); |
|
| 131 | + } |
|
| 132 | + if (isset($auteur_verif['hash_env'])) { |
|
| 133 | + unset($auteur_verif['hash_env']); |
|
| 134 | + } |
|
| 135 | + if (isset($auteur_verif['ip_change'])) { |
|
| 136 | + unset($auteur_verif['ip_change']); |
|
| 137 | + } |
|
| 138 | + if (isset($auteur_verif['date_session'])) { |
|
| 139 | + unset($auteur_verif['date_session']); |
|
| 140 | + } |
|
| 141 | + |
|
| 142 | + // Les variables vraiment nulle ne sont pas à prendre en compte non plus |
|
| 143 | + foreach ($auteur_verif as $variable => $valeur) { |
|
| 144 | + if ($valeur === null) { |
|
| 145 | + unset($auteur_verif[$variable]); |
|
| 146 | + } |
|
| 147 | + } |
|
| 148 | + |
|
| 149 | + // Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là |
|
| 150 | + if (!$auteur_verif) { |
|
| 151 | + if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) { |
|
| 152 | + unset($_SESSION[$_COOKIE['spip_session']]); |
|
| 153 | + } |
|
| 154 | + if (isset($_COOKIE['spip_session'])) { |
|
| 155 | + unset($_COOKIE['spip_session']); |
|
| 156 | + } |
|
| 157 | + |
|
| 158 | + return false; |
|
| 159 | + } |
|
| 160 | + } |
|
| 161 | + |
|
| 162 | + if (!isset($_COOKIE['spip_session']) |
|
| 163 | + or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session']) |
|
| 164 | + ) { |
|
| 165 | + $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true)); |
|
| 166 | + } |
|
| 167 | + |
|
| 168 | + // Maintenant on sait qu'on a des choses à écrire |
|
| 169 | + // On s'assure d'avoir au moins ces valeurs |
|
| 170 | + $auteur['id_auteur'] = $id_auteur; |
|
| 171 | + if (!isset($auteur['hash_env'])) { |
|
| 172 | + $auteur['hash_env'] = hash_env(); |
|
| 173 | + } |
|
| 174 | + if (!isset($auteur['ip_change'])) { |
|
| 175 | + $auteur['ip_change'] = false; |
|
| 176 | + } |
|
| 177 | + |
|
| 178 | + if (!isset($auteur['date_session'])) { |
|
| 179 | + $auteur['date_session'] = time(); |
|
| 180 | + } |
|
| 181 | + if (isset($auteur['prefs']) |
|
| 182 | + and is_string($auteur['prefs']) |
|
| 183 | + and $prefs = @unserialize($auteur['prefs'])) { |
|
| 184 | + $auteur['prefs'] = $prefs; |
|
| 185 | + } |
|
| 186 | + |
|
| 187 | + $fichier_session = ""; |
|
| 188 | + |
|
| 189 | + // les sessions anonymes sont stockees dans $_SESSION |
|
| 190 | + if (!$id_auteur) { |
|
| 191 | + spip_php_session_start(); |
|
| 192 | + $_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur); |
|
| 193 | + } else { |
|
| 194 | + $fichier_session = fichier_session('alea_ephemere'); |
|
| 195 | + if (!ecrire_fichier_session($fichier_session, $auteur)) { |
|
| 196 | + spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS); |
|
| 197 | + include_spip('inc/minipres'); |
|
| 198 | + echo minipres(); |
|
| 199 | + exit; |
|
| 200 | + } |
|
| 201 | + // verifier et limiter le nombre maxi de sessions |
|
| 202 | + // https://core.spip.net/issues/3807 |
|
| 203 | + lister_sessions_auteur($id_auteur); |
|
| 204 | + } |
|
| 205 | + |
|
| 206 | + // poser le cookie de session SPIP |
|
| 207 | + include_spip('inc/cookie'); |
|
| 208 | + $duree = definir_duree_cookie_session($auteur); |
|
| 209 | + spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree); |
|
| 210 | + spip_log("ajoute session $fichier_session cookie $duree", "session"); |
|
| 211 | + |
|
| 212 | + // Si on est admin, poser le cookie de correspondance |
|
| 213 | + if (!function_exists('autoriser')) { |
|
| 214 | + include_spip('inc/autoriser'); |
|
| 215 | + } |
|
| 216 | + if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) { |
|
| 217 | + spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree)); |
|
| 218 | + } // sinon le supprimer ... |
|
| 219 | + else { |
|
| 220 | + spip_setcookie('spip_admin', '', 1); |
|
| 221 | + } |
|
| 222 | + |
|
| 223 | + # on en profite pour purger les vieilles sessions anonymes abandonnees |
|
| 224 | + # supprimer_sessions(0, true, false); |
|
| 225 | + |
|
| 226 | + return $_COOKIE['spip_session']; |
|
| 227 | 227 | } |
| 228 | 228 | |
| 229 | 229 | /** |
@@ -243,15 +243,15 @@ discard block |
||
| 243 | 243 | * Durée en secondes |
| 244 | 244 | **/ |
| 245 | 245 | function definir_duree_cookie_session($auteur) { |
| 246 | - $coef = 2; |
|
| 247 | - if (isset($auteur['cookie'])) { |
|
| 248 | - if (is_numeric($auteur['cookie'])) { |
|
| 249 | - $coef = $auteur['cookie']; |
|
| 250 | - } else { |
|
| 251 | - $coef = 20; |
|
| 252 | - } |
|
| 253 | - } |
|
| 254 | - return (int)(_RENOUVELLE_ALEA * $coef); |
|
| 246 | + $coef = 2; |
|
| 247 | + if (isset($auteur['cookie'])) { |
|
| 248 | + if (is_numeric($auteur['cookie'])) { |
|
| 249 | + $coef = $auteur['cookie']; |
|
| 250 | + } else { |
|
| 251 | + $coef = 20; |
|
| 252 | + } |
|
| 253 | + } |
|
| 254 | + return (int)(_RENOUVELLE_ALEA * $coef); |
|
| 255 | 255 | } |
| 256 | 256 | |
| 257 | 257 | /** |
@@ -271,90 +271,90 @@ discard block |
||
| 271 | 271 | * @return bool|int|null |
| 272 | 272 | */ |
| 273 | 273 | function verifier_session($change = false) { |
| 274 | - // si pas de cookie, c'est fichu |
|
| 275 | - if (!isset($_COOKIE['spip_session'])) { |
|
| 276 | - return false; |
|
| 277 | - } |
|
| 278 | - |
|
| 279 | - $fichier_session = ""; |
|
| 280 | - |
|
| 281 | - // est-ce une session anonyme ? |
|
| 282 | - if (!intval($_COOKIE['spip_session'])) { |
|
| 283 | - spip_php_session_start(); |
|
| 284 | - if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) { |
|
| 285 | - return false; |
|
| 286 | - } |
|
| 287 | - $GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']]; |
|
| 288 | - } else { |
|
| 289 | - // Tester avec alea courant |
|
| 290 | - $fichier_session = fichier_session('alea_ephemere', true); |
|
| 291 | - if ($fichier_session and @file_exists($fichier_session)) { |
|
| 292 | - include($fichier_session); |
|
| 293 | - } else { |
|
| 294 | - // Sinon, tester avec alea precedent |
|
| 295 | - $fichier_session = fichier_session('alea_ephemere_ancien', true); |
|
| 296 | - if (!$fichier_session or !@file_exists($fichier_session)) { |
|
| 297 | - return false; |
|
| 298 | - } |
|
| 299 | - |
|
| 300 | - // Renouveler la session avec l'alea courant |
|
| 301 | - include($fichier_session); |
|
| 302 | - spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session"); |
|
| 303 | - spip_unlink($fichier_session); |
|
| 304 | - ajouter_session($GLOBALS['visiteur_session']); |
|
| 305 | - } |
|
| 306 | - } |
|
| 307 | - |
|
| 308 | - // Compatibilite ascendante : auteur_session est visiteur_session si |
|
| 309 | - // c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut |
|
| 310 | - // n'etre qu'identifie, sans aucune authentification). |
|
| 311 | - |
|
| 312 | - if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 313 | - $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session']; |
|
| 314 | - } |
|
| 315 | - |
|
| 316 | - |
|
| 317 | - // Si l'adresse IP change, inc/presentation mettra une balise image |
|
| 318 | - // avec un URL de rappel demandant a changer le nom de la session. |
|
| 319 | - // Seul celui qui a l'IP d'origine est rejoue |
|
| 320 | - // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter |
|
| 321 | - // sa victime, mais se ferait deconnecter par elle. |
|
| 322 | - if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) { |
|
| 323 | - if (!$GLOBALS['visiteur_session']['ip_change']) { |
|
| 324 | - define('_SESSION_REJOUER', true); |
|
| 325 | - $GLOBALS['visiteur_session']['ip_change'] = true; |
|
| 326 | - ajouter_session($GLOBALS['visiteur_session']); |
|
| 327 | - } else { |
|
| 328 | - if ($change) { |
|
| 329 | - spip_log("session non rejouee, vol de cookie ?", "session"); |
|
| 330 | - } |
|
| 331 | - } |
|
| 332 | - } else { |
|
| 333 | - if ($change) { |
|
| 334 | - spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session"); |
|
| 335 | - if ($fichier_session) { |
|
| 336 | - spip_unlink($fichier_session); |
|
| 337 | - } |
|
| 338 | - $GLOBALS['visiteur_session']['ip_change'] = false; |
|
| 339 | - unset($_COOKIE['spip_session']); |
|
| 340 | - ajouter_session($GLOBALS['visiteur_session']); |
|
| 341 | - } |
|
| 342 | - } |
|
| 343 | - |
|
| 344 | - // Si la session a ete initiee il y a trop longtemps, elle est annulee |
|
| 345 | - if (isset($GLOBALS['visiteur_session']) |
|
| 346 | - and defined('_AGE_SESSION_MAX') |
|
| 347 | - and _AGE_SESSION_MAX > 0 |
|
| 348 | - and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX |
|
| 349 | - ) { |
|
| 350 | - unset($GLOBALS['visiteur_session']); |
|
| 351 | - |
|
| 352 | - return false; |
|
| 353 | - } |
|
| 354 | - |
|
| 355 | - return is_numeric($GLOBALS['visiteur_session']['id_auteur']) |
|
| 356 | - ? $GLOBALS['visiteur_session']['id_auteur'] |
|
| 357 | - : null; |
|
| 274 | + // si pas de cookie, c'est fichu |
|
| 275 | + if (!isset($_COOKIE['spip_session'])) { |
|
| 276 | + return false; |
|
| 277 | + } |
|
| 278 | + |
|
| 279 | + $fichier_session = ""; |
|
| 280 | + |
|
| 281 | + // est-ce une session anonyme ? |
|
| 282 | + if (!intval($_COOKIE['spip_session'])) { |
|
| 283 | + spip_php_session_start(); |
|
| 284 | + if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) { |
|
| 285 | + return false; |
|
| 286 | + } |
|
| 287 | + $GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']]; |
|
| 288 | + } else { |
|
| 289 | + // Tester avec alea courant |
|
| 290 | + $fichier_session = fichier_session('alea_ephemere', true); |
|
| 291 | + if ($fichier_session and @file_exists($fichier_session)) { |
|
| 292 | + include($fichier_session); |
|
| 293 | + } else { |
|
| 294 | + // Sinon, tester avec alea precedent |
|
| 295 | + $fichier_session = fichier_session('alea_ephemere_ancien', true); |
|
| 296 | + if (!$fichier_session or !@file_exists($fichier_session)) { |
|
| 297 | + return false; |
|
| 298 | + } |
|
| 299 | + |
|
| 300 | + // Renouveler la session avec l'alea courant |
|
| 301 | + include($fichier_session); |
|
| 302 | + spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session"); |
|
| 303 | + spip_unlink($fichier_session); |
|
| 304 | + ajouter_session($GLOBALS['visiteur_session']); |
|
| 305 | + } |
|
| 306 | + } |
|
| 307 | + |
|
| 308 | + // Compatibilite ascendante : auteur_session est visiteur_session si |
|
| 309 | + // c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut |
|
| 310 | + // n'etre qu'identifie, sans aucune authentification). |
|
| 311 | + |
|
| 312 | + if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) { |
|
| 313 | + $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session']; |
|
| 314 | + } |
|
| 315 | + |
|
| 316 | + |
|
| 317 | + // Si l'adresse IP change, inc/presentation mettra une balise image |
|
| 318 | + // avec un URL de rappel demandant a changer le nom de la session. |
|
| 319 | + // Seul celui qui a l'IP d'origine est rejoue |
|
| 320 | + // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter |
|
| 321 | + // sa victime, mais se ferait deconnecter par elle. |
|
| 322 | + if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) { |
|
| 323 | + if (!$GLOBALS['visiteur_session']['ip_change']) { |
|
| 324 | + define('_SESSION_REJOUER', true); |
|
| 325 | + $GLOBALS['visiteur_session']['ip_change'] = true; |
|
| 326 | + ajouter_session($GLOBALS['visiteur_session']); |
|
| 327 | + } else { |
|
| 328 | + if ($change) { |
|
| 329 | + spip_log("session non rejouee, vol de cookie ?", "session"); |
|
| 330 | + } |
|
| 331 | + } |
|
| 332 | + } else { |
|
| 333 | + if ($change) { |
|
| 334 | + spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session"); |
|
| 335 | + if ($fichier_session) { |
|
| 336 | + spip_unlink($fichier_session); |
|
| 337 | + } |
|
| 338 | + $GLOBALS['visiteur_session']['ip_change'] = false; |
|
| 339 | + unset($_COOKIE['spip_session']); |
|
| 340 | + ajouter_session($GLOBALS['visiteur_session']); |
|
| 341 | + } |
|
| 342 | + } |
|
| 343 | + |
|
| 344 | + // Si la session a ete initiee il y a trop longtemps, elle est annulee |
|
| 345 | + if (isset($GLOBALS['visiteur_session']) |
|
| 346 | + and defined('_AGE_SESSION_MAX') |
|
| 347 | + and _AGE_SESSION_MAX > 0 |
|
| 348 | + and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX |
|
| 349 | + ) { |
|
| 350 | + unset($GLOBALS['visiteur_session']); |
|
| 351 | + |
|
| 352 | + return false; |
|
| 353 | + } |
|
| 354 | + |
|
| 355 | + return is_numeric($GLOBALS['visiteur_session']['id_auteur']) |
|
| 356 | + ? $GLOBALS['visiteur_session']['id_auteur'] |
|
| 357 | + : null; |
|
| 358 | 358 | } |
| 359 | 359 | |
| 360 | 360 | /** |
@@ -369,7 +369,7 @@ discard block |
||
| 369 | 369 | * Valeur, si trouvée, `null` sinon. |
| 370 | 370 | */ |
| 371 | 371 | function session_get($nom) { |
| 372 | - return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null; |
|
| 372 | + return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null; |
|
| 373 | 373 | } |
| 374 | 374 | |
| 375 | 375 | |
@@ -385,32 +385,32 @@ discard block |
||
| 385 | 385 | * @return void|array |
| 386 | 386 | */ |
| 387 | 387 | function session_set($nom, $val = null) { |
| 388 | - static $remove = array(); |
|
| 389 | - static $actualiser_sessions = false; |
|
| 390 | - if ($nom === false) { |
|
| 391 | - return $remove; |
|
| 392 | - } |
|
| 393 | - if (is_null($val)) { |
|
| 394 | - // rien a faire |
|
| 395 | - if (!isset($GLOBALS['visiteur_session'][$nom])) { |
|
| 396 | - return; |
|
| 397 | - } |
|
| 398 | - unset($GLOBALS['visiteur_session'][$nom]); |
|
| 399 | - $remove[] = $nom; |
|
| 400 | - } else { |
|
| 401 | - // On ajoute la valeur dans la globale |
|
| 402 | - $GLOBALS['visiteur_session'][$nom] = $val; |
|
| 403 | - if ($remove) { |
|
| 404 | - $remove = array_diff($remove, array($nom)); |
|
| 405 | - } |
|
| 406 | - } |
|
| 407 | - if (!$actualiser_sessions) { |
|
| 408 | - // il faut creer la session si on en a pas, la premiere fois |
|
| 409 | - ajouter_session($GLOBALS['visiteur_session']); |
|
| 410 | - // in register la fonction qui mettra a jour toutes les sessions en fin de hit |
|
| 411 | - register_shutdown_function('terminer_actualiser_sessions'); |
|
| 412 | - $actualiser_sessions = true; |
|
| 413 | - } |
|
| 388 | + static $remove = array(); |
|
| 389 | + static $actualiser_sessions = false; |
|
| 390 | + if ($nom === false) { |
|
| 391 | + return $remove; |
|
| 392 | + } |
|
| 393 | + if (is_null($val)) { |
|
| 394 | + // rien a faire |
|
| 395 | + if (!isset($GLOBALS['visiteur_session'][$nom])) { |
|
| 396 | + return; |
|
| 397 | + } |
|
| 398 | + unset($GLOBALS['visiteur_session'][$nom]); |
|
| 399 | + $remove[] = $nom; |
|
| 400 | + } else { |
|
| 401 | + // On ajoute la valeur dans la globale |
|
| 402 | + $GLOBALS['visiteur_session'][$nom] = $val; |
|
| 403 | + if ($remove) { |
|
| 404 | + $remove = array_diff($remove, array($nom)); |
|
| 405 | + } |
|
| 406 | + } |
|
| 407 | + if (!$actualiser_sessions) { |
|
| 408 | + // il faut creer la session si on en a pas, la premiere fois |
|
| 409 | + ajouter_session($GLOBALS['visiteur_session']); |
|
| 410 | + // in register la fonction qui mettra a jour toutes les sessions en fin de hit |
|
| 411 | + register_shutdown_function('terminer_actualiser_sessions'); |
|
| 412 | + $actualiser_sessions = true; |
|
| 413 | + } |
|
| 414 | 414 | } |
| 415 | 415 | |
| 416 | 416 | /** |
@@ -419,12 +419,12 @@ discard block |
||
| 419 | 419 | * @uses actualiser_sessions() |
| 420 | 420 | */ |
| 421 | 421 | function terminer_actualiser_sessions() { |
| 422 | - // se remettre dans le dossier de travail au cas ou Apache a change |
|
| 423 | - chdir(_ROOT_CWD); |
|
| 424 | - // recuperer les variables a effacer |
|
| 425 | - $remove = session_set(false); |
|
| 426 | - // mettre a jour toutes les sessions |
|
| 427 | - actualiser_sessions($GLOBALS['visiteur_session'], $remove); |
|
| 422 | + // se remettre dans le dossier de travail au cas ou Apache a change |
|
| 423 | + chdir(_ROOT_CWD); |
|
| 424 | + // recuperer les variables a effacer |
|
| 425 | + $remove = session_set(false); |
|
| 426 | + // mettre a jour toutes les sessions |
|
| 427 | + actualiser_sessions($GLOBALS['visiteur_session'], $remove); |
|
| 428 | 428 | } |
| 429 | 429 | |
| 430 | 430 | |
@@ -449,78 +449,78 @@ discard block |
||
| 449 | 449 | */ |
| 450 | 450 | function actualiser_sessions($auteur, $supprimer_cles = array()) { |
| 451 | 451 | |
| 452 | - $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0; |
|
| 453 | - $id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0; |
|
| 454 | - |
|
| 455 | - // si l'auteur est celui de la session courante, verifier/creer la session si besoin |
|
| 456 | - $fichier_session_courante = ""; |
|
| 457 | - if ($id_auteur == $id_auteur_courant) { |
|
| 458 | - $auteur = array_merge($GLOBALS['visiteur_session'], $auteur); |
|
| 459 | - ajouter_session($auteur); |
|
| 460 | - if ($id_auteur) { |
|
| 461 | - $fichier_session_courante = fichier_session('alea_ephemere'); |
|
| 462 | - } |
|
| 463 | - } |
|
| 464 | - |
|
| 465 | - // si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees |
|
| 466 | - if (!$id_auteur) { |
|
| 467 | - return; |
|
| 468 | - } |
|
| 469 | - |
|
| 470 | - // les préférences sont désérialisées, toujours. |
|
| 471 | - if (isset($auteur['prefs']) and is_string($auteur['prefs'])) { |
|
| 472 | - $auteur['prefs'] = unserialize($auteur['prefs']); |
|
| 473 | - } |
|
| 474 | - |
|
| 475 | - // memoriser l'auteur courant (celui qui modifie la fiche) |
|
| 476 | - $sauve = $GLOBALS['visiteur_session']; |
|
| 477 | - |
|
| 478 | - // .. mettre a jour les sessions de l'auteur cible |
|
| 479 | - // attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire |
|
| 480 | - // cree par une ecriture concurente d'une session (fichier atomique temporaire) |
|
| 481 | - $sessions = lister_sessions_auteur($id_auteur); |
|
| 482 | - |
|
| 483 | - // 1ere passe : lire et fusionner les sessions |
|
| 484 | - foreach ($sessions as $session) { |
|
| 485 | - $GLOBALS['visiteur_session'] = array(); |
|
| 486 | - // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence) |
|
| 487 | - if ($session !== $fichier_session_courante |
|
| 488 | - and @file_exists($session) |
|
| 489 | - ) { |
|
| 490 | - include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible |
|
| 491 | - |
|
| 492 | - $auteur = array_merge($GLOBALS['visiteur_session'], $auteur); |
|
| 493 | - } |
|
| 494 | - } |
|
| 495 | - |
|
| 496 | - // supprimer les eventuelles cles dont on ne veut plus |
|
| 497 | - foreach ($supprimer_cles as $cle) { |
|
| 498 | - unset($auteur[$cle]); |
|
| 499 | - } |
|
| 500 | - |
|
| 501 | - $auteur_session = preparer_ecriture_session($auteur); |
|
| 502 | - |
|
| 503 | - // seconde passe : ecrire les sessions qui ne sont pas a jour |
|
| 504 | - foreach ($sessions as $session) { |
|
| 505 | - $GLOBALS['visiteur_session'] = array(); |
|
| 506 | - // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence) |
|
| 507 | - if (@file_exists($session)) { |
|
| 508 | - include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible |
|
| 509 | - |
|
| 510 | - // est-ce que cette session est a mettre a jour ? |
|
| 511 | - if ($auteur_session != $GLOBALS['visiteur_session']) { |
|
| 512 | - ecrire_fichier_session($session, $auteur); |
|
| 513 | - } |
|
| 514 | - } |
|
| 515 | - } |
|
| 516 | - |
|
| 517 | - if ($id_auteur == $id_auteur_courant) { |
|
| 518 | - $GLOBALS['visiteur_session'] = $auteur; |
|
| 519 | - $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session']; |
|
| 520 | - } else { |
|
| 521 | - // restaurer l'auteur courant |
|
| 522 | - $GLOBALS['visiteur_session'] = $sauve; |
|
| 523 | - } |
|
| 452 | + $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0; |
|
| 453 | + $id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0; |
|
| 454 | + |
|
| 455 | + // si l'auteur est celui de la session courante, verifier/creer la session si besoin |
|
| 456 | + $fichier_session_courante = ""; |
|
| 457 | + if ($id_auteur == $id_auteur_courant) { |
|
| 458 | + $auteur = array_merge($GLOBALS['visiteur_session'], $auteur); |
|
| 459 | + ajouter_session($auteur); |
|
| 460 | + if ($id_auteur) { |
|
| 461 | + $fichier_session_courante = fichier_session('alea_ephemere'); |
|
| 462 | + } |
|
| 463 | + } |
|
| 464 | + |
|
| 465 | + // si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees |
|
| 466 | + if (!$id_auteur) { |
|
| 467 | + return; |
|
| 468 | + } |
|
| 469 | + |
|
| 470 | + // les préférences sont désérialisées, toujours. |
|
| 471 | + if (isset($auteur['prefs']) and is_string($auteur['prefs'])) { |
|
| 472 | + $auteur['prefs'] = unserialize($auteur['prefs']); |
|
| 473 | + } |
|
| 474 | + |
|
| 475 | + // memoriser l'auteur courant (celui qui modifie la fiche) |
|
| 476 | + $sauve = $GLOBALS['visiteur_session']; |
|
| 477 | + |
|
| 478 | + // .. mettre a jour les sessions de l'auteur cible |
|
| 479 | + // attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire |
|
| 480 | + // cree par une ecriture concurente d'une session (fichier atomique temporaire) |
|
| 481 | + $sessions = lister_sessions_auteur($id_auteur); |
|
| 482 | + |
|
| 483 | + // 1ere passe : lire et fusionner les sessions |
|
| 484 | + foreach ($sessions as $session) { |
|
| 485 | + $GLOBALS['visiteur_session'] = array(); |
|
| 486 | + // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence) |
|
| 487 | + if ($session !== $fichier_session_courante |
|
| 488 | + and @file_exists($session) |
|
| 489 | + ) { |
|
| 490 | + include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible |
|
| 491 | + |
|
| 492 | + $auteur = array_merge($GLOBALS['visiteur_session'], $auteur); |
|
| 493 | + } |
|
| 494 | + } |
|
| 495 | + |
|
| 496 | + // supprimer les eventuelles cles dont on ne veut plus |
|
| 497 | + foreach ($supprimer_cles as $cle) { |
|
| 498 | + unset($auteur[$cle]); |
|
| 499 | + } |
|
| 500 | + |
|
| 501 | + $auteur_session = preparer_ecriture_session($auteur); |
|
| 502 | + |
|
| 503 | + // seconde passe : ecrire les sessions qui ne sont pas a jour |
|
| 504 | + foreach ($sessions as $session) { |
|
| 505 | + $GLOBALS['visiteur_session'] = array(); |
|
| 506 | + // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence) |
|
| 507 | + if (@file_exists($session)) { |
|
| 508 | + include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible |
|
| 509 | + |
|
| 510 | + // est-ce que cette session est a mettre a jour ? |
|
| 511 | + if ($auteur_session != $GLOBALS['visiteur_session']) { |
|
| 512 | + ecrire_fichier_session($session, $auteur); |
|
| 513 | + } |
|
| 514 | + } |
|
| 515 | + } |
|
| 516 | + |
|
| 517 | + if ($id_auteur == $id_auteur_courant) { |
|
| 518 | + $GLOBALS['visiteur_session'] = $auteur; |
|
| 519 | + $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session']; |
|
| 520 | + } else { |
|
| 521 | + // restaurer l'auteur courant |
|
| 522 | + $GLOBALS['visiteur_session'] = $sauve; |
|
| 523 | + } |
|
| 524 | 524 | |
| 525 | 525 | } |
| 526 | 526 | |
@@ -535,46 +535,46 @@ discard block |
||
| 535 | 535 | */ |
| 536 | 536 | function lister_sessions_auteur($id_auteur, $nb_max = null) { |
| 537 | 537 | |
| 538 | - if (is_null($nb_max)) { |
|
| 539 | - if (!defined('_NB_SESSIONS_MAX')) { |
|
| 540 | - define('_NB_SESSIONS_MAX', 100); |
|
| 541 | - } |
|
| 542 | - $nb_max = _NB_SESSIONS_MAX; |
|
| 543 | - } |
|
| 544 | - |
|
| 545 | - // liste des sessions |
|
| 546 | - $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$'); |
|
| 547 | - |
|
| 548 | - // si on en a plus que la limite, supprimer les plus vieilles |
|
| 549 | - // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes |
|
| 550 | - if ($id_auteur |
|
| 551 | - and count($sessions) > $nb_max) { |
|
| 552 | - |
|
| 553 | - // limiter le nombre de sessions ouvertes par un auteur |
|
| 554 | - // filemtime sur les sessions |
|
| 555 | - $sessions = array_flip($sessions); |
|
| 556 | - |
|
| 557 | - // 1ere passe : lire les filemtime |
|
| 558 | - foreach ($sessions as $session => $z) { |
|
| 559 | - if ($d = @filemtime($session) |
|
| 560 | - ) { |
|
| 561 | - $sessions[$session] = $d; |
|
| 562 | - } else { |
|
| 563 | - $sessions[$session] = 0; |
|
| 564 | - } |
|
| 565 | - } |
|
| 566 | - |
|
| 567 | - // les plus anciennes en premier |
|
| 568 | - asort($sessions); |
|
| 569 | - |
|
| 570 | - $sessions = array_keys($sessions); |
|
| 571 | - while (count($sessions) > $nb_max) { |
|
| 572 | - $session = array_shift($sessions); |
|
| 573 | - @unlink($session); |
|
| 574 | - } |
|
| 575 | - } |
|
| 576 | - |
|
| 577 | - return $sessions; |
|
| 538 | + if (is_null($nb_max)) { |
|
| 539 | + if (!defined('_NB_SESSIONS_MAX')) { |
|
| 540 | + define('_NB_SESSIONS_MAX', 100); |
|
| 541 | + } |
|
| 542 | + $nb_max = _NB_SESSIONS_MAX; |
|
| 543 | + } |
|
| 544 | + |
|
| 545 | + // liste des sessions |
|
| 546 | + $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$'); |
|
| 547 | + |
|
| 548 | + // si on en a plus que la limite, supprimer les plus vieilles |
|
| 549 | + // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes |
|
| 550 | + if ($id_auteur |
|
| 551 | + and count($sessions) > $nb_max) { |
|
| 552 | + |
|
| 553 | + // limiter le nombre de sessions ouvertes par un auteur |
|
| 554 | + // filemtime sur les sessions |
|
| 555 | + $sessions = array_flip($sessions); |
|
| 556 | + |
|
| 557 | + // 1ere passe : lire les filemtime |
|
| 558 | + foreach ($sessions as $session => $z) { |
|
| 559 | + if ($d = @filemtime($session) |
|
| 560 | + ) { |
|
| 561 | + $sessions[$session] = $d; |
|
| 562 | + } else { |
|
| 563 | + $sessions[$session] = 0; |
|
| 564 | + } |
|
| 565 | + } |
|
| 566 | + |
|
| 567 | + // les plus anciennes en premier |
|
| 568 | + asort($sessions); |
|
| 569 | + |
|
| 570 | + $sessions = array_keys($sessions); |
|
| 571 | + while (count($sessions) > $nb_max) { |
|
| 572 | + $session = array_shift($sessions); |
|
| 573 | + @unlink($session); |
|
| 574 | + } |
|
| 575 | + } |
|
| 576 | + |
|
| 577 | + return $sessions; |
|
| 578 | 578 | } |
| 579 | 579 | |
| 580 | 580 | |
@@ -588,26 +588,26 @@ discard block |
||
| 588 | 588 | * @return array |
| 589 | 589 | */ |
| 590 | 590 | function preparer_ecriture_session($auteur) { |
| 591 | - $row = $auteur; |
|
| 592 | - |
|
| 593 | - // ne pas enregistrer ces elements de securite |
|
| 594 | - // dans le fichier de session |
|
| 595 | - unset($auteur['pass']); |
|
| 596 | - unset($auteur['htpass']); |
|
| 597 | - unset($auteur['low_sec']); |
|
| 598 | - unset($auteur['alea_actuel']); |
|
| 599 | - unset($auteur['alea_futur']); |
|
| 600 | - |
|
| 601 | - $auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur)); |
|
| 602 | - |
|
| 603 | - // ne pas enregistrer les valeurs vraiment nulle dans le fichier |
|
| 604 | - foreach ($auteur as $variable => $valeur) { |
|
| 605 | - if ($valeur === null) { |
|
| 606 | - unset($auteur[$variable]); |
|
| 607 | - } |
|
| 608 | - } |
|
| 609 | - |
|
| 610 | - return $auteur; |
|
| 591 | + $row = $auteur; |
|
| 592 | + |
|
| 593 | + // ne pas enregistrer ces elements de securite |
|
| 594 | + // dans le fichier de session |
|
| 595 | + unset($auteur['pass']); |
|
| 596 | + unset($auteur['htpass']); |
|
| 597 | + unset($auteur['low_sec']); |
|
| 598 | + unset($auteur['alea_actuel']); |
|
| 599 | + unset($auteur['alea_futur']); |
|
| 600 | + |
|
| 601 | + $auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur)); |
|
| 602 | + |
|
| 603 | + // ne pas enregistrer les valeurs vraiment nulle dans le fichier |
|
| 604 | + foreach ($auteur as $variable => $valeur) { |
|
| 605 | + if ($valeur === null) { |
|
| 606 | + unset($auteur[$variable]); |
|
| 607 | + } |
|
| 608 | + } |
|
| 609 | + |
|
| 610 | + return $auteur; |
|
| 611 | 611 | } |
| 612 | 612 | |
| 613 | 613 | /** |
@@ -619,17 +619,17 @@ discard block |
||
| 619 | 619 | */ |
| 620 | 620 | function ecrire_fichier_session($fichier, $auteur) { |
| 621 | 621 | |
| 622 | - $auteur = preparer_ecriture_session($auteur); |
|
| 622 | + $auteur = preparer_ecriture_session($auteur); |
|
| 623 | 623 | |
| 624 | - // enregistrer les autres donnees du visiteur |
|
| 625 | - $texte = "<" . "?php\n"; |
|
| 626 | - foreach ($auteur as $var => $val) { |
|
| 627 | - $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = ' |
|
| 628 | - . var_export($val, true) . ";\n"; |
|
| 629 | - } |
|
| 630 | - $texte .= "?" . ">\n"; |
|
| 624 | + // enregistrer les autres donnees du visiteur |
|
| 625 | + $texte = "<" . "?php\n"; |
|
| 626 | + foreach ($auteur as $var => $val) { |
|
| 627 | + $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = ' |
|
| 628 | + . var_export($val, true) . ";\n"; |
|
| 629 | + } |
|
| 630 | + $texte .= "?" . ">\n"; |
|
| 631 | 631 | |
| 632 | - return ecrire_fichier($fichier, $texte); |
|
| 632 | + return ecrire_fichier($fichier, $texte); |
|
| 633 | 633 | } |
| 634 | 634 | |
| 635 | 635 | |
@@ -642,23 +642,23 @@ discard block |
||
| 642 | 642 | */ |
| 643 | 643 | function fichier_session($alea, $tantpis = false) { |
| 644 | 644 | |
| 645 | - include_spip('inc/acces'); |
|
| 646 | - charger_aleas(); |
|
| 645 | + include_spip('inc/acces'); |
|
| 646 | + charger_aleas(); |
|
| 647 | 647 | |
| 648 | - if (empty($GLOBALS['meta'][$alea])) { |
|
| 649 | - if (!$tantpis) { |
|
| 650 | - spip_log("fichier session ($tantpis): $alea indisponible", "session"); |
|
| 651 | - include_spip('inc/minipres'); |
|
| 652 | - echo minipres(); |
|
| 653 | - } |
|
| 648 | + if (empty($GLOBALS['meta'][$alea])) { |
|
| 649 | + if (!$tantpis) { |
|
| 650 | + spip_log("fichier session ($tantpis): $alea indisponible", "session"); |
|
| 651 | + include_spip('inc/minipres'); |
|
| 652 | + echo minipres(); |
|
| 653 | + } |
|
| 654 | 654 | |
| 655 | - return ''; // echec mais $tanpis |
|
| 656 | - } else { |
|
| 657 | - $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis); |
|
| 658 | - $c = $_COOKIE['spip_session']; |
|
| 655 | + return ''; // echec mais $tanpis |
|
| 656 | + } else { |
|
| 657 | + $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis); |
|
| 658 | + $c = $_COOKIE['spip_session']; |
|
| 659 | 659 | |
| 660 | - return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php'; |
|
| 661 | - } |
|
| 660 | + return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php'; |
|
| 661 | + } |
|
| 662 | 662 | } |
| 663 | 663 | |
| 664 | 664 | |
@@ -675,7 +675,7 @@ discard block |
||
| 675 | 675 | * @return string |
| 676 | 676 | */ |
| 677 | 677 | function rejouer_session() { |
| 678 | - return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />'; |
|
| 678 | + return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />'; |
|
| 679 | 679 | } |
| 680 | 680 | |
| 681 | 681 | |
@@ -685,12 +685,12 @@ discard block |
||
| 685 | 685 | * @return string |
| 686 | 686 | */ |
| 687 | 687 | function hash_env() { |
| 688 | - static $res = ''; |
|
| 689 | - if ($res) { |
|
| 690 | - return $res; |
|
| 691 | - } |
|
| 688 | + static $res = ''; |
|
| 689 | + if ($res) { |
|
| 690 | + return $res; |
|
| 691 | + } |
|
| 692 | 692 | |
| 693 | - return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '')); |
|
| 693 | + return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '')); |
|
| 694 | 694 | } |
| 695 | 695 | |
| 696 | 696 | |
@@ -702,11 +702,11 @@ discard block |
||
| 702 | 702 | * @return bool True si une session PHP est ouverte. |
| 703 | 703 | **/ |
| 704 | 704 | function spip_php_session_start() { |
| 705 | - if (!is_php_session_started()) { |
|
| 706 | - return session_start(); |
|
| 707 | - } |
|
| 705 | + if (!is_php_session_started()) { |
|
| 706 | + return session_start(); |
|
| 707 | + } |
|
| 708 | 708 | |
| 709 | - return true; |
|
| 709 | + return true; |
|
| 710 | 710 | } |
| 711 | 711 | |
| 712 | 712 | /** |
@@ -716,9 +716,9 @@ discard block |
||
| 716 | 716 | * @return bool true si une session PHP est active |
| 717 | 717 | **/ |
| 718 | 718 | function is_php_session_started() { |
| 719 | - if (php_sapi_name() !== 'cli') { |
|
| 720 | - return session_status() === PHP_SESSION_ACTIVE ? true : false; |
|
| 721 | - } |
|
| 719 | + if (php_sapi_name() !== 'cli') { |
|
| 720 | + return session_status() === PHP_SESSION_ACTIVE ? true : false; |
|
| 721 | + } |
|
| 722 | 722 | |
| 723 | - return false; |
|
| 723 | + return false; |
|
| 724 | 724 | } |
@@ -83,7 +83,7 @@ discard block |
||
| 83 | 83 | $t = time() - (4 * _RENOUVELLE_ALEA); |
| 84 | 84 | while (($f = readdir($dir)) !== false) { |
| 85 | 85 | if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) { |
| 86 | - $f = _DIR_SESSIONS . $f; |
|
| 86 | + $f = _DIR_SESSIONS.$f; |
|
| 87 | 87 | if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) { |
| 88 | 88 | spip_unlink($f); |
| 89 | 89 | } |
@@ -160,9 +160,9 @@ discard block |
||
| 160 | 160 | } |
| 161 | 161 | |
| 162 | 162 | if (!isset($_COOKIE['spip_session']) |
| 163 | - or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session']) |
|
| 163 | + or !preg_match(',^'.$id_auteur.'_,', $_COOKIE['spip_session']) |
|
| 164 | 164 | ) { |
| 165 | - $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true)); |
|
| 165 | + $_COOKIE['spip_session'] = $id_auteur.'_'.md5(uniqid(rand(), true)); |
|
| 166 | 166 | } |
| 167 | 167 | |
| 168 | 168 | // Maintenant on sait qu'on a des choses à écrire |
@@ -193,7 +193,7 @@ discard block |
||
| 193 | 193 | } else { |
| 194 | 194 | $fichier_session = fichier_session('alea_ephemere'); |
| 195 | 195 | if (!ecrire_fichier_session($fichier_session, $auteur)) { |
| 196 | - spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS); |
|
| 196 | + spip_log('Echec ecriture fichier session '.$fichier_session, "session"._LOG_HS); |
|
| 197 | 197 | include_spip('inc/minipres'); |
| 198 | 198 | echo minipres(); |
| 199 | 199 | exit; |
@@ -206,15 +206,15 @@ discard block |
||
| 206 | 206 | // poser le cookie de session SPIP |
| 207 | 207 | include_spip('inc/cookie'); |
| 208 | 208 | $duree = definir_duree_cookie_session($auteur); |
| 209 | - spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree); |
|
| 209 | + spip_setcookie('spip_session', $_COOKIE['spip_session'], time() + $duree); |
|
| 210 | 210 | spip_log("ajoute session $fichier_session cookie $duree", "session"); |
| 211 | 211 | |
| 212 | 212 | // Si on est admin, poser le cookie de correspondance |
| 213 | 213 | if (!function_exists('autoriser')) { |
| 214 | 214 | include_spip('inc/autoriser'); |
| 215 | 215 | } |
| 216 | - if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) { |
|
| 217 | - spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree)); |
|
| 216 | + if (autoriser('ecrire', '', '', $auteur) and _DUREE_COOKIE_ADMIN) { |
|
| 217 | + spip_setcookie('spip_admin', '@'.$auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree)); |
|
| 218 | 218 | } // sinon le supprimer ... |
| 219 | 219 | else { |
| 220 | 220 | spip_setcookie('spip_admin', '', 1); |
@@ -251,7 +251,7 @@ discard block |
||
| 251 | 251 | $coef = 20; |
| 252 | 252 | } |
| 253 | 253 | } |
| 254 | - return (int)(_RENOUVELLE_ALEA * $coef); |
|
| 254 | + return (int) (_RENOUVELLE_ALEA * $coef); |
|
| 255 | 255 | } |
| 256 | 256 | |
| 257 | 257 | /** |
@@ -299,7 +299,7 @@ discard block |
||
| 299 | 299 | |
| 300 | 300 | // Renouveler la session avec l'alea courant |
| 301 | 301 | include($fichier_session); |
| 302 | - spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session"); |
|
| 302 | + spip_log('renouvelle session '.$GLOBALS['visiteur_session']['id_auteur'], "session"); |
|
| 303 | 303 | spip_unlink($fichier_session); |
| 304 | 304 | ajouter_session($GLOBALS['visiteur_session']); |
| 305 | 305 | } |
@@ -331,7 +331,7 @@ discard block |
||
| 331 | 331 | } |
| 332 | 332 | } else { |
| 333 | 333 | if ($change) { |
| 334 | - spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session"); |
|
| 334 | + spip_log("rejoue session $fichier_session ".$_COOKIE['spip_session'], "session"); |
|
| 335 | 335 | if ($fichier_session) { |
| 336 | 336 | spip_unlink($fichier_session); |
| 337 | 337 | } |
@@ -543,7 +543,7 @@ discard block |
||
| 543 | 543 | } |
| 544 | 544 | |
| 545 | 545 | // liste des sessions |
| 546 | - $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$'); |
|
| 546 | + $sessions = preg_files(_DIR_SESSIONS, '/'.$id_auteur.'_.*\.php$'); |
|
| 547 | 547 | |
| 548 | 548 | // si on en a plus que la limite, supprimer les plus vieilles |
| 549 | 549 | // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes |
@@ -622,12 +622,12 @@ discard block |
||
| 622 | 622 | $auteur = preparer_ecriture_session($auteur); |
| 623 | 623 | |
| 624 | 624 | // enregistrer les autres donnees du visiteur |
| 625 | - $texte = "<" . "?php\n"; |
|
| 625 | + $texte = "<"."?php\n"; |
|
| 626 | 626 | foreach ($auteur as $var => $val) { |
| 627 | - $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = ' |
|
| 628 | - . var_export($val, true) . ";\n"; |
|
| 627 | + $texte .= '$GLOBALS[\'visiteur_session\']['.var_export($var, true).'] = ' |
|
| 628 | + . var_export($val, true).";\n"; |
|
| 629 | 629 | } |
| 630 | - $texte .= "?" . ">\n"; |
|
| 630 | + $texte .= "?".">\n"; |
|
| 631 | 631 | |
| 632 | 632 | return ecrire_fichier($fichier, $texte); |
| 633 | 633 | } |
@@ -657,7 +657,7 @@ discard block |
||
| 657 | 657 | $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis); |
| 658 | 658 | $c = $_COOKIE['spip_session']; |
| 659 | 659 | |
| 660 | - return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php'; |
|
| 660 | + return $repertoire.intval($c).'_'.md5($c.' '.$GLOBALS['meta'][$alea]).'.php'; |
|
| 661 | 661 | } |
| 662 | 662 | } |
| 663 | 663 | |
@@ -675,7 +675,7 @@ discard block |
||
| 675 | 675 | * @return string |
| 676 | 676 | */ |
| 677 | 677 | function rejouer_session() { |
| 678 | - return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />'; |
|
| 678 | + return '<img src="'.generer_url_action('cookie', 'change_session=oui', true).'" width="0" height="0" alt="" />'; |
|
| 679 | 679 | } |
| 680 | 680 | |
| 681 | 681 | |
@@ -690,7 +690,7 @@ discard block |
||
| 690 | 690 | return $res; |
| 691 | 691 | } |
| 692 | 692 | |
| 693 | - return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '')); |
|
| 693 | + return $res = md5($GLOBALS['ip'].(isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '')); |
|
| 694 | 694 | } |
| 695 | 695 | |
| 696 | 696 | |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | /** |
@@ -36,8 +36,8 @@ discard block |
||
| 36 | 36 | define('_PHP_MIN', '5.4.0'); |
| 37 | 37 | |
| 38 | 38 | if (!defined('_DIR_RESTREINT_ABS')) { |
| 39 | - /** le nom du repertoire ecrire/ */ |
|
| 40 | - define('_DIR_RESTREINT_ABS', 'ecrire/'); |
|
| 39 | + /** le nom du repertoire ecrire/ */ |
|
| 40 | + define('_DIR_RESTREINT_ABS', 'ecrire/'); |
|
| 41 | 41 | } |
| 42 | 42 | |
| 43 | 43 | /** Chemin relatif pour aller dans ecrire |
@@ -57,8 +57,8 @@ discard block |
||
| 57 | 57 | |
| 58 | 58 | // Icones |
| 59 | 59 | if (!defined('_NOM_IMG_PACK')) { |
| 60 | - /** Nom du dossier images */ |
|
| 61 | - define('_NOM_IMG_PACK', 'images/'); |
|
| 60 | + /** Nom du dossier images */ |
|
| 61 | + define('_NOM_IMG_PACK', 'images/'); |
|
| 62 | 62 | } |
| 63 | 63 | /** le chemin http (relatif) vers les images standard */ |
| 64 | 64 | define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK)); |
@@ -67,8 +67,8 @@ discard block |
||
| 67 | 67 | define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)) . '/prive/' . _NOM_IMG_PACK); |
| 68 | 68 | |
| 69 | 69 | if (!defined('_JAVASCRIPT')) { |
| 70 | - /** Nom du repertoire des bibliotheques JavaScript */ |
|
| 71 | - define('_JAVASCRIPT', 'javascript/'); |
|
| 70 | + /** Nom du repertoire des bibliotheques JavaScript */ |
|
| 71 | + define('_JAVASCRIPT', 'javascript/'); |
|
| 72 | 72 | } // utilisable avec #CHEMIN et find_in_path |
| 73 | 73 | /** le nom du repertoire des bibliotheques JavaScript du prive */ |
| 74 | 74 | define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT)); |
@@ -78,46 +78,46 @@ discard block |
||
| 78 | 78 | # mais on peut les mettre ailleurs et changer completement les noms |
| 79 | 79 | |
| 80 | 80 | if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) { |
| 81 | - /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */ |
|
| 82 | - define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/"); |
|
| 81 | + /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */ |
|
| 82 | + define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/"); |
|
| 83 | 83 | } |
| 84 | 84 | if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) { |
| 85 | - /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */ |
|
| 86 | - define('_NOM_TEMPORAIRES_ACCESSIBLES', "local/"); |
|
| 85 | + /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */ |
|
| 86 | + define('_NOM_TEMPORAIRES_ACCESSIBLES', "local/"); |
|
| 87 | 87 | } |
| 88 | 88 | if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) { |
| 89 | - /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */ |
|
| 90 | - define('_NOM_PERMANENTS_INACCESSIBLES', "config/"); |
|
| 89 | + /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */ |
|
| 90 | + define('_NOM_PERMANENTS_INACCESSIBLES', "config/"); |
|
| 91 | 91 | } |
| 92 | 92 | if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) { |
| 93 | - /** Nom du repertoire des fichiers Permanents Accessibles par http:// */ |
|
| 94 | - define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/"); |
|
| 93 | + /** Nom du repertoire des fichiers Permanents Accessibles par http:// */ |
|
| 94 | + define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/"); |
|
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | |
| 98 | 98 | /** Le nom du fichier de personnalisation */ |
| 99 | 99 | if (!defined('_NOM_CONFIG')) { |
| 100 | - define('_NOM_CONFIG', 'mes_options'); |
|
| 100 | + define('_NOM_CONFIG', 'mes_options'); |
|
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | // Son emplacement absolu si on le trouve |
| 104 | 104 | if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php') |
| 105 | - or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 105 | + or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 106 | 106 | ) { |
| 107 | - /** Emplacement absolu du fichier d'option */ |
|
| 108 | - define('_FILE_OPTIONS', $f); |
|
| 107 | + /** Emplacement absolu du fichier d'option */ |
|
| 108 | + define('_FILE_OPTIONS', $f); |
|
| 109 | 109 | } else { |
| 110 | - define('_FILE_OPTIONS', ''); |
|
| 110 | + define('_FILE_OPTIONS', ''); |
|
| 111 | 111 | } |
| 112 | 112 | |
| 113 | 113 | if (!defined('MODULES_IDIOMES')) { |
| 114 | - /** |
|
| 115 | - * Modules par défaut pour la traduction. |
|
| 116 | - * |
|
| 117 | - * Constante utilisée par le compilateur et le décompilateur |
|
| 118 | - * sa valeur etant traitée par inc_traduire_dist |
|
| 119 | - */ |
|
| 120 | - define('MODULES_IDIOMES', 'public|spip|ecrire'); |
|
| 114 | + /** |
|
| 115 | + * Modules par défaut pour la traduction. |
|
| 116 | + * |
|
| 117 | + * Constante utilisée par le compilateur et le décompilateur |
|
| 118 | + * sa valeur etant traitée par inc_traduire_dist |
|
| 119 | + */ |
|
| 120 | + define('MODULES_IDIOMES', 'public|spip|ecrire'); |
|
| 121 | 121 | } |
| 122 | 122 | |
| 123 | 123 | // *** Fin des define *** // |
@@ -125,9 +125,9 @@ discard block |
||
| 125 | 125 | |
| 126 | 126 | // Inclure l'ecran de securite |
| 127 | 127 | if (!defined('_ECRAN_SECURITE') |
| 128 | - and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 128 | + and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 129 | 129 | ) { |
| 130 | - include $f; |
|
| 130 | + include $f; |
|
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | |
@@ -135,17 +135,17 @@ discard block |
||
| 135 | 135 | * Détecteur de robot d'indexation |
| 136 | 136 | */ |
| 137 | 137 | if (!defined('_IS_BOT')) { |
| 138 | - define('_IS_BOT', |
|
| 139 | - isset($_SERVER['HTTP_USER_AGENT']) |
|
| 140 | - and preg_match( |
|
| 141 | - // mots generiques |
|
| 142 | - ',bot|slurp|crawler|spider|webvac|yandex|' |
|
| 143 | - // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot |
|
| 144 | - . 'MSIE 6\.0|' |
|
| 145 | - // UA plus cibles |
|
| 146 | - . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
|
| 147 | - . ',i', (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 148 | - ); |
|
| 138 | + define('_IS_BOT', |
|
| 139 | + isset($_SERVER['HTTP_USER_AGENT']) |
|
| 140 | + and preg_match( |
|
| 141 | + // mots generiques |
|
| 142 | + ',bot|slurp|crawler|spider|webvac|yandex|' |
|
| 143 | + // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot |
|
| 144 | + . 'MSIE 6\.0|' |
|
| 145 | + // UA plus cibles |
|
| 146 | + . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
|
| 147 | + . ',i', (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 148 | + ); |
|
| 149 | 149 | } |
| 150 | 150 | |
| 151 | 151 | // *** Parametrage par defaut de SPIP *** |
@@ -157,62 +157,62 @@ discard block |
||
| 157 | 157 | // Ne pas les rendre indefinies. |
| 158 | 158 | |
| 159 | 159 | global |
| 160 | - $nombre_de_logs, |
|
| 161 | - $taille_des_logs, |
|
| 162 | - $table_prefix, |
|
| 163 | - $cookie_prefix, |
|
| 164 | - $dossier_squelettes, |
|
| 165 | - $filtrer_javascript, |
|
| 166 | - $type_urls, |
|
| 167 | - $debut_date_publication, |
|
| 168 | - $ip, |
|
| 169 | - $mysql_rappel_connexion, |
|
| 170 | - $mysql_rappel_nom_base, |
|
| 171 | - $test_i18n, |
|
| 172 | - $ignore_auth_http, |
|
| 173 | - $ignore_remote_user, |
|
| 174 | - $derniere_modif_invalide, |
|
| 175 | - $quota_cache, |
|
| 176 | - $home_server, |
|
| 177 | - $help_server, |
|
| 178 | - $url_glossaire_externe, |
|
| 179 | - $tex_server, |
|
| 180 | - $traiter_math, |
|
| 181 | - $xhtml, |
|
| 182 | - $xml_indent, |
|
| 183 | - $source_vignettes, |
|
| 184 | - $formats_logos, |
|
| 185 | - $controler_dates_rss, |
|
| 186 | - $spip_pipeline, |
|
| 187 | - $spip_matrice, |
|
| 188 | - $plugins, |
|
| 189 | - $surcharges, |
|
| 190 | - $exceptions_des_tables, |
|
| 191 | - $tables_principales, |
|
| 192 | - $table_des_tables, |
|
| 193 | - $tables_auxiliaires, |
|
| 194 | - $table_primary, |
|
| 195 | - $table_date, |
|
| 196 | - $table_titre, |
|
| 197 | - $tables_jointures, |
|
| 198 | - $liste_des_statuts, |
|
| 199 | - $liste_des_etats, |
|
| 200 | - $liste_des_authentifications, |
|
| 201 | - $spip_version_branche, |
|
| 202 | - $spip_version_code, |
|
| 203 | - $spip_version_base, |
|
| 204 | - $spip_sql_version, |
|
| 205 | - $spip_version_affichee, |
|
| 206 | - $visiteur_session, |
|
| 207 | - $auteur_session, |
|
| 208 | - $connect_statut, |
|
| 209 | - $connect_toutes_rubriques, |
|
| 210 | - $hash_recherche, |
|
| 211 | - $hash_recherche_strict, |
|
| 212 | - $ldap_present, |
|
| 213 | - $meta, |
|
| 214 | - $connect_id_rubrique, |
|
| 215 | - $puce; |
|
| 160 | + $nombre_de_logs, |
|
| 161 | + $taille_des_logs, |
|
| 162 | + $table_prefix, |
|
| 163 | + $cookie_prefix, |
|
| 164 | + $dossier_squelettes, |
|
| 165 | + $filtrer_javascript, |
|
| 166 | + $type_urls, |
|
| 167 | + $debut_date_publication, |
|
| 168 | + $ip, |
|
| 169 | + $mysql_rappel_connexion, |
|
| 170 | + $mysql_rappel_nom_base, |
|
| 171 | + $test_i18n, |
|
| 172 | + $ignore_auth_http, |
|
| 173 | + $ignore_remote_user, |
|
| 174 | + $derniere_modif_invalide, |
|
| 175 | + $quota_cache, |
|
| 176 | + $home_server, |
|
| 177 | + $help_server, |
|
| 178 | + $url_glossaire_externe, |
|
| 179 | + $tex_server, |
|
| 180 | + $traiter_math, |
|
| 181 | + $xhtml, |
|
| 182 | + $xml_indent, |
|
| 183 | + $source_vignettes, |
|
| 184 | + $formats_logos, |
|
| 185 | + $controler_dates_rss, |
|
| 186 | + $spip_pipeline, |
|
| 187 | + $spip_matrice, |
|
| 188 | + $plugins, |
|
| 189 | + $surcharges, |
|
| 190 | + $exceptions_des_tables, |
|
| 191 | + $tables_principales, |
|
| 192 | + $table_des_tables, |
|
| 193 | + $tables_auxiliaires, |
|
| 194 | + $table_primary, |
|
| 195 | + $table_date, |
|
| 196 | + $table_titre, |
|
| 197 | + $tables_jointures, |
|
| 198 | + $liste_des_statuts, |
|
| 199 | + $liste_des_etats, |
|
| 200 | + $liste_des_authentifications, |
|
| 201 | + $spip_version_branche, |
|
| 202 | + $spip_version_code, |
|
| 203 | + $spip_version_base, |
|
| 204 | + $spip_sql_version, |
|
| 205 | + $spip_version_affichee, |
|
| 206 | + $visiteur_session, |
|
| 207 | + $auteur_session, |
|
| 208 | + $connect_statut, |
|
| 209 | + $connect_toutes_rubriques, |
|
| 210 | + $hash_recherche, |
|
| 211 | + $hash_recherche_strict, |
|
| 212 | + $ldap_present, |
|
| 213 | + $meta, |
|
| 214 | + $connect_id_rubrique, |
|
| 215 | + $puce; |
|
| 216 | 216 | |
| 217 | 217 | # comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log |
| 218 | 218 | $nombre_de_logs = 4; |
@@ -267,48 +267,48 @@ discard block |
||
| 267 | 267 | // Prendre en compte les entetes HTTP_X_FORWARDED_XX |
| 268 | 268 | // |
| 269 | 269 | if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){ |
| 270 | - if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 271 | - $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST']; |
|
| 272 | - } |
|
| 273 | - if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 274 | - $_SERVER['HTTP_X_FORWARDED_PORT'] = 443; |
|
| 275 | - } |
|
| 270 | + if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 271 | + $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST']; |
|
| 272 | + } |
|
| 273 | + if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 274 | + $_SERVER['HTTP_X_FORWARDED_PORT'] = 443; |
|
| 275 | + } |
|
| 276 | 276 | } |
| 277 | 277 | if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])){ |
| 278 | - if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){ |
|
| 279 | - $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT']; |
|
| 280 | - if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){ |
|
| 281 | - $_SERVER['HTTPS'] = 'on'; |
|
| 282 | - if (isset($_SERVER['REQUEST_SCHEME'])) { |
|
| 283 | - $_SERVER['REQUEST_SCHEME'] = 'https'; |
|
| 284 | - } |
|
| 285 | - } |
|
| 286 | - } |
|
| 287 | - $host = $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 288 | - if (strpos($host,',')!==false){ |
|
| 289 | - $h = explode(',',$host); |
|
| 290 | - $host = trim(reset($h)); |
|
| 291 | - } |
|
| 292 | - // securite sur le contenu de l'entete |
|
| 293 | - $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 294 | - $_SERVER['HTTP_HOST'] = $host; |
|
| 278 | + if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){ |
|
| 279 | + $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT']; |
|
| 280 | + if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){ |
|
| 281 | + $_SERVER['HTTPS'] = 'on'; |
|
| 282 | + if (isset($_SERVER['REQUEST_SCHEME'])) { |
|
| 283 | + $_SERVER['REQUEST_SCHEME'] = 'https'; |
|
| 284 | + } |
|
| 285 | + } |
|
| 286 | + } |
|
| 287 | + $host = $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 288 | + if (strpos($host,',')!==false){ |
|
| 289 | + $h = explode(',',$host); |
|
| 290 | + $host = trim(reset($h)); |
|
| 291 | + } |
|
| 292 | + // securite sur le contenu de l'entete |
|
| 293 | + $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________'); |
|
| 294 | + $_SERVER['HTTP_HOST'] = $host; |
|
| 295 | 295 | } |
| 296 | 296 | // |
| 297 | 297 | // On note le numero IP du client dans la variable $ip |
| 298 | 298 | // |
| 299 | 299 | if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { |
| 300 | - $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; |
|
| 301 | - if (strpos($ip,',')!==false){ |
|
| 302 | - $ip = explode(',',$ip); |
|
| 303 | - $ip = reset($ip); |
|
| 304 | - } |
|
| 305 | - // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost |
|
| 306 | - if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){ |
|
| 307 | - $_SERVER['REMOTE_ADDR'] = $ip; |
|
| 308 | - } |
|
| 300 | + $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; |
|
| 301 | + if (strpos($ip,',')!==false){ |
|
| 302 | + $ip = explode(',',$ip); |
|
| 303 | + $ip = reset($ip); |
|
| 304 | + } |
|
| 305 | + // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost |
|
| 306 | + if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){ |
|
| 307 | + $_SERVER['REMOTE_ADDR'] = $ip; |
|
| 308 | + } |
|
| 309 | 309 | } |
| 310 | 310 | if (isset($_SERVER['REMOTE_ADDR'])) { |
| 311 | - $ip = $_SERVER['REMOTE_ADDR']; |
|
| 311 | + $ip = $_SERVER['REMOTE_ADDR']; |
|
| 312 | 312 | } |
| 313 | 313 | |
| 314 | 314 | // Pour renforcer la privacy, decommentez la ligne ci-dessous (ou recopiez-la |
@@ -393,24 +393,24 @@ discard block |
||
| 393 | 393 | |
| 394 | 394 | // Liste des statuts. |
| 395 | 395 | $liste_des_statuts = array( |
| 396 | - "info_administrateurs" => '0minirezo', |
|
| 397 | - "info_redacteurs" => '1comite', |
|
| 398 | - "info_visiteurs" => '6forum', |
|
| 399 | - "texte_statut_poubelle" => '5poubelle' |
|
| 396 | + "info_administrateurs" => '0minirezo', |
|
| 397 | + "info_redacteurs" => '1comite', |
|
| 398 | + "info_visiteurs" => '6forum', |
|
| 399 | + "texte_statut_poubelle" => '5poubelle' |
|
| 400 | 400 | ); |
| 401 | 401 | |
| 402 | 402 | $liste_des_etats = array( |
| 403 | - 'texte_statut_en_cours_redaction' => 'prepa', |
|
| 404 | - 'texte_statut_propose_evaluation' => 'prop', |
|
| 405 | - 'texte_statut_publie' => 'publie', |
|
| 406 | - 'texte_statut_poubelle' => 'poubelle', |
|
| 407 | - 'texte_statut_refuse' => 'refuse' |
|
| 403 | + 'texte_statut_en_cours_redaction' => 'prepa', |
|
| 404 | + 'texte_statut_propose_evaluation' => 'prop', |
|
| 405 | + 'texte_statut_publie' => 'publie', |
|
| 406 | + 'texte_statut_poubelle' => 'poubelle', |
|
| 407 | + 'texte_statut_refuse' => 'refuse' |
|
| 408 | 408 | ); |
| 409 | 409 | |
| 410 | 410 | // liste des methodes d'authentifications |
| 411 | 411 | $liste_des_authentifications = array( |
| 412 | - 'spip' => 'spip', |
|
| 413 | - 'ldap' => 'ldap' |
|
| 412 | + 'spip' => 'spip', |
|
| 413 | + 'ldap' => 'ldap' |
|
| 414 | 414 | ); |
| 415 | 415 | |
| 416 | 416 | // Experimental : pour supprimer systematiquement l'affichage des numeros |
@@ -457,12 +457,12 @@ discard block |
||
| 457 | 457 | // Definition personnelles eventuelles |
| 458 | 458 | |
| 459 | 459 | if (_FILE_OPTIONS) { |
| 460 | - include_once _FILE_OPTIONS; |
|
| 460 | + include_once _FILE_OPTIONS; |
|
| 461 | 461 | } |
| 462 | 462 | |
| 463 | 463 | if (!defined('SPIP_ERREUR_REPORT')) { |
| 464 | - /** Masquer les warning */ |
|
| 465 | - define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED); |
|
| 464 | + /** Masquer les warning */ |
|
| 465 | + define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED); |
|
| 466 | 466 | } |
| 467 | 467 | error_reporting(SPIP_ERREUR_REPORT); |
| 468 | 468 | |
@@ -475,10 +475,10 @@ discard block |
||
| 475 | 475 | // ===> on execute en neutralisant les messages d'erreur |
| 476 | 476 | |
| 477 | 477 | spip_initialisation_core( |
| 478 | - (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 479 | - (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 480 | - (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 481 | - (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 478 | + (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 479 | + (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 480 | + (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 481 | + (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 482 | 482 | ); |
| 483 | 483 | |
| 484 | 484 | |
@@ -488,69 +488,69 @@ discard block |
||
| 488 | 488 | // donc il faut avoir tout fini ici avant de charger les plugins |
| 489 | 489 | |
| 490 | 490 | if (@is_readable(_CACHE_PLUGINS_OPT) and @is_readable(_CACHE_PLUGINS_PATH)) { |
| 491 | - // chargement optimise precompile |
|
| 492 | - include_once(_CACHE_PLUGINS_OPT); |
|
| 491 | + // chargement optimise precompile |
|
| 492 | + include_once(_CACHE_PLUGINS_OPT); |
|
| 493 | 493 | } else { |
| 494 | - spip_initialisation_suite(); |
|
| 495 | - include_spip('inc/plugin'); |
|
| 496 | - // generer les fichiers php precompiles |
|
| 497 | - // de chargement des plugins et des pipelines |
|
| 498 | - actualise_plugins_actifs(); |
|
| 494 | + spip_initialisation_suite(); |
|
| 495 | + include_spip('inc/plugin'); |
|
| 496 | + // generer les fichiers php precompiles |
|
| 497 | + // de chargement des plugins et des pipelines |
|
| 498 | + actualise_plugins_actifs(); |
|
| 499 | 499 | } |
| 500 | 500 | |
| 501 | 501 | // Initialisations non critiques surchargeables par les plugins |
| 502 | 502 | spip_initialisation_suite(); |
| 503 | 503 | |
| 504 | 504 | if (!defined('_LOG_FILTRE_GRAVITE')) { |
| 505 | - /** niveau maxi d'enregistrement des logs */ |
|
| 506 | - define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE); |
|
| 505 | + /** niveau maxi d'enregistrement des logs */ |
|
| 506 | + define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE); |
|
| 507 | 507 | } |
| 508 | 508 | |
| 509 | 509 | if (!defined('_OUTILS_DEVELOPPEURS')) { |
| 510 | - /** Activer des outils pour développeurs ? */ |
|
| 511 | - define('_OUTILS_DEVELOPPEURS', false); |
|
| 510 | + /** Activer des outils pour développeurs ? */ |
|
| 511 | + define('_OUTILS_DEVELOPPEURS', false); |
|
| 512 | 512 | } |
| 513 | 513 | |
| 514 | 514 | // charger systematiquement inc/autoriser dans l'espace restreint |
| 515 | 515 | if (test_espace_prive()) { |
| 516 | - include_spip('inc/autoriser'); |
|
| 516 | + include_spip('inc/autoriser'); |
|
| 517 | 517 | } |
| 518 | 518 | // |
| 519 | 519 | // Installer Spip si pas installe... sauf si justement on est en train |
| 520 | 520 | // |
| 521 | 521 | if (!(_FILE_CONNECT |
| 522 | - or autoriser_sans_cookie(_request('exec')) |
|
| 523 | - or _request('action') == 'cookie' |
|
| 524 | - or _request('action') == 'converser' |
|
| 525 | - or _request('action') == 'test_dirs') |
|
| 522 | + or autoriser_sans_cookie(_request('exec')) |
|
| 523 | + or _request('action') == 'cookie' |
|
| 524 | + or _request('action') == 'converser' |
|
| 525 | + or _request('action') == 'test_dirs') |
|
| 526 | 526 | ) { |
| 527 | 527 | |
| 528 | - // Si on peut installer, on lance illico |
|
| 529 | - if (test_espace_prive()) { |
|
| 530 | - include_spip('inc/headers'); |
|
| 531 | - redirige_url_ecrire("install"); |
|
| 532 | - } else { |
|
| 533 | - // Si on est dans le site public, dire que qq s'en occupe |
|
| 534 | - include_spip('inc/minipres'); |
|
| 535 | - utiliser_langue_visiteur(); |
|
| 536 | - echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>"); |
|
| 537 | - exit; |
|
| 538 | - } |
|
| 539 | - // autrement c'est une install ad hoc (spikini...), on sait pas faire |
|
| 528 | + // Si on peut installer, on lance illico |
|
| 529 | + if (test_espace_prive()) { |
|
| 530 | + include_spip('inc/headers'); |
|
| 531 | + redirige_url_ecrire("install"); |
|
| 532 | + } else { |
|
| 533 | + // Si on est dans le site public, dire que qq s'en occupe |
|
| 534 | + include_spip('inc/minipres'); |
|
| 535 | + utiliser_langue_visiteur(); |
|
| 536 | + echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>"); |
|
| 537 | + exit; |
|
| 538 | + } |
|
| 539 | + // autrement c'est une install ad hoc (spikini...), on sait pas faire |
|
| 540 | 540 | } |
| 541 | 541 | |
| 542 | 542 | // memoriser un tri sessionne eventuel |
| 543 | 543 | if (isset($_REQUEST['var_memotri']) |
| 544 | - and $t = $_REQUEST['var_memotri'] |
|
| 545 | - and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0) |
|
| 544 | + and $t = $_REQUEST['var_memotri'] |
|
| 545 | + and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0) |
|
| 546 | 546 | ) { |
| 547 | - if (!function_exists('session_set')) { |
|
| 548 | - include_spip('inc/session'); |
|
| 549 | - } |
|
| 550 | - $t = preg_replace(",\W,","_", $t); |
|
| 551 | - if ($v = _request($t)) { |
|
| 552 | - session_set($t, $v); |
|
| 553 | - } |
|
| 547 | + if (!function_exists('session_set')) { |
|
| 548 | + include_spip('inc/session'); |
|
| 549 | + } |
|
| 550 | + $t = preg_replace(",\W,","_", $t); |
|
| 551 | + if ($v = _request($t)) { |
|
| 552 | + session_set($t, $v); |
|
| 553 | + } |
|
| 554 | 554 | } |
| 555 | 555 | |
| 556 | 556 | /** |
@@ -560,17 +560,17 @@ discard block |
||
| 560 | 560 | * La globale $spip_header_silencieux permet de rendre le header minimal pour raisons de securite |
| 561 | 561 | */ |
| 562 | 562 | if (!defined('_HEADER_COMPOSED_BY')) { |
| 563 | - define('_HEADER_COMPOSED_BY', "Composed-By: SPIP"); |
|
| 563 | + define('_HEADER_COMPOSED_BY', "Composed-By: SPIP"); |
|
| 564 | 564 | } |
| 565 | 565 | if (!headers_sent() and _HEADER_COMPOSED_BY) { |
| 566 | - header("Vary: Cookie, Accept-Encoding"); |
|
| 567 | - if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
|
| 568 | - include_spip('inc/filtres_mini'); |
|
| 569 | - header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt")); |
|
| 570 | - } else { |
|
| 571 | - // header minimal |
|
| 572 | - header(_HEADER_COMPOSED_BY . " @ www.spip.net"); |
|
| 573 | - } |
|
| 566 | + header("Vary: Cookie, Accept-Encoding"); |
|
| 567 | + if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
|
| 568 | + include_spip('inc/filtres_mini'); |
|
| 569 | + header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt")); |
|
| 570 | + } else { |
|
| 571 | + // header minimal |
|
| 572 | + header(_HEADER_COMPOSED_BY . " @ www.spip.net"); |
|
| 573 | + } |
|
| 574 | 574 | } |
| 575 | 575 | |
| 576 | 576 | $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : '')); |
@@ -49,11 +49,11 @@ discard block |
||
| 49 | 49 | define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../'); |
| 50 | 50 | |
| 51 | 51 | /** chemin absolu vers la racine */ |
| 52 | -define('_ROOT_RACINE', dirname(dirname(__FILE__)) . '/'); |
|
| 52 | +define('_ROOT_RACINE', dirname(dirname(__FILE__)).'/'); |
|
| 53 | 53 | /** chemin absolu vers le repertoire de travail */ |
| 54 | -define('_ROOT_CWD', getcwd() . '/'); |
|
| 54 | +define('_ROOT_CWD', getcwd().'/'); |
|
| 55 | 55 | /** chemin absolu vers ecrire */ |
| 56 | -define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT); |
|
| 56 | +define('_ROOT_RESTREINT', _ROOT_CWD._DIR_RESTREINT); |
|
| 57 | 57 | |
| 58 | 58 | // Icones |
| 59 | 59 | if (!defined('_NOM_IMG_PACK')) { |
@@ -61,17 +61,17 @@ discard block |
||
| 61 | 61 | define('_NOM_IMG_PACK', 'images/'); |
| 62 | 62 | } |
| 63 | 63 | /** le chemin http (relatif) vers les images standard */ |
| 64 | -define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK)); |
|
| 64 | +define('_DIR_IMG_PACK', (_DIR_RACINE.'prive/'._NOM_IMG_PACK)); |
|
| 65 | 65 | |
| 66 | 66 | /** le chemin php (absolu) vers les images standard (pour hebergement centralise) */ |
| 67 | -define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)) . '/prive/' . _NOM_IMG_PACK); |
|
| 67 | +define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)).'/prive/'._NOM_IMG_PACK); |
|
| 68 | 68 | |
| 69 | 69 | if (!defined('_JAVASCRIPT')) { |
| 70 | 70 | /** Nom du repertoire des bibliotheques JavaScript */ |
| 71 | 71 | define('_JAVASCRIPT', 'javascript/'); |
| 72 | 72 | } // utilisable avec #CHEMIN et find_in_path |
| 73 | 73 | /** le nom du repertoire des bibliotheques JavaScript du prive */ |
| 74 | -define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT)); |
|
| 74 | +define('_DIR_JAVASCRIPT', (_DIR_RACINE.'prive/'._JAVASCRIPT)); |
|
| 75 | 75 | |
| 76 | 76 | # Le nom des 4 repertoires modifiables par les scripts lances par httpd |
| 77 | 77 | # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas) |
@@ -101,8 +101,8 @@ discard block |
||
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | // Son emplacement absolu si on le trouve |
| 104 | -if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php') |
|
| 105 | - or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php')) |
|
| 104 | +if (@file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php') |
|
| 105 | + or (@file_exists($f = _ROOT_RESTREINT._NOM_CONFIG.'.php')) |
|
| 106 | 106 | ) { |
| 107 | 107 | /** Emplacement absolu du fichier d'option */ |
| 108 | 108 | define('_FILE_OPTIONS', $f); |
@@ -125,7 +125,7 @@ discard block |
||
| 125 | 125 | |
| 126 | 126 | // Inclure l'ecran de securite |
| 127 | 127 | if (!defined('_ECRAN_SECURITE') |
| 128 | - and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php') |
|
| 128 | + and @file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES.'ecran_securite.php') |
|
| 129 | 129 | ) { |
| 130 | 130 | include $f; |
| 131 | 131 | } |
@@ -144,7 +144,7 @@ discard block |
||
| 144 | 144 | . 'MSIE 6\.0|' |
| 145 | 145 | // UA plus cibles |
| 146 | 146 | . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti' |
| 147 | - . ',i', (string)$_SERVER['HTTP_USER_AGENT']) |
|
| 147 | + . ',i', (string) $_SERVER['HTTP_USER_AGENT']) |
|
| 148 | 148 | ); |
| 149 | 149 | } |
| 150 | 150 | |
@@ -266,7 +266,7 @@ discard block |
||
| 266 | 266 | // |
| 267 | 267 | // Prendre en compte les entetes HTTP_X_FORWARDED_XX |
| 268 | 268 | // |
| 269 | -if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){ |
|
| 269 | +if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { |
|
| 270 | 270 | if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
| 271 | 271 | $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST']; |
| 272 | 272 | } |
@@ -274,10 +274,10 @@ discard block |
||
| 274 | 274 | $_SERVER['HTTP_X_FORWARDED_PORT'] = 443; |
| 275 | 275 | } |
| 276 | 276 | } |
| 277 | -if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])){ |
|
| 278 | - if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){ |
|
| 277 | +if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 278 | + if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) { |
|
| 279 | 279 | $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT']; |
| 280 | - if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){ |
|
| 280 | + if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { |
|
| 281 | 281 | $_SERVER['HTTPS'] = 'on'; |
| 282 | 282 | if (isset($_SERVER['REQUEST_SCHEME'])) { |
| 283 | 283 | $_SERVER['REQUEST_SCHEME'] = 'https'; |
@@ -285,8 +285,8 @@ discard block |
||
| 285 | 285 | } |
| 286 | 286 | } |
| 287 | 287 | $host = $_SERVER['HTTP_X_FORWARDED_HOST']; |
| 288 | - if (strpos($host,',')!==false){ |
|
| 289 | - $h = explode(',',$host); |
|
| 288 | + if (strpos($host, ',') !== false) { |
|
| 289 | + $h = explode(',', $host); |
|
| 290 | 290 | $host = trim(reset($h)); |
| 291 | 291 | } |
| 292 | 292 | // securite sur le contenu de l'entete |
@@ -298,12 +298,12 @@ discard block |
||
| 298 | 298 | // |
| 299 | 299 | if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { |
| 300 | 300 | $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; |
| 301 | - if (strpos($ip,',')!==false){ |
|
| 302 | - $ip = explode(',',$ip); |
|
| 301 | + if (strpos($ip, ',') !== false) { |
|
| 302 | + $ip = explode(',', $ip); |
|
| 303 | 303 | $ip = reset($ip); |
| 304 | 304 | } |
| 305 | 305 | // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost |
| 306 | - if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){ |
|
| 306 | + if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR'] === '127.0.0.1') { |
|
| 307 | 307 | $_SERVER['REMOTE_ADDR'] = $ip; |
| 308 | 308 | } |
| 309 | 309 | } |
@@ -376,7 +376,7 @@ discard block |
||
| 376 | 376 | # la matrice standard (fichiers definissant les fonctions a inclure) |
| 377 | 377 | $spip_matrice = array(); |
| 378 | 378 | # les plugins a activer |
| 379 | -$plugins = array(); // voir le contenu du repertoire /plugins/ |
|
| 379 | +$plugins = array(); // voir le contenu du repertoire /plugins/ |
|
| 380 | 380 | # les surcharges de include_spip() |
| 381 | 381 | $surcharges = array(); // format 'inc_truc' => '/plugins/chose/inc_truc2.php' |
| 382 | 382 | |
@@ -427,7 +427,7 @@ discard block |
||
| 427 | 427 | $spip_version_branche = "3.3.0-dev"; |
| 428 | 428 | // cette version dev accepte tous les plugins compatible avec la version ci-dessous |
| 429 | 429 | // a supprimer en phase beta/rc/release |
| 430 | -define('_DEV_VERSION_SPIP_COMPAT',"3.2.99"); |
|
| 430 | +define('_DEV_VERSION_SPIP_COMPAT', "3.2.99"); |
|
| 431 | 431 | // version des signatures de fonctions PHP |
| 432 | 432 | // (= numero SVN de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes) |
| 433 | 433 | $spip_version_code = 22653; |
@@ -451,8 +451,8 @@ discard block |
||
| 451 | 451 | // |
| 452 | 452 | // Charger les fonctions liees aux serveurs Http et Sql. |
| 453 | 453 | // |
| 454 | -require_once _ROOT_RESTREINT . 'inc/utils.php'; |
|
| 455 | -require_once _ROOT_RESTREINT . 'base/connect_sql.php'; |
|
| 454 | +require_once _ROOT_RESTREINT.'inc/utils.php'; |
|
| 455 | +require_once _ROOT_RESTREINT.'base/connect_sql.php'; |
|
| 456 | 456 | |
| 457 | 457 | // Definition personnelles eventuelles |
| 458 | 458 | |
@@ -475,10 +475,10 @@ discard block |
||
| 475 | 475 | // ===> on execute en neutralisant les messages d'erreur |
| 476 | 476 | |
| 477 | 477 | spip_initialisation_core( |
| 478 | - (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES), |
|
| 479 | - (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES), |
|
| 480 | - (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 481 | - (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 478 | + (_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES), |
|
| 479 | + (_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES), |
|
| 480 | + (_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES), |
|
| 481 | + (_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES) |
|
| 482 | 482 | ); |
| 483 | 483 | |
| 484 | 484 | |
@@ -533,7 +533,7 @@ discard block |
||
| 533 | 533 | // Si on est dans le site public, dire que qq s'en occupe |
| 534 | 534 | include_spip('inc/minipres'); |
| 535 | 535 | utiliser_langue_visiteur(); |
| 536 | - echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>"); |
|
| 536 | + echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>"._T('info_travaux_texte')."</p>"); |
|
| 537 | 537 | exit; |
| 538 | 538 | } |
| 539 | 539 | // autrement c'est une install ad hoc (spikini...), on sait pas faire |
@@ -547,7 +547,7 @@ discard block |
||
| 547 | 547 | if (!function_exists('session_set')) { |
| 548 | 548 | include_spip('inc/session'); |
| 549 | 549 | } |
| 550 | - $t = preg_replace(",\W,","_", $t); |
|
| 550 | + $t = preg_replace(",\W,", "_", $t); |
|
| 551 | 551 | if ($v = _request($t)) { |
| 552 | 552 | session_set($t, $v); |
| 553 | 553 | } |
@@ -566,12 +566,12 @@ discard block |
||
| 566 | 566 | header("Vary: Cookie, Accept-Encoding"); |
| 567 | 567 | if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) { |
| 568 | 568 | include_spip('inc/filtres_mini'); |
| 569 | - header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt")); |
|
| 569 | + header(_HEADER_COMPOSED_BY." $spip_version_affichee @ www.spip.net + ".url_absolue(_DIR_VAR."config.txt")); |
|
| 570 | 570 | } else { |
| 571 | 571 | // header minimal |
| 572 | - header(_HEADER_COMPOSED_BY . " @ www.spip.net"); |
|
| 572 | + header(_HEADER_COMPOSED_BY." @ www.spip.net"); |
|
| 573 | 573 | } |
| 574 | 574 | } |
| 575 | 575 | |
| 576 | 576 | $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : '')); |
| 577 | -spip_log($methode . ' ' . self() . ' - ' . _FILE_CONNECT, _LOG_DEBUG); |
|
| 577 | +spip_log($methode.' '.self().' - '._FILE_CONNECT, _LOG_DEBUG); |
|