2009-10-18 2 views
1

요청 요청이 잘못되었거나 잘못된 유형의 데이터를 전달하고 있음을 감지하면 어떻게합니까? 포럼 3과 관련된 모든 주제를 나열하는 forum-page.php? forum = 3이 있다고 가정 해보십시오. "포럼"변수가 없으면 어떻게 처리 할 수 ​​있습니까? 정수가 아니면 문자열을 얻을 수 있다면 어떨까요? 그러한 잘못된 요청에 어떻게 대응하겠습니까? 부재중/잘못 입력 된 GET 변수를 처리하는 모범 사례?

  • 당신이 요청을 거절 이유를 말하는 오류를 뱉어
  • 포럼-page.php가 단순히 기본 페이지로 리디렉션 "포럼"변수없이 호출되면, 포럼-page.php? 포럼 같은 것을 = 1. 잘못 입력 된 포럼 변수에 대해서도 마찬가지입니다.
  • 다른 페이지로 리디렉션. 포럼/게시판 색인과 같은 것?
  • 다른 옵션은?

정말 이에 대한 의견을 듣고 싶습니다.

답변

1

나는 보통 ("포럼 매개 변수가 필요합니다") 이유를 설명하는 상태 설명과 함께 400 (잘못된 요청)을 반환합니다. PHP가 이것을 허용하는지 잘 모르겠지만 (ASP.NET은 그렇습니다), 그런 다음 400을 응용 프로그램에 맞는 방식으로 오류를 표시하는 사용자 정의 페이지에 매핑 할 수 있습니다.

0

각 페이지와 GET 요청에 따라 조금씩 다릅니다. 예제로 사용한 것과 같은 대부분의 페이지는 정상적으로 실패 할 수 있지만 필요한 변수가 누락 된 페이지는 400 (잘못된 요청) 또는 404 (페이지를 찾을 수 없음)를 필요로 할 수 있습니다. 404는 검색 엔진에 의해 spidered되거나 인터넷을 통해 전달되는 나쁜 링크가있을 수 있기 때문에 실제로 필요합니다. 따라서이 동작을 중지하고 싶을 것입니다.

내보기는 다음 시도하는 것입니다

  1. 잘못/실종 필요한 변수를 들어, 400 또는 (귀하의 응용 프로그램에 따라 다름) 404을 던져. 그러나 400의 경우 기본 페이지 (forum-page.php)로 정상적으로 실패하고 페이지 상단의 오류 상자에 오류가 표시됩니다.
  2. 잘못 입력 된 잘못된 중요하지 않은 변수의 경우 기본 페이지로 정상적으로 실패합니다.
  3. 완전히 잘못된 형식이나 개체 유형 인 잘못된 중요하지 않은 변수의 경우 앱의 보안을 파괴하려는 시도 일 수 있으므로 404를 throw하십시오.

궁극적으로, 절대적으로 중요한 것은 잘못된/누락 된 변수를 "추측하여"사용자에게 (대부분의 경우) 채우는 것입니다. 이 문제가 해커에 의해 오용되어 웹 애플리케이션을 속여 취약점을 시뮬레이트하는 많은 웹 애플리케이션이 있습니다.

관련 문제