summaryrefslogtreecommitdiff
path: root/suhosin.ini
diff options
context:
space:
mode:
authorStefan Esser2010-02-21 11:44:54 +0100
committerStefan Esser2010-02-21 11:44:54 +0100
commit36dbfacbe64697d959f524e537b15b73c090d898 (patch)
treef1c7ce1409b0e7765fc72d550546967fcf0f9717 /suhosin.ini
Inital commit
Diffstat (limited to 'suhosin.ini')
-rw-r--r--suhosin.ini444
1 files changed, 444 insertions, 0 deletions
diff --git a/suhosin.ini b/suhosin.ini
new file mode 100644
index 0000000..9696e7b
--- /dev/null
+++ b/suhosin.ini
@@ -0,0 +1,444 @@
1extension = suhosin.so
2
3; -----------------------------------------------------------------------------
4; This file was taken from Mandriva Linux with their permission
5; -----------------------------------------------------------------------------
6
7[suhosin]
8
9; -----------------------------------------------------------------------------
10; Logging Options
11
12; Defines what classes of security alerts are logged to the syslog daemon.
13; Logging of errors of the class S_MEMORY are always logged to syslog, no
14; matter what this configuration says, because a corrupted heap could mean that
15; the other logging options will malfunction during the logging process.
16;suhosin.log.syslog =
17
18; Defines the syslog facility that is used when ALERTs are logged to syslog.
19;suhosin.log.syslog.facility =
20
21; Defines the syslog priority that is used when ALERTs are logged to syslog.
22;suhosin.log.syslog.priority =
23
24; Defines what classes of security alerts are logged through the SAPI error log.
25;suhosin.log.sapi =
26
27; Defines what classes of security alerts are logged through the external
28; logging.
29;suhosin.log.script =
30
31; Defines what classes of security alerts are logged through the defined PHP
32; script.
33;suhosin.log.phpscript = 0
34
35; Defines the full path to a external logging script. The script is called with
36; 2 parameters. The first one is the alert class in string notation and the
37; second parameter is the log message. This can be used for example to mail
38; failing MySQL queries to your email address, because on a production system
39; these things should never happen.
40;suhosin.log.script.name =
41
42; Defines the full path to a PHP logging script. The script is called with 2
43; variables registered in the current scope: SUHOSIN_ERRORCLASS and
44; SUHOSIN_ERROR. The first one is the alert class and the second variable is
45; the log message. This can be used for example to mail attempted remote URL
46; include attacks to your email address.
47;suhosin.log.phpscript.name =
48
49; Undocumented
50;suhosin.log.phpscript.is_safe = Off
51
52; When the Hardening-Patch logs an error the log message also contains the IP
53; of the attacker. Usually this IP is retrieved from the REMOTE_ADDR SAPI
54; environment variable. With this switch it is possible to change this behavior
55; to read the IP from the X-Forwarded-For HTTP header. This is f.e. necessary
56; when your PHP server runs behind a reverse proxy.
57;suhosin.log.use-x-forwarded-for = Off
58
59; -----------------------------------------------------------------------------
60; Executor Options
61
62; Defines the maximum stack depth allowed by the executor before it stops the
63; script. Without this function an endless recursion in a PHP script could
64; crash the PHP executor or trigger the configured memory_limit. A value of
65; "0" disables this feature.
66;suhosin.executor.max_depth = 0
67
68; Defines how many "../" an include filename needs to contain to be considered
69; an attack and stopped. A value of "2" will block "../../etc/passwd", while a
70; value of "3" will allow it. Most PHP applications should work flawlessly with
71; values "4" or "5". A value of "0" disables this feature.
72;suhosin.executor.include.max_traversal = 0
73
74; Comma separated whitelist of URL schemes that are allowed to be included from
75; include or require statements. Additionally to URL schemes it is possible to
76; specify the beginning of allowed URLs. (f.e.: php://stdin) If no whitelist is
77; specified, then the blacklist is evaluated.
78;suhosin.executor.include.whitelist =
79
80; Comma separated blacklist of URL schemes that are not allowed to be included
81; from include or require statements. Additionally to URL schemes it is
82; possible to specify the beginning of allowed URLs. (f.e.: php://stdin) If no
83; blacklist and no whitelist is specified all URL schemes are forbidden.
84;suhosin.executor.include.blacklist =
85
86; Defines if PHP is allows to run code from files that are writable by the
87; current process. If a file is created or modified by a PHP process, there
88; is a potential danger of code injection. Only turn this on if you are sure
89; that your application does not require writable PHP files.
90;suhosin.executor.include.allow_writable_files = On
91
92; Comma separated whitelist of functions that are allowed to be called. If the
93; whitelist is empty the blacklist is evaluated, otherwise calling a function
94; not in the whitelist will terminate the script and get logged.
95;suhosin.executor.func.whitelist =
96
97; Comma separated blacklist of functions that are not allowed to be called. If
98; no whitelist is given, calling a function within the blacklist will terminate
99; the script and get logged.
100;suhosin.executor.func.blacklist =
101
102; Comma separated whitelist of functions that are allowed to be called from
103; within eval(). If the whitelist is empty the blacklist is evaluated,
104; otherwise calling a function not in the whitelist will terminate the script
105; and get logged.
106;suhosin.executor.eval.whitelist =
107
108; Comma separated blacklist of functions that are not allowed to be called from
109; within eval(). If no whitelist is given, calling a function within the
110; blacklist will terminate the script and get logged.
111;suhosin.executor.eval.blacklist =
112
113; eval() is a very dangerous statement and therefore you might want to disable
114; it completely. Deactivating it will however break lots of scripts. Because
115; every violation is logged, this allows finding all places where eval() is
116; used.
117;suhosin.executor.disable_eval = Off
118
119; The /e modifier inside preg_replace() allows code execution. Often it is the
120; cause for remote code execution exploits. It is wise to deactivate this
121; feature and test where in the application it is used. The developer using the
122; /e modifier should be made aware that he should use preg_replace_callback()
123; instead.
124;suhosin.executor.disable_emodifier = Off
125
126; This flag reactivates symlink() when open_basedir is used, which is disabled
127; by default in Suhosin >= 0.9.6. Allowing symlink() while open_basedir is used
128; is actually a security risk.
129;suhosin.executor.allow_symlink = Off
130
131; -----------------------------------------------------------------------------
132; Misc Options
133
134; If you fear that Suhosin breaks your application, you can activate Suhosin's
135; simulation mode with this flag. When Suhosin runs in simulation mode,
136; violations are logged as usual, but nothing is blocked or removed from the
137; request. (Transparent Encryptions are NOT deactivated in simulation mode.)
138;suhosin.simulation = Off
139
140; APC 3.0.12(p1/p2) uses reserved resources without requesting a resource slot
141; first. It always uses resource slot 0. If Suhosin got this slot assigned APC
142; will overwrite the information Suhosin stores in this slot. When this flag is
143; set Suhosin will request 2 Slots and use the second one. This allows working
144; correctly with these buggy APC versions.
145;suhosin.apc_bug_workaround = Off
146
147; When a SQL Query fails scripts often spit out a bunch of useful information
148; for possible attackers. When this configuration directive is turned on, the
149; script will silently terminate, after the problem has been logged. (This is
150; not yet supported)
151;suhosin.sql.bailout_on_error = Off
152
153; This is an experimental feature for shared environments. With this
154; configuration option it is possible to specify a prefix that is automatically
155; prepended to the database username, whenever a database connection is made.
156; (Unless the username starts with the prefix)
157;suhosin.sql.user_prefix =
158
159; This is an experimental feature for shared environments. With this
160; configuration option it is possible to specify a postfix that is
161; automatically appended to the database username, whenever a database
162; connection is made. (Unless the username end with the postfix)
163;
164; With this feature it is possible for shared hosters to disallow customers to
165; connect with the usernames of other customers. This feature is experimental,
166; because support for PDO and PostgreSQL are not yet implemented.
167;suhosin.sql.user_postfix =
168
169; This directive controls if multiple headers are allowed or not in a header()
170; call. By default the Hardening-Patch forbids this. (HTTP headers spanning
171; multiple lines are still allowed).
172;suhosin.multiheader = Off
173
174; This directive controls if the mail() header protection is activated or not
175; and to what degree it is activated. The appended table lists the possible
176; activation levels.
177suhosin.mail.protect = 1
178
179; As long scripts are not running within safe_mode they are free to change the
180; memory_limit to whatever value they want. Suhosin changes this fact and
181; disallows setting the memory_limit to a value greater than the one the script
182; started with, when this option is left at 0. A value greater than 0 means
183; that Suhosin will disallows scripts setting the memory_limit to a value above
184; this configured hard limit. This is for example usefull if you want to run
185; the script normaly with a limit of 16M but image processing scripts may raise
186; it to 20M.
187;suhosin.memory_limit = 0
188
189; -----------------------------------------------------------------------------
190; Transparent Encryption Options
191
192; Flag that decides if the transparent session encryption is activated or not.
193;suhosin.session.encrypt = On
194
195; Session data can be encrypted transparently. The encryption key used consists
196; of this user defined string (which can be altered by a script via ini_set())
197; and optionally the User-Agent, the Document-Root and 0-4 Octects of the
198; REMOTE_ADDR.
199;suhosin.session.cryptkey =
200
201; Flag that decides if the transparent session encryption key depends on the
202; User-Agent field. (When activated this feature transparently adds a little
203; bit protection against session fixation/hijacking attacks)
204;suhosin.session.cryptua = On
205
206; Flag that decides if the transparent session encryption key depends on the
207; Documentroot field.
208;suhosin.session.cryptdocroot = On
209
210; Number of octets (0-4) from the REMOTE_ADDR that the transparent session
211; encryption key depends on. Keep in mind that this should not be used on sites
212; that have visitors from big ISPs, because their IP address often changes
213; during a session. But this feature might be interesting for admin interfaces
214; or intranets. When used wisely this is a transparent protection against
215; session hijacking/fixation.
216;suhosin.session.cryptraddr = 0
217
218; Number of octets (0-4) from the REMOTE_ADDR that have to match to decrypt the
219; session. The difference to suhosin.session.cryptaddr is, that the IP is not
220; part of the encryption key, so that the same session can be used for
221; different areas with different protection levels on the site.
222;suhosin.session.checkraddr = 0
223
224; Flag that decides if the transparent cookie encryption is activated or not.
225;suhosin.cookie.encrypt = 0
226
227; Cookies can be encrypted transparently. The encryption key used consists of
228; this user defined string and optionally the User-Agent, the Document-Root and
229; 0-4 Octects of the REMOTE_ADDR.
230;suhosin.cookie.cryptkey =
231
232; Flag that decides if the transparent session encryption key depends on the
233; User-Agent field. (When activated this feature transparently adds a little
234; bit protection against session fixation/hijacking attacks (if only session
235; cookies are allowed))
236;suhosin.cookie.cryptua = On
237
238; Flag that decides if the transparent cookie encryption key depends on the
239; Documentroot field.
240;suhosin.cookie.cryptdocroot = On
241
242; Number of octets (0-4) from the REMOTE_ADDR that the transparent cookie
243; encryption key depends on. Keep in mind that this should not be used on sites
244; that have visitors from big ISPs, because their IP address often changes
245; during a session. But this feature might be interesting for admin interfaces
246; or intranets. When used wisely this is a transparent protection against
247; session hijacking/fixation.
248;suhosin.cookie.cryptraddr = 0
249
250; Number of octets (0-4) from the REMOTE_ADDR that have to match to decrypt the
251; cookie. The difference to suhosin.cookie.cryptaddr is, that the IP is not
252; part of the encryption key, so that the same cookie can be used for different
253; areas with different protection levels on the site.
254;suhosin.cookie.checkraddr = 0
255
256; In case not all cookies are supposed to get encrypted this is a comma
257; separated list of cookie names that should get encrypted. All other cookies
258; will not get touched.
259;suhosin.cookie.cryptlist =
260
261; In case some cookies should not be crypted this is a comma separated list of
262; cookies that do not get encrypted. All other cookies will be encrypted.
263;suhosin.cookie.plainlist =
264
265; -----------------------------------------------------------------------------
266; Filtering Options
267
268; Defines the reaction of Suhosin on a filter violation.
269;suhosin.filter.action =
270
271; Defines the maximum depth an array variable may have, when registered through
272; the COOKIE.
273;suhosin.cookie.max_array_depth = 50
274
275; Defines the maximum length of array indices for variables registered through
276; the COOKIE.
277;suhosin.cookie.max_array_index_length = 64
278
279; Defines the maximum length of variable names for variables registered through
280; the COOKIE. For array variables this is the name in front of the indices.
281;suhosin.cookie.max_name_length = 64
282
283; Defines the maximum length of the total variable name when registered through
284; the COOKIE. For array variables this includes all indices.
285;suhosin.cookie.max_totalname_length = 256
286
287; Defines the maximum length of a variable that is registered through the
288; COOKIE.
289;suhosin.cookie.max_value_length = 10000
290
291; Defines the maximum number of variables that may be registered through the
292; COOKIE.
293;suhosin.cookie.max_vars = 100
294
295; When set to On ASCIIZ chars are not allowed in variables.
296;suhosin.cookie.disallow_nul = 1
297
298; Defines the maximum depth an array variable may have, when registered through
299; the URL
300;suhosin.get.max_array_depth = 50
301
302; Defines the maximum length of array indices for variables registered through
303; the URL
304;suhosin.get.max_array_index_length = 64
305
306; Defines the maximum length of variable names for variables registered through
307; the URL. For array variables this is the name in front of the indices.
308;suhosin.get.max_name_length = 64
309
310; Defines the maximum length of the total variable name when registered through
311; the URL. For array variables this includes all indices.
312;suhosin.get.max_totalname_length = 256
313
314; Defines the maximum length of a variable that is registered through the URL.
315;suhosin.get.max_value_length = 512
316
317; Defines the maximum number of variables that may be registered through the
318; URL.
319;suhosin.get.max_vars = 100
320
321; When set to On ASCIIZ chars are not allowed in variables.
322;suhosin.get.disallow_nul = 1
323
324; Defines the maximum depth an array variable may have, when registered through
325; a POST request.
326;suhosin.post.max_array_depth = 50
327
328; Defines the maximum length of array indices for variables registered through
329; a POST request.
330;suhosin.post.max_array_index_length = 64
331
332; Defines the maximum length of variable names for variables registered through
333; a POST request. For array variables this is the name in front of the indices.
334;suhosin.post.max_name_length = 64
335
336; Defines the maximum length of the total variable name when registered through
337; a POST request. For array variables this includes all indices.
338;suhosin.post.max_totalname_length = 256
339
340; Defines the maximum length of a variable that is registered through a POST
341; request.
342;suhosin.post.max_value_length = 1000000
343
344; Defines the maximum number of variables that may be registered through a POST
345; request.
346;suhosin.post.max_vars = 1000
347
348; When set to On ASCIIZ chars are not allowed in variables.
349;suhosin.post.disallow_nul = 1
350
351; Defines the maximum depth an array variable may have, when registered through
352; GET , POST or COOKIE. This setting is also an upper limit for the separate
353; GET, POST, COOKIE configuration directives.
354;suhosin.request.max_array_depth = 50
355
356; Defines the maximum length of array indices for variables registered through
357; GET, POST or COOKIE. This setting is also an upper limit for the separate
358; GET, POST, COOKIE configuration directives.
359;suhosin.request.max_array_index_length = 64
360
361; Defines the maximum length of variable names for variables registered through
362; the COOKIE, the URL or through a POST request. This is the complete name
363; string, including all indicies. This setting is also an upper limit for the
364; separate GET, POST, COOKIE configuration directives.
365;suhosin.request.max_totalname_length = 256
366
367; Defines the maximum length of a variable that is registered through the
368; COOKIE, the URL or through a POST request. This setting is also an upper
369; limit for the variable origin specific configuration directives.
370;suhosin.request.max_value_length = 1000000
371
372; Defines the maximum number of variables that may be registered through the
373; COOKIE, the URL or through a POST request. This setting is also an upper
374; limit for the variable origin specific configuration directives.
375;suhosin.request.max_vars = 1000
376
377; Defines the maximum name length (excluding possible array indicies) of
378; variables that may be registered through the COOKIE, the URL or through a
379; POST request. This setting is also an upper limit for the variable origin
380; specific configuration directives.
381;suhosin.request.max_varname_length = 64
382
383; When set to On ASCIIZ chars are not allowed in variables.
384;suhosin.request.disallow_nul = 1
385
386; When set to On the dangerous characters <>"'` are urlencoded when found
387; not encoded in the server variables REQUEST_URI and QUERY_STRING. This
388; will protect against some XSS vulnerabilities.
389;suhosin.server.encode = 1
390
391; When set to On the dangerous characters <>"'` are replaced with ? in
392; the server variables PHP_SELF, PATH_TRANSLATED and PATH_INFO. This will
393; protect against some XSS vulnerabilities.
394;suhosin.server.strip = 1
395
396; Defines the maximum number of files that may be uploaded with one request.
397;suhosin.upload.max_uploads = 25
398
399; When set to On it is not possible to upload ELF executables.
400;suhosin.upload.disallow_elf = 1
401
402; When set to On it is not possible to upload binary files.
403;suhosin.upload.disallow_binary = 0
404
405; When set to On binary content is removed from the uploaded files.
406;suhosin.upload.remove_binary = 0
407
408; This defines the full path to a verification script for uploaded files. The
409; script gets the temporary filename supplied and has to decide if the upload
410; is allowed. A possible application for this is to scan uploaded files for
411; viruses. The called script has to write a 1 as first line to standard output
412; to allow the upload. Any other value or no output at all will result in the
413; file being deleted.
414;suhosin.upload.verification_script =
415
416; Specifies the maximum length of the session identifier that is allowed. When
417; a longer session identifier is passed a new session identifier will be
418; created. This feature is important to fight bufferoverflows in 3rd party
419; session handlers.
420;suhosin.session.max_id_length = 128
421
422; Undocumented: Controls if suhosin coredumps when the optional suhosin patch
423; detects a bufferoverflow, memory corruption or double free. This is only
424; for debugging purposes and should not be activated.
425;suhosin.coredump = Off
426
427; Undocumented: Controls if the encryption keys specified by the configuration
428; are shown in the phpinfo() output or if they are hidden from it
429;suhosin.protectkey = 1
430
431; Controls if suhosin loads in stealth mode when it is not the only
432; zend_extension (Required for full compatibility with certain encoders
433; that consider open source untrusted. e.g. ionCube, Zend)
434;suhosin.stealth = 1
435
436; Controls if suhosin's ini directives are changeable per directory
437; because the admin might want to allow some features to be controlable
438; by .htaccess and some not. For example the logging capabilities can
439; break safemode and open_basedir restrictions when .htaccess support is
440; allowed and the admin forgot to fix their values in httpd.conf
441; An empty value or a 0 will result in all directives not allowed in
442; .htaccess. The string "legcprsum" will allow logging, execution, get,
443; post, cookie, request, sql, upload, misc features in .htaccess
444;suhosin.perdir = "0"