summaryrefslogtreecommitdiff
path: root/suhosin.ini
diff options
context:
space:
mode:
authorBen Fuhrmannek2016-05-02 19:08:38 +0200
committerBen Fuhrmannek2016-05-02 19:08:38 +0200
commit765706eb5a01756542faf5609b303927bd6f43dc (patch)
tree391edc00ef0d60c6c91959cd749649f6ff25ffee /suhosin.ini
parent66d15abefdb5df30f25b774339067728c0b4b091 (diff)
added ini section [suhosin]
Diffstat (limited to '')
-rw-r--r--suhosin.ini608
1 files changed, 359 insertions, 249 deletions
diff --git a/suhosin.ini b/suhosin.ini
index 711baf6..eaf566b 100644
--- a/suhosin.ini
+++ b/suhosin.ini
@@ -1,12 +1,13 @@
1
2;extension=suhosin.so 1;extension=suhosin.so
3 2[suhosin]
3;
4; ===================== 4; =====================
5; Logging Configuration 5; Logging Configuration
6; ===================== 6; =====================
7 7;
8; suhosin.log.syslog 8; suhosin.log.syslog
9; ------------------ 9; ------------------
10;
10; * Type: Integer 11; * Type: Integer
11; * Default: S_ALL & ~S_SQL 12; * Default: S_ALL & ~S_SQL
12; 13;
@@ -49,12 +50,13 @@
49; 50;
50; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 51; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
51; the numeric value, e.g. `suhosin.log.syslog=511`. 52; the numeric value, e.g. `suhosin.log.syslog=511`.
52; 53;
53;suhosin.log.syslog = S_ALL & ~S_SQL 54;suhosin.log.syslog = S_ALL & ~S_SQL
54; 55;
55 56;
56; suhosin.log.syslog.facility 57; suhosin.log.syslog.facility
57; --------------------------- 58; ---------------------------
59;
58; * Type: Integer 60; * Type: Integer
59; * Default: LOG_USER 61; * Default: LOG_USER
60; 62;
@@ -104,12 +106,13 @@
104; +--------------+-------+ 106; +--------------+-------+
105; | LOG_LOCAL7 | 31 | 107; | LOG_LOCAL7 | 31 |
106; +--------------+-------+ 108; +--------------+-------+
107; 109;
108;suhosin.log.syslog.facility = LOG_USER 110;suhosin.log.syslog.facility = LOG_USER
109; 111;
110 112;
111; suhosin.log.syslog.priority 113; suhosin.log.syslog.priority
112; --------------------------- 114; ---------------------------
115;
113; * Type: Integer 116; * Type: Integer
114; * Default: LOG_ALERT 117; * Default: LOG_ALERT
115; 118;
@@ -137,12 +140,13 @@
137; +------------+-------+ 140; +------------+-------+
138; |LOG_ERR | 7 | 141; |LOG_ERR | 7 |
139; +------------+-------+ 142; +------------+-------+
140; 143;
141;suhosin.log.syslog.priority = LOG_ALERT 144;suhosin.log.syslog.priority = LOG_ALERT
142; 145;
143 146;
144; suhosin.log.sapi 147; suhosin.log.sapi
145; ---------------- 148; ----------------
149;
146; * Type: Integer 150; * Type: Integer
147; * Default: 0 151; * Default: 0
148; 152;
@@ -151,12 +155,13 @@
151; 155;
152; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 156; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
153; the numeric value. 157; the numeric value.
154; 158;
155;suhosin.log.sapi = 0 159;suhosin.log.sapi = 0
156; 160;
157 161;
158; suhosin.log.stdout 162; suhosin.log.stdout
159; ------------------ 163; ------------------
164;
160; * Type: Integer 165; * Type: Integer
161; * Default: 0 166; * Default: 0
162; 167;
@@ -166,14 +171,15 @@
166; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 171; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
167; the numeric value. 172; the numeric value.
168; 173;
169; IMPORTANT NOTE: This option is meant for debugging purposes and unittests only 174; **IMPORTANT NOTE**: This option is meant for debugging purposes and unittests
170; and should not be used in production. 175; only and should not be used in production.
171; 176;
172;suhosin.log.stdout = 0 177;suhosin.log.stdout = 0
173; 178;
174 179;
175; suhosin.log.file 180; suhosin.log.file
176; ---------------- 181; ----------------
182;
177; * Type: Integer 183; * Type: Integer
178; * Default: 0 184; * Default: 0
179; 185;
@@ -182,35 +188,38 @@
182; 188;
183; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 189; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
184; the numeric value. 190; the numeric value.
185; 191;
186;suhosin.log.file = 0 192;suhosin.log.file = 0
187; 193;
188 194;
189; suhosin.log.file.name 195; suhosin.log.file.name
190; --------------------- 196; ---------------------
197;
191; * Type: String 198; * Type: String
192; * Default: 199; * Default:
193; 200;
194; Defines the full path to a dedicated Suhosin log file. 201; Defines the full path to a dedicated Suhosin log file.
195; 202;
196;suhosin.log.file.name = 203;suhosin.log.file.name =
197; 204;
198 205;
199; suhosin.log.file.time 206; suhosin.log.file.time
200; --------------------- 207; ---------------------
208;
201; * Type: Boolean 209; * Type: Boolean
202; * Default: On 210; * Default: On
203; 211;
204; Specifies if suhosin.log.file contains timestamp for each log entry. 212; Specifies if suhosin.log.file contains timestamp for each log entry.
205; 213;
206; IMPORTANT NOTE: This option is meant for debugging purposes and unittests only 214; **IMPORTANT NOTE**: This option is meant for debugging purposes and unittests
207; and should not be used in production. 215; only and should not be used in production.
208; 216;
209;suhosin.log.file.time = On 217;suhosin.log.file.time = On
210; 218;
211 219;
212; suhosin.log.script 220; suhosin.log.script
213; ------------------ 221; ------------------
222;
214; * Type: Integer 223; * Type: Integer
215; * Default: 0 224; * Default: 0
216; 225;
@@ -221,26 +230,28 @@
221; 230;
222; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 231; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
223; the numeric value. 232; the numeric value.
224; 233;
225;suhosin.log.script = 0 234;suhosin.log.script = 0
226; 235;
227 236;
228; suhosin.log.script.name 237; suhosin.log.script.name
229; ----------------------- 238; -----------------------
239;
230; * Type: String 240; * Type: String
231; * Default: 241; * Default:
232; 242;
233; Defines the full path to an external logging script. The script is called with 243; Defines the full path to an external logging script. The script is called with
234; 2 parameters. The first one is the alert class in string notation and the 244; 2 parameters. The first one is the alert class in string notation and the
235; second parameter is the log message. This can be used for example to mail 245; second parameter is the log message. This can be used for example to mail
236; failing MySQL queries to your email address, because on a production system 246; failing MySQL queries to your email address, because on a production system
237; these things should never happen (S_SQL not yet supported by Suhosin). 247; these things should never happen (S_SQL not yet supported by Suhosin).
238; 248;
239;suhosin.log.script.name = 249;suhosin.log.script.name =
240; 250;
241 251;
242; suhosin.log.phpscript 252; suhosin.log.phpscript
243; --------------------- 253; ---------------------
254;
244; * Type: Integer 255; * Type: Integer
245; * Default: 0 256; * Default: 0
246; 257;
@@ -253,37 +264,40 @@
253; 264;
254; Using constant names is only supported with the Suhosin-Patch. If in doubt, use 265; Using constant names is only supported with the Suhosin-Patch. If in doubt, use
255; the numeric value. 266; the numeric value.
256; 267;
257;suhosin.log.phpscript = 0 268;suhosin.log.phpscript = 0
258; 269;
259 270;
260; suhosin.log.phpscript.name 271; suhosin.log.phpscript.name
261; -------------------------- 272; --------------------------
273;
262; * Type: String 274; * Type: String
263; * Default: 275; * Default:
264; 276;
265; Defines the full path to a PHP logging script. The script is called with 2 277; Defines the full path to a PHP logging script. The script is called with 2
266; variables registered in the current scope: SUHOSIN_ERRORCLASS and 278; variables registered in the current scope: SUHOSIN_ERRORCLASS and
267; SUHOSIN_ERROR. The first one is the alert class and the second variable is the 279; SUHOSIN_ERROR. The first one is the alert class and the second variable is the
268; log message. This can be used for example to mail attempted remote URL include 280; log message. This can be used for example to mail attempted remote URL include
269; attacks to your email address. 281; attacks to your email address.
270; 282;
271;suhosin.log.phpscript.name = 283;suhosin.log.phpscript.name =
272; 284;
273 285;
274; suhosin.log.phpscript.is_safe 286; suhosin.log.phpscript.is_safe
275; ----------------------------- 287; -----------------------------
288;
276; * Type: Boolean 289; * Type: Boolean
277; * Default: Off 290; * Default: Off
278; 291;
279; Disables open_basedir (and safe_mode for older PHP versions < 5.4) when 292; Disables open_basedir (and safe_mode for older PHP versions < 5.4) when
280; executing suhosin.log.phpscript.name. 293; executing suhosin.log.phpscript.name.
281; 294;
282;suhosin.log.phpscript.is_safe = Off 295;suhosin.log.phpscript.is_safe = Off
283; 296;
284 297;
285; suhosin.log.use-x-forwarded-for 298; suhosin.log.use-x-forwarded-for
286; ------------------------------- 299; -------------------------------
300;
287; * Type: Boolean 301; * Type: Boolean
288; * Default: Off 302; * Default: Off
289; 303;
@@ -292,16 +306,17 @@
292; variable. With this switch it is possible to change this behavior to read the 306; variable. With this switch it is possible to change this behavior to read the
293; IP from the X-Forwarded-For HTTP header. This is for example necessary when 307; IP from the X-Forwarded-For HTTP header. This is for example necessary when
294; your PHP server runs behind a reverse proxy. 308; your PHP server runs behind a reverse proxy.
295; 309;
296;suhosin.log.use-x-forwarded-for = Off 310;suhosin.log.use-x-forwarded-for = Off
297; 311;
298 312;
299; ================ 313; ================
300; Executor Options 314; Executor Options
301; ================ 315; ================
302 316;
303; suhosin.executor.max_depth 317; suhosin.executor.max_depth
304; -------------------------- 318; --------------------------
319;
305; * Type: Integer 320; * Type: Integer
306; * Default: 750 321; * Default: 750
307; 322;
@@ -311,12 +326,13 @@
311; disables this feature. 326; disables this feature.
312; 327;
313; (Before 0.9.37, the default value was 0.) 328; (Before 0.9.37, the default value was 0.)
314; 329;
315;suhosin.executor.max_depth = 750 330;suhosin.executor.max_depth = 750
316; 331;
317 332;
318; suhosin.executor.include.max_traversal 333; suhosin.executor.include.max_traversal
319; -------------------------------------- 334; --------------------------------------
335;
320; * Type: Integer 336; * Type: Integer
321; * Default: 0 337; * Default: 0
322; 338;
@@ -324,14 +340,15 @@
324; attack and stopped. A value of '2' will block '../../etc/passwd', while a value 340; attack and stopped. A value of '2' will block '../../etc/passwd', while a value
325; of '3' will allow it. Most PHP applications should work flawlessly with values 341; of '3' will allow it. Most PHP applications should work flawlessly with values
326; '4' or '5'. A value of '0' disables this feature. 342; '4' or '5'. A value of '0' disables this feature.
327; 343;
328;suhosin.executor.include.max_traversal = 0 344;suhosin.executor.include.max_traversal = 0
329; 345;
330 346;
331; suhosin.executor.include.whitelist 347; suhosin.executor.include.whitelist
332; ---------------------------------- 348; ----------------------------------
349;
333; * Type: String 350; * Type: String
334; * Default: 351; * Default:
335; 352;
336; Comma separated whitelist of URL schemes that are allowed to be included from 353; Comma separated whitelist of URL schemes that are allowed to be included from
337; include or require statements. Additionally to URL schemes it is possible to 354; include or require statements. Additionally to URL schemes it is possible to
@@ -344,25 +361,27 @@
344; * If both suhosin.executor.include.whitelist and 361; * If both suhosin.executor.include.whitelist and
345; suhosin.executor.include.blacklist are unset or empty, all URLs will be 362; suhosin.executor.include.blacklist are unset or empty, all URLs will be
346; blocked. This is the default. 363; blocked. This is the default.
347; 364;
348;suhosin.executor.include.whitelist = 365;suhosin.executor.include.whitelist =
349; 366;
350 367;
351; suhosin.executor.include.blacklist 368; suhosin.executor.include.blacklist
352; ---------------------------------- 369; ----------------------------------
370;
353; * Type: String 371; * Type: String
354; * Default: 372; * Default:
355; 373;
356; Comma separated blacklist of URL schemes that are not allowed to be included 374; Comma separated blacklist of URL schemes that are not allowed to be included
357; from include or require statements. Additionally to URL schemes it is possible 375; from include or require statements. Additionally to URL schemes it is possible
358; to specify the beginning of allowed URLs. (f.e.: php://stdin) If no blacklist 376; to specify the beginning of allowed URLs. (f.e.: php://stdin) If no blacklist
359; and no whitelist is specified all URL schemes are forbidden. 377; and no whitelist is specified all URL schemes are forbidden.
360; 378;
361;suhosin.executor.include.blacklist = 379;suhosin.executor.include.blacklist =
362; 380;
363 381;
364; suhosin.executor.include.allow_writable_files 382; suhosin.executor.include.allow_writable_files
365; --------------------------------------------- 383; ---------------------------------------------
384;
366; * Type: Boolean 385; * Type: Boolean
367; * Default: On 386; * Default: On
368; 387;
@@ -371,40 +390,43 @@
371; 390;
372; Note: Some software such as web-installers or web-based plugin installers won't 391; Note: Some software such as web-installers or web-based plugin installers won't
373; work out of the box with this flag turned off. 392; work out of the box with this flag turned off.
374; 393;
375;suhosin.executor.include.allow_writable_files = On 394;suhosin.executor.include.allow_writable_files = On
376; 395;
377 396;
378; suhosin.executor.func.whitelist 397; suhosin.executor.func.whitelist
379; ------------------------------- 398; -------------------------------
399;
380; * Type: String 400; * Type: String
381; * Default: 401; * Default:
382; 402;
383; Comma separated whitelist of functions that are allowed to be called. If the 403; Comma separated whitelist of functions that are allowed to be called. If the
384; whitelist is empty the blacklist is evaluated, otherwise calling a function not 404; whitelist is empty the blacklist is evaluated, otherwise calling a function not
385; in the whitelist will terminate the script and get logged. 405; in the whitelist will terminate the script and get logged.
386; 406;
387; Note: This setting deactivates suhosin.executor.func.blacklist. 407; Note: This setting deactivates suhosin.executor.func.blacklist.
388; 408;
389;suhosin.executor.func.whitelist = 409;suhosin.executor.func.whitelist =
390; 410;
391 411;
392; suhosin.executor.func.blacklist 412; suhosin.executor.func.blacklist
393; ------------------------------- 413; -------------------------------
414;
394; * Type: String 415; * Type: String
395; * Default: 416; * Default:
396; 417;
397; Comma separated blacklist of functions that are not allowed to be called. If no 418; Comma separated blacklist of functions that are not allowed to be called. If no
398; whitelist is given, calling a function within the blacklist will terminate the 419; whitelist is given, calling a function within the blacklist will terminate the
399; script and get logged. 420; script and get logged.
400; 421;
401;suhosin.executor.func.blacklist = 422;suhosin.executor.func.blacklist =
402; 423;
403 424;
404; suhosin.executor.eval.whitelist 425; suhosin.executor.eval.whitelist
405; ------------------------------- 426; -------------------------------
427;
406; * Type: String 428; * Type: String
407; * Default: 429; * Default:
408; 430;
409; Comma separated whitelist of functions that are allowed to be called from 431; Comma separated whitelist of functions that are allowed to be called from
410; within eval(). If the whitelist is empty the blacklist is evaluated, otherwise 432; within eval(). If the whitelist is empty the blacklist is evaluated, otherwise
@@ -412,37 +434,40 @@
412; logged. Please read the instructions carefully. 434; logged. Please read the instructions carefully.
413; 435;
414; Note: This setting deactivates suhosin.executor.eval.blacklist. 436; Note: This setting deactivates suhosin.executor.eval.blacklist.
415; 437;
416;suhosin.executor.eval.whitelist = 438;suhosin.executor.eval.whitelist =
417; 439;
418 440;
419; suhosin.executor.eval.blacklist 441; suhosin.executor.eval.blacklist
420; ------------------------------- 442; -------------------------------
443;
421; * Type: String 444; * Type: String
422; * Default: 445; * Default:
423; 446;
424; Comma separated blacklist of functions that are not allowed to be called from 447; Comma separated blacklist of functions that are not allowed to be called from
425; within eval(). If no whitelist is given, calling a function within the 448; within eval(). If no whitelist is given, calling a function within the
426; blacklist will terminate the script and get logged. Please read the 449; blacklist will terminate the script and get logged. Please read the
427; instructions carefully. 450; instructions carefully.
428; 451;
429;suhosin.executor.eval.blacklist = 452;suhosin.executor.eval.blacklist =
430; 453;
431 454;
432; suhosin.executor.disable_eval 455; suhosin.executor.disable_eval
433; ----------------------------- 456; -----------------------------
457;
434; * Type: Boolean 458; * Type: Boolean
435; * Default: Off 459; * Default: Off
436; 460;
437; eval() is a very dangerous statement and therefore you might want to disable it 461; eval() is a very dangerous statement and therefore you might want to disable it
438; completely. Deactivating it will however break lots of scripts. Because every 462; completely. Deactivating it will however break lots of scripts. Because every
439; violation is logged, this allows finding all places where eval() is used. 463; violation is logged, this allows finding all places where eval() is used.
440; 464;
441;suhosin.executor.disable_eval = Off 465;suhosin.executor.disable_eval = Off
442; 466;
443 467;
444; suhosin.executor.disable_emodifier 468; suhosin.executor.disable_emodifier
445; ---------------------------------- 469; ----------------------------------
470;
446; * Type: Boolean 471; * Type: Boolean
447; * Default: Off 472; * Default: Off
448; 473;
@@ -451,28 +476,30 @@
451; and test where in the application it is used. The developer using the /e 476; and test where in the application it is used. The developer using the /e
452; modifier should be made aware that he should use preg_replace_callback() 477; modifier should be made aware that he should use preg_replace_callback()
453; instead. 478; instead.
454; 479;
455;suhosin.executor.disable_emodifier = Off 480;suhosin.executor.disable_emodifier = Off
456; 481;
457 482;
458; suhosin.executor.allow_symlink 483; suhosin.executor.allow_symlink
459; ------------------------------ 484; ------------------------------
485;
460; * Type: Boolean 486; * Type: Boolean
461; * Default: Off 487; * Default: Off
462; 488;
463; This flag reactivates symlink() when open_basedir is used, which is disabled by 489; This flag reactivates symlink() when open_basedir is used, which is disabled by
464; default in Suhosin >= 0.9.6. Allowing symlink() while open_basedir is used is 490; default in Suhosin >= 0.9.6. Allowing symlink() while open_basedir is used is
465; actually a security risk. 491; actually a security risk.
466; 492;
467;suhosin.executor.allow_symlink = Off 493;suhosin.executor.allow_symlink = Off
468; 494;
469 495;
470; ============ 496; ============
471; Misc Options 497; Misc Options
472; ============ 498; ============
473 499;
474; suhosin.simulation 500; suhosin.simulation
475; ------------------ 501; ------------------
502;
476; * Type: Boolean 503; * Type: Boolean
477; * Default: Off 504; * Default: Off
478; 505;
@@ -480,12 +507,13 @@
480; simulation mode with this flag. When Suhosin runs in simulation mode, 507; simulation mode with this flag. When Suhosin runs in simulation mode,
481; violations are logged as usual, but nothing is blocked or removed from the 508; violations are logged as usual, but nothing is blocked or removed from the
482; request. (Transparent Encryptions are NOT deactivated in simulation mode.) 509; request. (Transparent Encryptions are NOT deactivated in simulation mode.)
483; 510;
484;suhosin.simulation = Off 511;suhosin.simulation = Off
485; 512;
486 513;
487; suhosin.perdir 514; suhosin.perdir
488; -------------- 515; --------------
516;
489; * Type: String 517; * Type: String
490; * Default: "0" 518; * Default: "0"
491; 519;
@@ -494,48 +522,52 @@
494; (get), "c" (cookie), "p" (post), "r" (request), "s" (sql), "u" (upload), "m" 522; (get), "c" (cookie), "p" (post), "r" (request), "s" (sql), "u" (upload), "m"
495; (misc) or any combination, e.g. "legcprsum" to allow everything. Both "0" and 523; (misc) or any combination, e.g. "legcprsum" to allow everything. Both "0" and
496; no value disable this feature. 524; no value disable this feature.
497; 525;
498;suhosin.perdir = "0" 526;suhosin.perdir = "0"
499; 527;
500 528;
501; suhosin.protectkey 529; suhosin.protectkey
502; ------------------ 530; ------------------
531;
503; * Type: Boolean 532; * Type: Boolean
504; * Default: On 533; * Default: On
505; 534;
506; Prevent Suhosin's secret key material (suhosin.cookie.cryptkey, 535; Prevent Suhosin's secret key material (suhosin.cookie.cryptkey,
507; suhosin.session.cryptkey, suhosin.rand.seedingkey) from being exposed by 536; suhosin.session.cryptkey, suhosin.rand.seedingkey) from being exposed by
508; phpinfo(). 537; phpinfo().
509; 538;
510;suhosin.protectkey = On 539;suhosin.protectkey = On
511; 540;
512 541;
513; suhosin.coredump 542; suhosin.coredump
514; ---------------- 543; ----------------
544;
515; * Type: Boolean 545; * Type: Boolean
516; * Default: Off 546; * Default: Off
517; 547;
518; Controls if suhosin coredumps when the optional suhosin patch detects a buffer 548; Controls if suhosin coredumps when the optional suhosin patch detects a buffer
519; overflow, memory corruption or double free. This is only for debugging purposes 549; overflow, memory corruption or double free. This is only for debugging purposes
520; and should not be activated. 550; and should not be activated.
521; 551;
522;suhosin.coredump = Off 552;suhosin.coredump = Off
523; 553;
524 554;
525; suhosin.stealth 555; suhosin.stealth
526; --------------- 556; ---------------
557;
527; * Type: Boolean 558; * Type: Boolean
528; * Default: On 559; * Default: On
529; 560;
530; controls if suhosin loads in stealth mode when it is not the only 561; Controls if suhosin loads in stealth mode when it is not the only
531; zend_extension (Required for full compatibility with certain encoders that 562; zend_extension (Required for full compatibility with certain encoders that
532; consider open source untrusted. e.g. ionCube, Zend) 563; consider open source untrusted. e.g. ionCube, Zend)
533; 564;
534;suhosin.stealth = On 565;suhosin.stealth = On
535; 566;
536 567;
537; suhosin.apc_bug_workaround 568; suhosin.apc_bug_workaround
538; -------------------------- 569; --------------------------
570;
539; * Type: Boolean 571; * Type: Boolean
540; * Default: Off 572; * Default: Off
541; 573;
@@ -544,36 +576,39 @@
544; will overwrite the information Suhosin stores in this slot. When this flag is 576; will overwrite the information Suhosin stores in this slot. When this flag is
545; set Suhosin will request 2 Slots and use the second one. This allows working 577; set Suhosin will request 2 Slots and use the second one. This allows working
546; correctly with these buggy APC versions. 578; correctly with these buggy APC versions.
547; 579;
548;suhosin.apc_bug_workaround = Off 580;suhosin.apc_bug_workaround = Off
549; 581;
550 582;
551; suhosin.disable.display_errors 583; suhosin.disable.display_errors
552; ------------------------------ 584; ------------------------------
585;
553; * Type: String 586; * Type: String
554; * Default: 0 587; * Default: 0
555; 588;
556; Prevent PHP from setting display_errors programmatically. "0" means off. Any 589; Prevent PHP from setting display_errors programmatically. "0" means off. Any
557; one of "1", "on", "yes", "true" means on. "fail" or "2" (or greater values) 590; one of "1", "on", "yes", "true" means on. "fail" or "2" (or greater values)
558; will let PHP know that the value change failed. 591; will let PHP know that the value change failed.
559; 592;
560;suhosin.disable.display_errors = 0 593;suhosin.disable.display_errors = 0
561; 594;
562 595;
563; suhosin.multiheader 596; suhosin.multiheader
564; ------------------- 597; -------------------
598;
565; * Type: Boolean 599; * Type: Boolean
566; * Default: Off 600; * Default: Off
567; 601;
568; This directive controls if multiple headers are allowed or not in a header() 602; This directive controls if multiple headers are allowed or not in a header()
569; call. By default the Suhosin forbids this. (HTTP headers spanning multiple 603; call. By default the Suhosin forbids this. (HTTP headers spanning multiple
570; lines are still allowed). 604; lines are still allowed).
571; 605;
572;suhosin.multiheader = Off 606;suhosin.multiheader = Off
573; 607;
574 608;
575; suhosin.mail.protect 609; suhosin.mail.protect
576; -------------------- 610; --------------------
611;
577; * Type: Integer 612; * Type: Integer
578; * Default: 0 613; * Default: 0
579; 614;
@@ -593,12 +628,13 @@
593; +-------+--------------------------------------------------------------------+ 628; +-------+--------------------------------------------------------------------+
594; 629;
595; Logging of this class of alerts is controlled by the new S_MAIL constant. 630; Logging of this class of alerts is controlled by the new S_MAIL constant.
596; 631;
597;suhosin.mail.protect = 0 632;suhosin.mail.protect = 0
598; 633;
599 634;
600; suhosin.memory_limit 635; suhosin.memory_limit
601; -------------------- 636; --------------------
637;
602; * Type: Integer 638; * Type: Integer
603; * Default: 0 639; * Default: 0
604; 640;
@@ -609,16 +645,19 @@
609; Suhosin will disallow scripts setting the memory_limit to a value above this 645; Suhosin will disallow scripts setting the memory_limit to a value above this
610; configured hard limit. This is for example useful if you want to run the script 646; configured hard limit. This is for example useful if you want to run the script
611; normally with a limit of 16M but image processing scripts may raise it to 20M. 647; normally with a limit of 16M but image processing scripts may raise it to 20M.
612; 648;
613;suhosin.memory_limit = 0 649;suhosin.memory_limit = 0
614; 650;
615 651;
616; ======================== 652; ========================
617; SQL Injection Protection 653; SQL Injection Protection
618; ======================== 654; ========================
619 655; This class of features is experimental and still in development. As of Suhosin
656; version 0.9.36 only preliminary MySQL and Mysqli support was added.
657;
620; suhosin.sql.bailout_on_error 658; suhosin.sql.bailout_on_error
621; ---------------------------- 659; ----------------------------
660;
622; * Type: Boolean 661; * Type: Boolean
623; * Default: Off 662; * Default: Off
624; 663;
@@ -626,26 +665,28 @@
626; often spit out a bunch of useful information for possible attackers. When this 665; often spit out a bunch of useful information for possible attackers. When this
627; configuration directive is turned on, the script will silently terminate, after 666; configuration directive is turned on, the script will silently terminate, after
628; the problem has been logged. 667; the problem has been logged.
629; 668;
630;suhosin.sql.bailout_on_error = Off 669;suhosin.sql.bailout_on_error = Off
631; 670;
632 671;
633; suhosin.sql.user_match 672; suhosin.sql.user_match
634; ---------------------- 673; ----------------------
674;
635; * Type: String 675; * Type: String
636; * Default: 676; * Default:
637; 677;
638; (introduced in 0.9.37) The SQL username must match this wildcard pattern or the 678; (introduced in 0.9.37) The SQL username must match this wildcard pattern or the
639; connect function will fail and return FALSE. Example: `suhosin.sql.user_match = 679; connect function will fail and return FALSE. Example: `suhosin.sql.user_match =
640; public_*` 680; public_*`
641; 681;
642;suhosin.sql.user_match = 682;suhosin.sql.user_match =
643; 683;
644 684;
645; suhosin.sql.user_prefix 685; suhosin.sql.user_prefix
646; ----------------------- 686; -----------------------
687;
647; * Type: String 688; * Type: String
648; * Default: 689; * Default:
649; 690;
650; This is an experimental feature for shared environments. With this 691; This is an experimental feature for shared environments. With this
651; configuration option it is possible to specify a prefix that is automatically 692; configuration option it is possible to specify a prefix that is automatically
@@ -655,14 +696,15 @@
655; With this feature it is possible for shared hosters to disallow customers to 696; With this feature it is possible for shared hosters to disallow customers to
656; connect with the usernames of other customers. This feature is experimental, 697; connect with the usernames of other customers. This feature is experimental,
657; because support for PDO and PostgreSQL are not yet implemented. 698; because support for PDO and PostgreSQL are not yet implemented.
658; 699;
659;suhosin.sql.user_prefix = 700;suhosin.sql.user_prefix =
660; 701;
661 702;
662; suhosin.sql.user_postfix 703; suhosin.sql.user_postfix
663; ------------------------ 704; ------------------------
705;
664; * Type: String 706; * Type: String
665; * Default: 707; * Default:
666; 708;
667; This is an experimental feature for shared environments. With this 709; This is an experimental feature for shared environments. With this
668; configuration option it is possible to specify a postfix that is automatically 710; configuration option it is possible to specify a postfix that is automatically
@@ -672,12 +714,13 @@
672; With this feature it is possible for shared hosters to disallow customers to 714; With this feature it is possible for shared hosters to disallow customers to
673; connect with the usernames of other customers. This feature is experimental, 715; connect with the usernames of other customers. This feature is experimental,
674; because support for PDO and PostgreSQL are not yet implemented. 716; because support for PDO and PostgreSQL are not yet implemented.
675; 717;
676;suhosin.sql.user_postfix = 718;suhosin.sql.user_postfix =
677; 719;
678 720;
679; suhosin.sql.comment 721; suhosin.sql.comment
680; ------------------- 722; -------------------
723;
681; * Type: Integer 724; * Type: Integer
682; * Default: 0 725; * Default: 0
683; 726;
@@ -687,24 +730,26 @@
687; 730;
688; Note: Mysql conditional statements starting with ``/*!`` are exempt if used 731; Note: Mysql conditional statements starting with ``/*!`` are exempt if used
689; with Mysqli. 732; with Mysqli.
690; 733;
691;suhosin.sql.comment = 0 734;suhosin.sql.comment = 0
692; 735;
693 736;
694; suhosin.sql.opencomment 737; suhosin.sql.opencomment
695; ----------------------- 738; -----------------------
739;
696; * Type: Integer 740; * Type: Integer
697; * Default: 0 741; * Default: 0
698; 742;
699; This is an experimental feature. 743; This is an experimental feature.
700; Alert if a MySQL comment was started but not closed: ``/*`` without ``*/``. A 744; Alert if a MySQL comment was started but not closed: ``/*`` without ``*/``. A
701; value of 1 logs the alert; 2 or greater let the call fail. 745; value of 1 logs the alert; 2 or greater let the call fail.
702; 746;
703;suhosin.sql.opencomment = 0 747;suhosin.sql.opencomment = 0
704; 748;
705 749;
706; suhosin.sql.multiselect 750; suhosin.sql.multiselect
707; ----------------------- 751; -----------------------
752;
708; * Type: Integer 753; * Type: Integer
709; * Default: 0 754; * Default: 0
710; 755;
@@ -714,74 +759,80 @@
714; 759;
715; Note: This flag will recognise multiple statements as well as subselects, e.g. 760; Note: This flag will recognise multiple statements as well as subselects, e.g.
716; "SELECT 1; SELECT 2" and "SELECT * FROM (SELECT 1)". 761; "SELECT 1; SELECT 2" and "SELECT * FROM (SELECT 1)".
717; 762;
718;suhosin.sql.multiselect = 0 763;suhosin.sql.multiselect = 0
719; 764;
720 765;
721; suhosin.sql.union 766; suhosin.sql.union
722; ----------------- 767; -----------------
768;
723; * Type: Integer 769; * Type: Integer
724; * Default: 0 770; * Default: 0
725; 771;
726; This is an experimental feature. 772; This is an experimental feature.
727; Alert if an SQL query contains one or more UNIONs. 773; Alert if an SQL query contains one or more UNIONs.
728; A value of 1 logs the alert; 2 or greater let the call fail. 774; A value of 1 logs the alert; 2 or greater let the call fail.
729; 775;
730;suhosin.sql.union = 0 776;suhosin.sql.union = 0
731; 777;
732 778;
733; ============================== 779; ==============================
734; Transparent Encryption Options 780; Transparent Encryption Options
735; ============================== 781; ==============================
736 782;
737; suhosin.session.encrypt 783; suhosin.session.encrypt
738; ----------------------- 784; -----------------------
785;
739; * Type: Boolean 786; * Type: Boolean
740; * Default: On 787; * Default: On
741; 788;
742; Flag that decides if the transparent session encryption is activated or not. 789; Flag that decides if the transparent session encryption is activated or not.
743; 790;
744;suhosin.session.encrypt = On 791;suhosin.session.encrypt = On
745; 792;
746 793;
747; suhosin.session.cryptkey 794; suhosin.session.cryptkey
748; ------------------------ 795; ------------------------
796;
749; * Type: String 797; * Type: String
750; * Default: 798; * Default:
751; 799;
752; Session data can be encrypted transparently. The encryption key used consists 800; Session data can be encrypted transparently. The encryption key used consists
753; of this user defined string (which can be altered by a script via ini_set()) 801; of this user defined string (which can be altered by a script via ini_set())
754; and optionally the User-Agent, the Document-Root and 0-4 octects of the 802; and optionally the User-Agent, the Document-Root and 0-4 octects of the
755; REMOTE_ADDR. 803; REMOTE_ADDR.
756; 804;
757;suhosin.session.cryptkey = 805;suhosin.session.cryptkey =
758; 806;
759 807;
760; suhosin.session.cryptua 808; suhosin.session.cryptua
761; ----------------------- 809; -----------------------
810;
762; * Type: Boolean 811; * Type: Boolean
763; * Default: Off 812; * Default: Off
764; 813;
765; Flag that decides if the transparent session encryption key depends on the 814; Flag that decides if the transparent session encryption key depends on the
766; User-Agent field. (When activated this feature transparently adds a little bit 815; User-Agent field. (When activated this feature transparently adds a little bit
767; protection against session fixation/hijacking attacks) 816; protection against session fixation/hijacking attacks)
768; 817;
769;suhosin.session.cryptua = Off 818;suhosin.session.cryptua = Off
770; 819;
771 820;
772; suhosin.session.cryptdocroot 821; suhosin.session.cryptdocroot
773; ---------------------------- 822; ----------------------------
823;
774; * Type: Boolean 824; * Type: Boolean
775; * Default: On 825; * Default: On
776; 826;
777; Flag that decides if the transparent session encryption key depends on the 827; Flag that decides if the transparent session encryption key depends on the
778; Documentroot field. 828; Documentroot field.
779; 829;
780;suhosin.session.cryptdocroot = On 830;suhosin.session.cryptdocroot = On
781; 831;
782 832;
783; suhosin.session.cryptraddr 833; suhosin.session.cryptraddr
784; -------------------------- 834; --------------------------
835;
785; * Type: Integer 836; * Type: Integer
786; * Default: 0 837; * Default: 0
787; 838;
@@ -791,12 +842,13 @@
791; a session. But this feature might be interesting for admin interfaces or 842; a session. But this feature might be interesting for admin interfaces or
792; intranets. When used wisely this is a transparent protection against session 843; intranets. When used wisely this is a transparent protection against session
793; hijacking/fixation. This feature supports IPv4 only. 844; hijacking/fixation. This feature supports IPv4 only.
794; 845;
795;suhosin.session.cryptraddr = 0 846;suhosin.session.cryptraddr = 0
796; 847;
797 848;
798; suhosin.session.checkraddr 849; suhosin.session.checkraddr
799; -------------------------- 850; --------------------------
851;
800; * Type: Integer 852; * Type: Integer
801; * Default: 0 853; * Default: 0
802; 854;
@@ -805,34 +857,37 @@
805; part of the encryption key, so that the same session can be used for different 857; part of the encryption key, so that the same session can be used for different
806; areas with different protection levels on the site. This feature supports IPv4 858; areas with different protection levels on the site. This feature supports IPv4
807; only. 859; only.
808; 860;
809;suhosin.session.checkraddr = 0 861;suhosin.session.checkraddr = 0
810; 862;
811 863;
812; suhosin.cookie.encrypt 864; suhosin.cookie.encrypt
813; ---------------------- 865; ----------------------
866;
814; * Type: Boolean 867; * Type: Boolean
815; * Default: Off 868; * Default: Off
816; 869;
817; Flag that decides if the transparent cookie encryption is activated or not. 870; Flag that decides if the transparent cookie encryption is activated or not.
818; 871;
819;suhosin.cookie.encrypt = Off 872;suhosin.cookie.encrypt = Off
820; 873;
821 874;
822; suhosin.cookie.cryptkey 875; suhosin.cookie.cryptkey
823; ----------------------- 876; -----------------------
877;
824; * Type: String 878; * Type: String
825; * Default: 879; * Default:
826; 880;
827; Cookies can be encrypted transparently. The encryption key used consists of 881; Cookies can be encrypted transparently. The encryption key used consists of
828; this user defined string and optionally the User-Agent, the Document-Root and 882; this user defined string and optionally the User-Agent, the Document-Root and
829; 0-4 octects of the REMOTE_ADDR. 883; 0-4 octects of the REMOTE_ADDR.
830; 884;
831;suhosin.cookie.cryptkey = 885;suhosin.cookie.cryptkey =
832; 886;
833 887;
834; suhosin.cookie.cryptua 888; suhosin.cookie.cryptua
835; ---------------------- 889; ----------------------
890;
836; * Type: Boolean 891; * Type: Boolean
837; * Default: On 892; * Default: On
838; 893;
@@ -840,23 +895,25 @@
840; User-Agent field. (When activated this feature transparently adds a little bit 895; User-Agent field. (When activated this feature transparently adds a little bit
841; protection against session fixation/hijacking attacks (if only session cookies 896; protection against session fixation/hijacking attacks (if only session cookies
842; are allowed)) 897; are allowed))
843; 898;
844;suhosin.cookie.cryptua = On 899;suhosin.cookie.cryptua = On
845; 900;
846 901;
847; suhosin.cookie.cryptdocroot 902; suhosin.cookie.cryptdocroot
848; --------------------------- 903; ---------------------------
904;
849; * Type: Boolean 905; * Type: Boolean
850; * Default: On 906; * Default: On
851; 907;
852; Flag that decides if the transparent cookie encryption key depends on the 908; Flag that decides if the transparent cookie encryption key depends on the
853; Documentroot field. 909; Documentroot field.
854; 910;
855;suhosin.cookie.cryptdocroot = On 911;suhosin.cookie.cryptdocroot = On
856; 912;
857 913;
858; suhosin.cookie.cryptraddr 914; suhosin.cookie.cryptraddr
859; ------------------------- 915; -------------------------
916;
860; * Type: Integer 917; * Type: Integer
861; * Default: 0 918; * Default: 0
862; 919;
@@ -866,12 +923,13 @@
866; a session. But this feature might be interesting for admin interfaces or 923; a session. But this feature might be interesting for admin interfaces or
867; intranets. When used wisely this is a transparent protection against session 924; intranets. When used wisely this is a transparent protection against session
868; hijacking/fixation. This feature supports IPv4 only. 925; hijacking/fixation. This feature supports IPv4 only.
869; 926;
870;suhosin.cookie.cryptraddr = 0 927;suhosin.cookie.cryptraddr = 0
871; 928;
872 929;
873; suhosin.cookie.checkraddr 930; suhosin.cookie.checkraddr
874; ------------------------- 931; -------------------------
932;
875; * Type: Integer 933; * Type: Integer
876; * Default: 0 934; * Default: 0
877; 935;
@@ -879,43 +937,50 @@
879; cookie. The difference to suhosin.cookie.cryptaddr is, that the IP is not part 937; cookie. The difference to suhosin.cookie.cryptaddr is, that the IP is not part
880; of the encryption key, so that the same cookie can be used for different areas 938; of the encryption key, so that the same cookie can be used for different areas
881; with different protection levels on the site. This feature supports IPv4 only. 939; with different protection levels on the site. This feature supports IPv4 only.
882; 940;
883;suhosin.cookie.checkraddr = 0 941;suhosin.cookie.checkraddr = 0
884; 942;
885 943;
886; suhosin.cookie.cryptlist 944; suhosin.cookie.cryptlist
887; ------------------------ 945; ------------------------
946;
888; * Type: String 947; * Type: String
889; * Default: 948; * Default:
890; 949;
891; In case not all cookies are supposed to get encrypted this is a comma separated 950; In case not all cookies are supposed to get encrypted this is a comma separated
892; list of cookie names that should get encrypted. All other cookies will not get 951; list of cookie names that should get encrypted. All other cookies will not get
893; touched. 952; touched.
894; 953;
954; Note: Cookies handled on client side with JavaScript as well as on server side
955; should not be encrypted, e.g. listed in suhosin.cookie.plainlist or omitted in
956; suhosin.cookie.cryptlist.
957;
895;suhosin.cookie.cryptlist = 958;suhosin.cookie.cryptlist =
896; 959;
897 960;
898; suhosin.cookie.plainlist 961; suhosin.cookie.plainlist
899; ------------------------ 962; ------------------------
963;
900; * Type: String 964; * Type: String
901; * Default: 965; * Default:
902; 966;
903; In case some cookies should not be encrypted this is a comma separated list of 967; In case some cookies should not be encrypted this is a comma separated list of
904; cookies that do not get encrypted. All other cookies will be encrypted. 968; cookies that do not get encrypted. All other cookies will be encrypted.
905; 969;
906; Note: This setting deactivates suhosin.cookie.cryptlist. 970; Note: This setting deactivates suhosin.cookie.cryptlist.
907; 971;
908;suhosin.cookie.plainlist = 972;suhosin.cookie.plainlist =
909; 973;
910 974;
911; ================= 975; =================
912; Filtering Options 976; Filtering Options
913; ================= 977; =================
914 978;
915; suhosin.filter.action 979; suhosin.filter.action
916; --------------------- 980; ---------------------
981;
917; * Type: Mixed 982; * Type: Mixed
918; * Default: 983; * Default:
919; 984;
920; Defines the reaction of Suhosin on a filter violation. Following possible 985; Defines the reaction of Suhosin on a filter violation. Following possible
921; actions are supported 986; actions are supported
@@ -937,12 +1002,13 @@
937; | | the requested script. Optionally set a | 1002; | | the requested script. Optionally set a |
938; | | specific HTTP response code | 1003; | | specific HTTP response code |
939; +-------------------------------+--------------------------------------------+ 1004; +-------------------------------+--------------------------------------------+
940; 1005;
941;suhosin.filter.action = 1006;suhosin.filter.action =
942; 1007;
943 1008;
944; suhosin.cookie.max_array_depth 1009; suhosin.cookie.max_array_depth
945; ------------------------------ 1010; ------------------------------
1011;
946; * Type: Integer 1012; * Type: Integer
947; * Default: 50 1013; * Default: 50
948; 1014;
@@ -950,86 +1016,94 @@
950; the COOKIE. 1016; the COOKIE.
951; 1017;
952; Note: Array depth is not the number of elements within an array. 1018; Note: Array depth is not the number of elements within an array.
953; 1019;
954;suhosin.cookie.max_array_depth = 50 1020;suhosin.cookie.max_array_depth = 50
955; 1021;
956 1022;
957; suhosin.cookie.max_array_index_length 1023; suhosin.cookie.max_array_index_length
958; ------------------------------------- 1024; -------------------------------------
1025;
959; * Type: Integer 1026; * Type: Integer
960; * Default: 64 1027; * Default: 64
961; 1028;
962; Defines the maximum length of array indices for variables registered through 1029; Defines the maximum length of array indices for variables registered through
963; the COOKIE. 1030; the COOKIE.
964; 1031;
965;suhosin.cookie.max_array_index_length = 64 1032;suhosin.cookie.max_array_index_length = 64
966; 1033;
967 1034;
968; suhosin.cookie.max_name_length 1035; suhosin.cookie.max_name_length
969; ------------------------------ 1036; ------------------------------
1037;
970; * Type: Integer 1038; * Type: Integer
971; * Default: 64 1039; * Default: 64
972; 1040;
973; Defines the maximum length of variable names for variables registered through 1041; Defines the maximum length of variable names for variables registered through
974; the COOKIE. For array variables this is the name in front of the indices. 1042; the COOKIE. For array variables this is the name in front of the indices.
975; 1043;
976;suhosin.cookie.max_name_length = 64 1044;suhosin.cookie.max_name_length = 64
977; 1045;
978 1046;
979; suhosin.cookie.max_totalname_length 1047; suhosin.cookie.max_totalname_length
980; ----------------------------------- 1048; -----------------------------------
1049;
981; * Type: Integer 1050; * Type: Integer
982; * Default: 256 1051; * Default: 256
983; 1052;
984; Defines the maximum length of the total variable name when registered through 1053; Defines the maximum length of the total variable name when registered through
985; the COOKIE. For array variables this includes all indices. 1054; the COOKIE. For array variables this includes all indices.
986; 1055;
987;suhosin.cookie.max_totalname_length = 256 1056;suhosin.cookie.max_totalname_length = 256
988; 1057;
989 1058;
990; suhosin.cookie.max_value_length 1059; suhosin.cookie.max_value_length
991; ------------------------------- 1060; -------------------------------
1061;
992; * Type: Integer 1062; * Type: Integer
993; * Default: 10000 1063; * Default: 10000
994; 1064;
995; Defines the maximum length of a variable that is registered through the COOKIE. 1065; Defines the maximum length of a variable that is registered through the COOKIE.
996; 1066;
997;suhosin.cookie.max_value_length = 10000 1067;suhosin.cookie.max_value_length = 10000
998; 1068;
999 1069;
1000; suhosin.cookie.max_vars 1070; suhosin.cookie.max_vars
1001; ----------------------- 1071; -----------------------
1072;
1002; * Type: Integer 1073; * Type: Integer
1003; * Default: 100 1074; * Default: 100
1004; 1075;
1005; Defines the maximum number of variables that may be registered through the 1076; Defines the maximum number of variables that may be registered through the
1006; COOKIE. 1077; COOKIE.
1007; 1078;
1008;suhosin.cookie.max_vars = 100 1079;suhosin.cookie.max_vars = 100
1009; 1080;
1010 1081;
1011; suhosin.cookie.disallow_nul 1082; suhosin.cookie.disallow_nul
1012; --------------------------- 1083; ---------------------------
1084;
1013; * Type: Boolean 1085; * Type: Boolean
1014; * Default: On 1086; * Default: On
1015; 1087;
1016; When set to On ASCIIZ chars are not allowed in variables. 1088; When set to On ASCIIZ chars are not allowed in variables.
1017; 1089;
1018;suhosin.cookie.disallow_nul = On 1090;suhosin.cookie.disallow_nul = On
1019; 1091;
1020 1092;
1021; suhosin.cookie.disallow_ws 1093; suhosin.cookie.disallow_ws
1022; -------------------------- 1094; --------------------------
1095;
1023; * Type: Boolean 1096; * Type: Boolean
1024; * Default: On 1097; * Default: On
1025; 1098;
1026; Ignore cookies with names starting with whitespace. 1099; Ignore cookies with names starting with whitespace.
1027; 1100;
1028;suhosin.cookie.disallow_ws = On 1101;suhosin.cookie.disallow_ws = On
1029; 1102;
1030 1103;
1031; suhosin.get.max_array_depth 1104; suhosin.get.max_array_depth
1032; --------------------------- 1105; ---------------------------
1106;
1033; * Type: Integer 1107; * Type: Integer
1034; * Default: 50 1108; * Default: 50
1035; 1109;
@@ -1037,85 +1111,93 @@
1037; the URL. 1111; the URL.
1038; 1112;
1039; Note: Array depth is not the number of elements within an array. 1113; Note: Array depth is not the number of elements within an array.
1040; 1114;
1041;suhosin.get.max_array_depth = 50 1115;suhosin.get.max_array_depth = 50
1042; 1116;
1043 1117;
1044; suhosin.get.max_array_index_length 1118; suhosin.get.max_array_index_length
1045; ---------------------------------- 1119; ----------------------------------
1120;
1046; * Type: Integer 1121; * Type: Integer
1047; * Default: 64 1122; * Default: 64
1048; 1123;
1049; Defines the maximum length of array indices for variables registered through 1124; Defines the maximum length of array indices for variables registered through
1050; the URL. 1125; the URL.
1051; 1126;
1052;suhosin.get.max_array_index_length = 64 1127;suhosin.get.max_array_index_length = 64
1053; 1128;
1054 1129;
1055; suhosin.get.max_name_length 1130; suhosin.get.max_name_length
1056; --------------------------- 1131; ---------------------------
1132;
1057; * Type: Integer 1133; * Type: Integer
1058; * Default: 64 1134; * Default: 64
1059; 1135;
1060; Defines the maximum length of variable names for variables registered through 1136; Defines the maximum length of variable names for variables registered through
1061; the URL. For array variables this is the name in front of the indices. 1137; the URL. For array variables this is the name in front of the indices.
1062; 1138;
1063;suhosin.get.max_name_length = 64 1139;suhosin.get.max_name_length = 64
1064; 1140;
1065 1141;
1066; suhosin.get.max_totalname_length 1142; suhosin.get.max_totalname_length
1067; -------------------------------- 1143; --------------------------------
1144;
1068; * Type: Integer 1145; * Type: Integer
1069; * Default: 256 1146; * Default: 256
1070; 1147;
1071; Defines the maximum length of the total variable name when registered through 1148; Defines the maximum length of the total variable name when registered through
1072; the URL. For array variables this includes all indices. 1149; the URL. For array variables this includes all indices.
1073; 1150;
1074;suhosin.get.max_totalname_length = 256 1151;suhosin.get.max_totalname_length = 256
1075; 1152;
1076 1153;
1077; suhosin.get.max_value_length 1154; suhosin.get.max_value_length
1078; ---------------------------- 1155; ----------------------------
1156;
1079; * Type: Integer 1157; * Type: Integer
1080; * Default: 512 1158; * Default: 512
1081; 1159;
1082; Defines the maximum length of a variable that is registered through the URL. 1160; Defines the maximum length of a variable that is registered through the URL.
1083; 1161;
1084;suhosin.get.max_value_length = 512 1162;suhosin.get.max_value_length = 512
1085; 1163;
1086 1164;
1087; suhosin.get.max_vars 1165; suhosin.get.max_vars
1088; -------------------- 1166; --------------------
1167;
1089; * Type: Integer 1168; * Type: Integer
1090; * Default: 100 1169; * Default: 100
1091; 1170;
1092; Defines the maximum number of variables that may be registered through the URL. 1171; Defines the maximum number of variables that may be registered through the URL.
1093; 1172;
1094;suhosin.get.max_vars = 100 1173;suhosin.get.max_vars = 100
1095; 1174;
1096 1175;
1097; suhosin.get.disallow_nul 1176; suhosin.get.disallow_nul
1098; ------------------------ 1177; ------------------------
1178;
1099; * Type: Boolean 1179; * Type: Boolean
1100; * Default: On 1180; * Default: On
1101; 1181;
1102; When set to On ASCIIZ chars are not allowed in variables. 1182; When set to On ASCIIZ chars are not allowed in variables.
1103; 1183;
1104;suhosin.get.disallow_nul = On 1184;suhosin.get.disallow_nul = On
1105; 1185;
1106 1186;
1107; suhosin.get.disallow_ws 1187; suhosin.get.disallow_ws
1108; ----------------------- 1188; -----------------------
1189;
1109; * Type: Boolean 1190; * Type: Boolean
1110; * Default: Off 1191; * Default: Off
1111; 1192;
1112; Ignore GET parameters with names starting with whitespace. 1193; Ignore GET parameters with names starting with whitespace.
1113; 1194;
1114;suhosin.get.disallow_ws = Off 1195;suhosin.get.disallow_ws = Off
1115; 1196;
1116 1197;
1117; suhosin.post.max_array_depth 1198; suhosin.post.max_array_depth
1118; ---------------------------- 1199; ----------------------------
1200;
1119; * Type: Integer 1201; * Type: Integer
1120; * Default: 50 1202; * Default: 50
1121; 1203;
@@ -1123,113 +1205,121 @@
1123; POST request. 1205; POST request.
1124; 1206;
1125; Note: Array depth is not the number of elements within an array. 1207; Note: Array depth is not the number of elements within an array.
1126; 1208;
1127;suhosin.post.max_array_depth = 50 1209;suhosin.post.max_array_depth = 50
1128; 1210;
1129 1211;
1130; suhosin.post.max_array_index_length 1212; suhosin.post.max_array_index_length
1131; ----------------------------------- 1213; -----------------------------------
1214;
1132; * Type: Integer 1215; * Type: Integer
1133; * Default: 64 1216; * Default: 64
1134; 1217;
1135; Defines the maximum length of array indices for variables registered through a 1218; Defines the maximum length of array indices for variables registered through a
1136; POST request. 1219; POST request.
1137; 1220;
1138;suhosin.post.max_array_index_length = 64 1221;suhosin.post.max_array_index_length = 64
1139; 1222;
1140 1223;
1141; suhosin.post.max_name_length 1224; suhosin.post.max_name_length
1142; ---------------------------- 1225; ----------------------------
1226;
1143; * Type: Integer 1227; * Type: Integer
1144; * Default: 64 1228; * Default: 64
1145; 1229;
1146; Defines the maximum length of variable names for variables registered through a 1230; Defines the maximum length of variable names for variables registered through a
1147; POST request. For array variables this is the name in front of the indices. 1231; POST request. For array variables this is the name in front of the indices.
1148; 1232;
1149;suhosin.post.max_name_length = 64 1233;suhosin.post.max_name_length = 64
1150; 1234;
1151 1235;
1152; suhosin.post.max_totalname_length 1236; suhosin.post.max_totalname_length
1153; --------------------------------- 1237; ---------------------------------
1238;
1154; * Type: Integer 1239; * Type: Integer
1155; * Default: 256 1240; * Default: 256
1156; 1241;
1157; Defines the maximum length of the total variable name when registered through a 1242; Defines the maximum length of the total variable name when registered through a
1158; POST request. For array variables this includes all indices. 1243; POST request. For array variables this includes all indices.
1159; 1244;
1160;suhosin.post.max_totalname_length = 256 1245;suhosin.post.max_totalname_length = 256
1161; 1246;
1162 1247;
1163; suhosin.post.max_value_length 1248; suhosin.post.max_value_length
1164; ----------------------------- 1249; -----------------------------
1250;
1165; * Type: Integer 1251; * Type: Integer
1166; * Default: 1000000 1252; * Default: 1000000
1167; 1253;
1168; Defines the maximum length of a variable that is registered through a POST 1254; Defines the maximum length of a variable that is registered through a POST
1169; request. 1255; request.
1170; 1256;
1171;suhosin.post.max_value_length = 1000000 1257;suhosin.post.max_value_length = 1000000
1172; 1258;
1173 1259;
1174; suhosin.post.max_vars 1260; suhosin.post.max_vars
1175; --------------------- 1261; ---------------------
1262;
1176; * Type: Integer 1263; * Type: Integer
1177; * Default: 1000 1264; * Default: 1000
1178; 1265;
1179; Defines the maximum number of variables that may be registered through a POST 1266; Defines the maximum number of variables that may be registered through a POST
1180; request. 1267; request.
1181; 1268;
1182;suhosin.post.max_vars = 1000 1269;suhosin.post.max_vars = 1000
1183; 1270;
1184 1271;
1185; suhosin.post.disallow_nul 1272; suhosin.post.disallow_nul
1186; ------------------------- 1273; -------------------------
1274;
1187; * Type: Boolean 1275; * Type: Boolean
1188; * Default: On 1276; * Default: On
1189; 1277;
1190; When set to On ASCIIZ chars are not allowed in variables. 1278; When set to On ASCIIZ chars are not allowed in variables.
1191; 1279;
1192;suhosin.post.disallow_nul = On 1280;suhosin.post.disallow_nul = On
1193; 1281;
1194 1282;
1195; suhosin.post.disallow_ws 1283; suhosin.post.disallow_ws
1196; ------------------------ 1284; ------------------------
1285;
1197; * Type: Boolean 1286; * Type: Boolean
1198; * Default: Off 1287; * Default: Off
1199; 1288;
1200; Ignore POST parameters with names starting with whitespace. 1289; Ignore POST parameters with names starting with whitespace.
1201; 1290;
1202;suhosin.post.disallow_ws = Off 1291;suhosin.post.disallow_ws = Off
1203; 1292;
1204 1293;
1205; suhosin.request.array_index_blacklist 1294; suhosin.request.array_index_blacklist
1206; ------------------------------------- 1295; -------------------------------------
1296;
1207; * Type: String 1297; * Type: String
1208; * Default: "'\"+<>;()" 1298; * Default: "'\"+<>;()"
1209; 1299;
1210; Defines a character blacklist for array indices not allowed in user input. 1300; Defines a character blacklist for array indices not allowed in user input.
1211; 1301;
1212; Note: The default value also contained '-' in 0.9.37, which was removed in
1213; 0.9.37.1 due to incompatibility issues.
1214;
1215;suhosin.request.array_index_blacklist = "'\"+<>;()" 1302;suhosin.request.array_index_blacklist = "'\"+<>;()"
1216; 1303;
1217 1304;
1218; suhosin.request.array_index_whitelist 1305; suhosin.request.array_index_whitelist
1219; ------------------------------------- 1306; -------------------------------------
1307;
1220; * Type: String 1308; * Type: String
1221; * Default: 1309; * Default:
1310;
1222; * Example: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 1311; * Example: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
1223; 1312;
1224; Defines a character whitelist for array indices allowed in user input. 1313; Defines a character whitelist for array indices allowed in user input.
1225; 1314;
1226; Note: This setting deactivates suhosin.request.array_index_blacklist. 1315; Note: This setting deactivates suhosin.request.array_index_blacklist.
1227; 1316;
1228;suhosin.request.array_index_whitelist = 1317;suhosin.request.array_index_whitelist =
1229; 1318;
1230 1319;
1231; suhosin.request.max_array_depth 1320; suhosin.request.max_array_depth
1232; ------------------------------- 1321; -------------------------------
1322;
1233; * Type: Integer 1323; * Type: Integer
1234; * Default: 50 1324; * Default: 50
1235; 1325;
@@ -1238,24 +1328,26 @@
1238; POST, COOKIE configuration directives. 1328; POST, COOKIE configuration directives.
1239; 1329;
1240; Note: Array depth is not the number of elements within an array. 1330; Note: Array depth is not the number of elements within an array.
1241; 1331;
1242;suhosin.request.max_array_depth = 50 1332;suhosin.request.max_array_depth = 50
1243; 1333;
1244 1334;
1245; suhosin.request.max_array_index_length 1335; suhosin.request.max_array_index_length
1246; -------------------------------------- 1336; --------------------------------------
1337;
1247; * Type: Integer 1338; * Type: Integer
1248; * Default: 64 1339; * Default: 64
1249; 1340;
1250; Defines the maximum length of array indices for variables registered through 1341; Defines the maximum length of array indices for variables registered through
1251; GET, POST or COOKIE. This setting is also an upper limit for the separate GET, 1342; GET, POST or COOKIE. This setting is also an upper limit for the separate GET,
1252; POST, COOKIE configuration directives. 1343; POST, COOKIE configuration directives.
1253; 1344;
1254;suhosin.request.max_array_index_length = 64 1345;suhosin.request.max_array_index_length = 64
1255; 1346;
1256 1347;
1257; suhosin.request.max_totalname_length 1348; suhosin.request.max_totalname_length
1258; ------------------------------------ 1349; ------------------------------------
1350;
1259; * Type: Integer 1351; * Type: Integer
1260; * Default: 256 1352; * Default: 256
1261; 1353;
@@ -1263,36 +1355,39 @@
1263; the COOKIE, the URL or through a POST request. This is the complete name 1355; the COOKIE, the URL or through a POST request. This is the complete name
1264; string, including all indices. This setting is also an upper limit for the 1356; string, including all indices. This setting is also an upper limit for the
1265; separate GET, POST, COOKIE configuration directives. 1357; separate GET, POST, COOKIE configuration directives.
1266; 1358;
1267;suhosin.request.max_totalname_length = 256 1359;suhosin.request.max_totalname_length = 256
1268; 1360;
1269 1361;
1270; suhosin.request.max_value_length 1362; suhosin.request.max_value_length
1271; -------------------------------- 1363; --------------------------------
1364;
1272; * Type: Integer 1365; * Type: Integer
1273; * Default: 1000000 1366; * Default: 1000000
1274; 1367;
1275; Defines the maximum length of a variable that is registered through the COOKIE, 1368; Defines the maximum length of a variable that is registered through the COOKIE,
1276; the URL or through a POST request. This setting is also an upper limit for the 1369; the URL or through a POST request. This setting is also an upper limit for the
1277; variable origin specific configuration directives. 1370; variable origin specific configuration directives.
1278; 1371;
1279;suhosin.request.max_value_length = 1000000 1372;suhosin.request.max_value_length = 1000000
1280; 1373;
1281 1374;
1282; suhosin.request.max_vars 1375; suhosin.request.max_vars
1283; ------------------------ 1376; ------------------------
1377;
1284; * Type: Integer 1378; * Type: Integer
1285; * Default: 1000 1379; * Default: 1000
1286; 1380;
1287; Defines the maximum number of variables that may be registered through the 1381; Defines the maximum number of variables that may be registered through the
1288; COOKIE, the URL or through a POST request. This setting is also an upper limit 1382; COOKIE, the URL or through a POST request. This setting is also an upper limit
1289; for the variable origin specific configuration directives. 1383; for the variable origin specific configuration directives.
1290; 1384;
1291;suhosin.request.max_vars = 1000 1385;suhosin.request.max_vars = 1000
1292; 1386;
1293 1387;
1294; suhosin.request.max_varname_length 1388; suhosin.request.max_varname_length
1295; ---------------------------------- 1389; ----------------------------------
1390;
1296; * Type: Integer 1391; * Type: Integer
1297; * Default: 64 1392; * Default: 64
1298; 1393;
@@ -1300,96 +1395,105 @@
1300; that may be registered through the COOKIE, the URL or through a POST request. 1395; that may be registered through the COOKIE, the URL or through a POST request.
1301; This setting is also an upper limit for the variable origin specific 1396; This setting is also an upper limit for the variable origin specific
1302; configuration directives. 1397; configuration directives.
1303; 1398;
1304;suhosin.request.max_varname_length = 64 1399;suhosin.request.max_varname_length = 64
1305; 1400;
1306 1401;
1307; suhosin.request.disallow_nul 1402; suhosin.request.disallow_nul
1308; ---------------------------- 1403; ----------------------------
1404;
1309; * Type: Boolean 1405; * Type: Boolean
1310; * Default: On 1406; * Default: On
1311; 1407;
1312; When set to On ASCIIZ chars are not allowed in variables. 1408; When set to On ASCIIZ chars are not allowed in variables.
1313; 1409;
1314;suhosin.request.disallow_nul = On 1410;suhosin.request.disallow_nul = On
1315; 1411;
1316 1412;
1317; suhosin.request.disallow_ws 1413; suhosin.request.disallow_ws
1318; --------------------------- 1414; ---------------------------
1415;
1319; * Type: Boolean 1416; * Type: Boolean
1320; * Default: Off 1417; * Default: Off
1321; 1418;
1322; Ignore all variables with names starting with whitespace. 1419; Ignore all variables with names starting with whitespace.
1323; 1420;
1324;suhosin.request.disallow_ws = Off 1421;suhosin.request.disallow_ws = Off
1325; 1422;
1326 1423;
1327; suhosin.upload.max_uploads 1424; suhosin.upload.max_uploads
1328; -------------------------- 1425; --------------------------
1426;
1329; * Type: Integer 1427; * Type: Integer
1330; * Default: 25 1428; * Default: 25
1331; 1429;
1332; Defines the maximum number of files that may be uploaded with one request. 1430; Defines the maximum number of files that may be uploaded with one request.
1333; 1431;
1334;suhosin.upload.max_uploads = 25 1432;suhosin.upload.max_uploads = 25
1335; 1433;
1336 1434;
1337; suhosin.upload.max_newlines 1435; suhosin.upload.max_newlines
1338; --------------------------- 1436; ---------------------------
1437;
1339; * Type: Integer 1438; * Type: Integer
1340; * Default: 100 1439; * Default: 100
1341; 1440;
1342; Defines the maximum number of newlines in rfc1867 mime headers. 1441; Defines the maximum number of newlines in rfc1867 mime headers.
1343; (added with version 0.9.38) 1442; (added with version 0.9.38)
1344; 1443;
1345;suhosin.upload.max_newlines = 100 1444;suhosin.upload.max_newlines = 100
1346; 1445;
1347 1446;
1348; suhosin.upload.disallow_elf 1447; suhosin.upload.disallow_elf
1349; --------------------------- 1448; ---------------------------
1449;
1350; * Type: Boolean 1450; * Type: Boolean
1351; * Default: On 1451; * Default: On
1352; 1452;
1353; When set to On it is not possible to upload ELF executables. 1453; When set to On it is not possible to upload ELF executables.
1354; 1454;
1355;suhosin.upload.disallow_elf = On 1455;suhosin.upload.disallow_elf = On
1356; 1456;
1357 1457;
1358; suhosin.upload.disallow_binary 1458; suhosin.upload.disallow_binary
1359; ------------------------------ 1459; ------------------------------
1460;
1360; * Type: Boolean 1461; * Type: Boolean
1361; * Default: Off 1462; * Default: Off
1362; 1463;
1363; When set to On it is not possible to upload binary files. 1464; When set to On it is not possible to upload binary files.
1364; 1465;
1365;suhosin.upload.disallow_binary = Off 1466;suhosin.upload.disallow_binary = Off
1366; 1467;
1367 1468;
1368; suhosin.upload.remove_binary 1469; suhosin.upload.remove_binary
1369; ---------------------------- 1470; ----------------------------
1471;
1370; * Type: Boolean 1472; * Type: Boolean
1371; * Default: Off 1473; * Default: Off
1372; 1474;
1373; When set to On binary content is removed from the uploaded files. 1475; When set to On binary content is removed from the uploaded files.
1374; 1476;
1375;suhosin.upload.remove_binary = Off 1477;suhosin.upload.remove_binary = Off
1376; 1478;
1377 1479;
1378; suhosin.upload.allow_utf8 1480; suhosin.upload.allow_utf8
1379; ------------------------- 1481; -------------------------
1482;
1380; * Type: Boolean 1483; * Type: Boolean
1381; * Default: Off 1484; * Default: Off
1382; 1485;
1383; This is an experimental feature. This option allows UTF-8 along with ASCII when 1486; This is an experimental feature. This option allows UTF-8 along with ASCII when
1384; using `suhosin.upload.disallow_binary` or `suhosin.upload.remove_binary`. 1487; using `suhosin.upload.disallow_binary` or `suhosin.upload.remove_binary`.
1385; 1488;
1386;suhosin.upload.allow_utf8 = Off 1489;suhosin.upload.allow_utf8 = Off
1387; 1490;
1388 1491;
1389; suhosin.upload.verification_script 1492; suhosin.upload.verification_script
1390; ---------------------------------- 1493; ----------------------------------
1494;
1391; * Type: String 1495; * Type: String
1392; * Default: 1496; * Default:
1393; 1497;
1394; This defines the full path to a verification script for uploaded files. The 1498; This defines the full path to a verification script for uploaded files. The
1395; script gets the temporary filename supplied and has to decide if the upload is 1499; script gets the temporary filename supplied and has to decide if the upload is
@@ -1397,12 +1501,13 @@
1397; The called script has to write a 1 as first line to standard output to allow 1501; The called script has to write a 1 as first line to standard output to allow
1398; the upload. Any other value or no output at all will result in the file being 1502; the upload. Any other value or no output at all will result in the file being
1399; deleted. 1503; deleted.
1400; 1504;
1401;suhosin.upload.verification_script = 1505;suhosin.upload.verification_script =
1402; 1506;
1403 1507;
1404; suhosin.session.max_id_length 1508; suhosin.session.max_id_length
1405; ----------------------------- 1509; -----------------------------
1510;
1406; * Type: Integer 1511; * Type: Integer
1407; * Default: 128 1512; * Default: 128
1408; 1513;
@@ -1410,45 +1515,49 @@
1410; longer session identifier is passed a new session identifier will be created. 1515; longer session identifier is passed a new session identifier will be created.
1411; This feature is important to fight buffer overflows in 3rd party session 1516; This feature is important to fight buffer overflows in 3rd party session
1412; handlers. 1517; handlers.
1413; 1518;
1414;suhosin.session.max_id_length = 128 1519;suhosin.session.max_id_length = 128
1415; 1520;
1416 1521;
1417; suhosin.server.encode 1522; suhosin.server.encode
1418; --------------------- 1523; ---------------------
1524;
1419; * Type: Boolean 1525; * Type: Boolean
1420; * Default: On 1526; * Default: On
1421; 1527;
1422; Encode potentially dangerous characters in REQUEST_URI and QUERY_STRING with 1528; Encode potentially dangerous characters in REQUEST_URI and QUERY_STRING with
1423; URL encoding. 1529; URL encoding.
1424; 1530;
1425;suhosin.server.encode = On 1531;suhosin.server.encode = On
1426; 1532;
1427 1533;
1428; suhosin.server.strip 1534; suhosin.server.strip
1429; -------------------- 1535; --------------------
1536;
1430; * Type: Boolean 1537; * Type: Boolean
1431; * Default: On 1538; * Default: On
1432; 1539;
1433; Replace potentially dangerous characters in PHP_SELF, PATH_INFO, 1540; Replace potentially dangerous characters in PHP_SELF, PATH_INFO,
1434; PATH_TRANSLATED and HTTP_USER_AGENT with '?'. 1541; PATH_TRANSLATED and HTTP_USER_AGENT with '?'.
1435; 1542;
1436;suhosin.server.strip = On 1543;suhosin.server.strip = On
1437; 1544;
1438 1545;
1439; suhosin.rand.seedingkey 1546; suhosin.rand.seedingkey
1440; ----------------------- 1547; -----------------------
1548;
1441; * Type: String 1549; * Type: String
1442; * Default: 1550; * Default:
1443; 1551;
1444; This string is added to the entropy pool for seeding the random number 1552; This string is added to the entropy pool for seeding the random number
1445; generator. 1553; generator.
1446; 1554;
1447;suhosin.rand.seedingkey = 1555;suhosin.rand.seedingkey =
1448; 1556;
1449 1557;
1450; suhosin.rand.reseed_every_request 1558; suhosin.rand.reseed_every_request
1451; --------------------------------- 1559; ---------------------------------
1560;
1452; * Type: Boolean 1561; * Type: Boolean
1453; * Default: Off 1562; * Default: Off
1454; 1563;
@@ -1456,29 +1565,30 @@
1456; request. Will improve security but decrease performance. In case the system's 1565; request. Will improve security but decrease performance. In case the system's
1457; entry pool is exhausted, this flag may either significantly increase execution 1566; entry pool is exhausted, this flag may either significantly increase execution
1458; time or otherwise use less entropy (which is bad). 1567; time or otherwise use less entropy (which is bad).
1459; 1568;
1460;suhosin.rand.reseed_every_request = Off 1569;suhosin.rand.reseed_every_request = Off
1461; 1570;
1462 1571;
1463; suhosin.srand.ignore 1572; suhosin.srand.ignore
1464; -------------------- 1573; --------------------
1574;
1465; * Type: Boolean 1575; * Type: Boolean
1466; * Default: On 1576; * Default: On
1467; 1577;
1468; Flag that controls if calls to srand() are ignored in favour of Suhosin's own 1578; Flag that controls if calls to srand() are ignored in favour of Suhosin's own
1469; enhanced seeding - since 0.9.36 calls will trigger auto-reseeding. 1579; enhanced seeding - since 0.9.36 calls will trigger auto-reseeding.
1470; 1580;
1471;suhosin.srand.ignore = On 1581;suhosin.srand.ignore = On
1472; 1582;
1473 1583;
1474; suhosin.mt_srand.ignore 1584; suhosin.mt_srand.ignore
1475; ----------------------- 1585; -----------------------
1586;
1476; * Type: Boolean 1587; * Type: Boolean
1477; * Default: On 1588; * Default: On
1478; 1589;
1479; Flag that controls if calls to mt_srand() are ignored in favour of Suhosin's 1590; Flag that controls if calls to mt_srand() are ignored in favour of Suhosin's
1480; own enhanced seeding - since 0.9.36 calls will trigger auto-reseeding. 1591; own enhanced seeding - since 0.9.36 calls will trigger auto-reseeding.
1481; 1592;
1482;suhosin.mt_srand.ignore = On 1593;suhosin.mt_srand.ignore = On
1483; 1594;
1484