2014-04-21 5 views
0

PHPbb3 포럼에서 양식을 제출하는 데 문제가있었습니다. 특히 입력란이 큰 관리 패널의 양식을 제출하는 데 문제가있었습니다. 사실 큰 포럼입니다. 그러나 PHP 로그에서 나는 경고를 알아 차렸다 :성능과 보안 사이의 php.ini의 최대 입력 변수

[21-Apr-2014 07:36:37 Europe/Belgrade] PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 

나는 값을 2500으로 늘 렸지만 경고는 여전히 남아있다. 그러나 10000으로 설정하면 양식이 올바르게 제출됩니다.

내 질문은 : 보안 또는 내 서버 성능이 10000이 될 수 있습니까?

답변

1

물론 폼 포스트에서 수천 개의 변수를 사용하는 단점이 있습니다. 성능은 서버와 클라이언트의 양쪽 모두에서 떨어질 것입니다. 모든 값은 여러 번 인코딩, 복사 및 디코딩되므로 성능과 메모리가 많이 소모됩니다. 그리고 뭘 위해서?

그러나 나는 이것이 실제로 중요한 것이 아니라고 말하고 싶습니다. 당신이 생각해야 할 것은 이것입니다 : 왜 그 물건은 게시물에 수천 개의 변수가 필요합니까? 그 소리 미친 소리. 그 뒤에 아키텍처를 재고해야한다고 제안합니다. 훨씬 쉽고 견고한 솔루션이 있어야합니다. 일반적인 접근법은 모든 변수를 하나의 JSON 데이터 블록으로 인코딩하는 것입니다.

지금까지 누군가가 하나의 HTML/HTTP 기반 양식으로 CSV 파일 편집기를 구현하여 모든 필드를 별도의 변수으로 게시하려는 아키텍처의 한 예만 보았습니다. 저를 믿으십시오, 이것을위한 더 나은 접근이 있습니다.

+0

귀하는 옳지 만이 신청서는 phpbb3 커뮤니티에 의해 작성되었습니다. 그러나 귀하의 노트는 여기에 언급되어야합니다. – SaidbakR

+2

좋아, 그럼 내 충고는 다음과 같이 바꿔 말할 수 있습니다. 정말로 그런 미친 아키텍처의 소프트웨어를 사용하고 싶습니까? 이 접근 방식은 나머지 구현의 품질에 대해 무엇을 말합니까? 다음과 같은 간단한 질문을 해보십시오 : 수천 개의 사후 변수가 실제로 일부 포럼 기능을 구현해야하는 상황은 무엇입니까? – arkascha

+0

실제로이 상황은 모든 응용 프로그램의 섹션이 아닌 그룹 및 사용 권한 관리에만 적용되므로 사용자가 생각한 사실에 따라 반복되지 않거나 각 세션에서 계속 상황이 발생할 것입니다. – SaidbakR