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