回答編集履歴

3

常体を敬体に変更した。

2015/12/02 13:19

投稿

eripong
eripong

スコア1546

test CHANGED
@@ -44,33 +44,35 @@
44
44
 
45
45
  ### max_input_varsが使用できるバージョンについて
46
46
 
47
- 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できが、
47
+ 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できますが、
48
48
 
49
- 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましい。
49
+ 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましいと思います
50
50
 
51
51
 
52
52
 
53
53
  正式なリリースとは別に、max_input_varsはセキュリティ的な問題([CVE-2011-4885](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4885))の対処のため、
54
54
 
55
- パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされてい
55
+ パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされています
56
56
 
57
57
  なお、使用する際は、このパッチによって入り込んだ[CVE-2012-0830](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0830)も対処されたバージョンが
58
58
 
59
- 望ましいと考えられ
59
+ 望ましいと考えられます
60
60
 
61
- ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられが、
61
+ ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられますが、
62
62
 
63
- これはphp-5.3.11、php-5.4.1でリリースされてい
63
+ これはphp-5.3.11、php-5.4.1でリリースされています
64
64
 
65
65
 
66
66
 
67
- 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で対応している。
67
+ 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は
68
+
69
+ 5.3.3-7で対応しています。
68
70
 
69
71
 
70
72
 
71
73
  ### max_input_varsの判定方法の変化について
72
74
 
73
- max_input_varsの判定方法は、バージョンによって異な
75
+ max_input_varsの判定方法は、バージョンによって異なります
74
76
 
75
77
 
76
78
 
@@ -82,23 +84,25 @@
82
84
 
83
85
  Arrayのサイズがmax_input_vars+1になった際にエラーメッセージを出し、
84
86
 
85
- max_input_vars+2以上になると無視す
87
+ max_input_vars+2以上になると無視します。
86
88
 
87
89
  例)
88
90
 
89
- data[100][100][100]のデータは、1000000件になが、max_input_varsが1000の場合、
91
+ data[100][100][100]のデータは、1000000件になりますが、max_input_varsが1000の場合、
90
92
 
91
- それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしま
93
+ それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしまいます
92
94
 
93
95
  ```
94
96
 
95
97
  2. 正確な方法(php-5.6以降 、php-5.5以降、php-5.4.1以降、php-5.3.11以降)
96
98
 
97
- [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正された。
99
+ [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正されました。
98
100
 
99
101
  ```
100
102
 
101
- 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、エラーメッセージを出して無視する。
103
+ 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、
104
+
105
+ エラーメッセージを出して無視します。
102
106
 
103
107
  ```
104
108
 

2

max_input_varsについて追記した。

2015/12/02 13:19

投稿

eripong
eripong

スコア1546

test CHANGED
@@ -39,3 +39,69 @@
39
39
  Suhosinモジュールが適用されているのであれば、
40
40
 
41
41
  この設定により対処できる可能性があります。
42
+
43
+
44
+
45
+ ### max_input_varsが使用できるバージョンについて
46
+
47
+ 正式なリリースとしては、[ドキュメント](http://php.net/manual/ja/info.configuration.php)にもある通り、5.3.9以降で使用できるが、
48
+
49
+ 後述する通り、セキュリティ的な面で5.3.11以降、5.4.1以降の方が望ましい。
50
+
51
+
52
+
53
+ 正式なリリースとは別に、max_input_varsはセキュリティ的な問題([CVE-2011-4885](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4885))の対処のため、
54
+
55
+ パッチが存在し、rpmなどでは、パッチを含むバージョンがリリースされている。
56
+
57
+ なお、使用する際は、このパッチによって入り込んだ[CVE-2012-0830](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0830)も対処されたバージョンが
58
+
59
+ 望ましいと考えられる。
60
+
61
+ ちなみに、正式なリリースでCVE-2012-0830が修正されたのは、[このコミット](https://github.com/php/php-src/commit/40d8cd1f122873af7e21dfe4cad24702c4be48f9#diff-28ccb3aa37e01a68f5510ad6de4ab738)によると考えられるが、
62
+
63
+ これはphp-5.3.11、php-5.4.1でリリースされている。
64
+
65
+
66
+
67
+ 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で対応している。
68
+
69
+
70
+
71
+ ### max_input_varsの判定方法の変化について
72
+
73
+ max_input_varsの判定方法は、バージョンによって異なる。
74
+
75
+
76
+
77
+ 1. ハッシュの要素数による不完全な方法(php-5.4.0、php-5.3.10以前)
78
+
79
+ ```
80
+
81
+ zend_hash_num_elementsを使っており、PostデータにArrayがある場合に、
82
+
83
+ Arrayのサイズがmax_input_vars+1になった際にエラーメッセージを出し、
84
+
85
+ max_input_vars+2以上になると無視する。
86
+
87
+ 例)
88
+
89
+ data[100][100][100]のデータは、1000000件になるが、max_input_varsが1000の場合、
90
+
91
+ それぞれのサイズは100なので、制限にかからず、全てのデータを読み込んでしまう。
92
+
93
+ ```
94
+
95
+ 2. 正確な方法(php-5.6以降 、php-5.5以降、php-5.4.1以降、php-5.3.11以降)
96
+
97
+ [Improved max_input_vars directive to check nested variables](https://github.com/php/php-src/commit/282d3f20349b78eeed0173a2e55d311324faeb4d)というコミットによって修正された。
98
+
99
+ ```
100
+
101
+ 実際にパースしながら、データの数を数え、データの数がmax_input_varsを超えると、エラーメッセージを出して無視する。
102
+
103
+ ```
104
+
105
+
106
+
107
+

1

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

2015/12/02 09:46

投稿

eripong
eripong

スコア1546

test CHANGED
@@ -18,15 +18,21 @@
18
18
 
19
19
  また、[Suhosinモジュール](http://itpro.nikkeibp.co.jp/article/COLUMN/20070214/261900/)には、
20
20
 
21
- ```
21
+ suhosin.request.max_vars、suhosin.post.max_varsという設定があるようです。
22
22
 
23
- suhosin.request.max_vars = 3000
24
-
25
- suhosin.post.max_vars = 3000
23
+ 90000を指定するのであれば、
26
24
 
27
25
  ```
28
26
 
27
+ suhosin.request.max_vars = 90000
28
+
29
+ suhosin.post.max_vars = 90000
30
+
31
+ ```
32
+
29
- う設定があるようです。
33
+ のようにすれば良いようです。
34
+
35
+
30
36
 
31
37
  設定の説明は、[ここ](http://suhosin.org/stories/configuration.html)にあります。
32
38