質問するログイン新規登録

回答編集履歴

3

常体を敬体に変更した。

2015/12/02 13:19

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -21,33 +21,35 @@
21
21
  この設定により対処できる可能性があります。
22
22
 
23
23
  ### max_input_varsが使用できるバージョンについて
24
- 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できが、
24
+ 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できますが、
25
- 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましい。
25
+ 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましいと思います
26
26
 
27
27
  正式なリリースとは別に、max_input_varsはセキュリティ的な問題([CVE-2011-4885](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4885))の対処のため、
28
- パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされてい
28
+ パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされています
29
29
  なお、使用する際は、このパッチによって入り込んだ[CVE-2012-0830](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0830)も対処されたバージョンが
30
- 望ましいと考えられ
30
+ 望ましいと考えられます
31
- ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられが、
31
+ ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられますが、
32
- これはphp-5.3.11、php-5.4.1でリリースされてい
32
+ これはphp-5.3.11、php-5.4.1でリリースされています
33
33
 
34
- php-5.3.3の[rpm](https://rpmfind.net/linux/RPM/centos/updates/6.7/x86_64/Packages/php-5.3.3-46.el6_6.x86_64.html)について調べると、CVE-2011-4885は5.3.3-4、CVE-2012-0830は5.3.3-7で対応している。
34
+ php-5.3.3の[rpm](https://rpmfind.net/linux/RPM/centos/updates/6.7/x86_64/Packages/php-5.3.3-46.el6_6.x86_64.html)について調べると、CVE-2011-4885は5.3.3-4、CVE-2012-0830は
35
+ 5.3.3-7で対応しています。
35
36
 
36
37
  ### max_input_varsの判定方法の変化について
37
- max_input_varsの判定方法は、バージョンによって異な
38
+ max_input_varsの判定方法は、バージョンによって異なります
38
39
 
39
40
  1. ハッシュの要素数による不完全な方法(php-5.4.0、php-5.3.10以前)
40
41
  ```
41
42
  zend_hash_num_elementsを使っており、PostデータにArrayがある場合に、
42
43
  Arrayのサイズがmax_input_vars+1になった際にエラーメッセージを出し、
43
- max_input_vars+2以上になると無視す
44
+ max_input_vars+2以上になると無視します。
44
45
  例)
45
- data[100][100][100]のデータは、1000000件になが、max_input_varsが1000の場合、
46
+ data[100][100][100]のデータは、1000000件になりますが、max_input_varsが1000の場合、
46
- それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしま
47
+ それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしまいます
47
48
  ```
48
49
  2. 正確な方法(php-5.6以降 、php-5.5以降、php-5.4.1以降、php-5.3.11以降)
49
- [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正された。
50
+ [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正されました。
50
51
  ```
51
- 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、エラーメッセージを出して無視する。
52
+ 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、
53
+ エラーメッセージを出して無視します。
52
54
  ```
53
55
 

2

max_input_varsについて追記した。

2015/12/02 13:19

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -18,4 +18,36 @@
18
18
 
19
19
  設定の説明は、[ここ](http://suhosin.org/stories/configuration.html)にあります。
20
20
  Suhosinモジュールが適用されているのであれば、
21
- この設定により対処できる可能性があります。
21
+ この設定により対処できる可能性があります。
22
+
23
+ ### max_input_varsが使用できるバージョンについて
24
+ 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できるが、
25
+ 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましい。
26
+
27
+ 正式なリリースとは別に、max_input_varsはセキュリティ的な問題([CVE-2011-4885](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4885))の対処のため、
28
+ パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされている。
29
+ なお、使用する際は、このパッチによって入り込んだ[CVE-2012-0830](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0830)も対処されたバージョンが
30
+ 望ましいと考えられる。
31
+ ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられるが、
32
+ これはphp-5.3.11、php-5.4.1でリリースされている。
33
+
34
+ php-5.3.3の[rpm](https://rpmfind.net/linux/RPM/centos/updates/6.7/x86_64/Packages/php-5.3.3-46.el6_6.x86_64.html)について調べると、CVE-2011-4885は5.3.3-4、CVE-2012-0830は5.3.3-7で対応している。
35
+
36
+ ### max_input_varsの判定方法の変化について
37
+ max_input_varsの判定方法は、バージョンによって異なる。
38
+
39
+ 1. ハッシュの要素数による不完全な方法(php-5.4.0、php-5.3.10以前)
40
+ ```
41
+ zend_hash_num_elementsを使っており、PostデータにArrayがある場合に、
42
+ Arrayのサイズがmax_input_vars+1になった際にエラーメッセージを出し、
43
+ max_input_vars+2以上になると無視する。
44
+ 例)
45
+ data[100][100][100]のデータは、1000000件になるが、max_input_varsが1000の場合、
46
+ それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしまう。
47
+ ```
48
+ 2. 正確な方法(php-5.6以降 、php-5.5以降、php-5.4.1以降、php-5.3.11以降)
49
+ [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正された。
50
+ ```
51
+ 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、エラーメッセージを出して無視する。
52
+ ```
53
+

1

設定値の書き方を修正した。

2015/12/02 09:46

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -8,11 +8,14 @@
8
8
 
9
9
  で言及がありますが、PHP 5.3.3-7+squeeze17には、max_input_varsがあるようです。
10
10
  また、[Suhosinモジュール](http://itpro.nikkeibp.co.jp/article/COLUMN/20070214/261900/)には、
11
+ suhosin.request.max_vars、suhosin.post.max_varsという設定があるようです。
12
+ 90000を指定するのであれば、
11
13
  ```
12
- suhosin.request.max_vars = 3000
14
+ suhosin.request.max_vars = 90000
13
- suhosin.post.max_vars = 3000
15
+ suhosin.post.max_vars = 90000
14
16
  ```
15
- とい設定があるようです。
17
+ のよにすれば良いようです。
18
+
16
19
  設定の説明は、[ここ](http://suhosin.org/stories/configuration.html)にあります。
17
20
  Suhosinモジュールが適用されているのであれば、
18
21
  この設定により対処できる可能性があります。