2009-09-15 5 views
1

모든 코드에 대해 Request.Form을 사용하고 있습니다. 그리고 만약 쿼리 링이 필요하다면 나는 명시 적으로 그것도 명중합니다. 코드 검토에서 Params 컬렉션을 사용해야한다고 생각했습니다.Request.Form을 명시 적으로 수행하는 대신 Request.Params를 사용해야합니까?

적절한 컬렉션을 직접 치는 것이 가장 좋은 방법이라고 생각했습니다. 나는 그 주장의 한 쪽 또는 다른쪽에 대한 보강을 찾고있다.

답변

8

Request.Form을 사용하는 것이 더 안전합니다. 이렇게하면 사용자가 단순히 URL을 변경하여 게시 된 양식 매개 변수를 "실험"하지 않게됩니다. Request.Form을 사용하면 "실제 해커"에 대해 안전하지 않지만 IMHO에서는 Form 컬렉션을 사용하는 것이 좋습니다.

+1

+1 아주 좋은 지적입니다. –

+0

지금까지, 나는이 질문의 관심을 죽이지 않기 위해 내가 찾고있는 것에 정확하게 대답했다고 생각한다. 나는 내일 그것을 표시 할 것이다. – DevelopingChris

6

요청에 따라 속성을 사용하면 검색을 적절한 컬렉션으로 좁히고 있습니다 (가독성과 성능을 위해서는 좋은 요소입니다). 귀하의 접근 방식을 모범 사례로 생각하고 직접 수행하십시오.

+3

+1. 많은 사람들은'Params' 콜렉션에는'Form'과'QueryString' 외에'Cookies'와'ServerVariables'도 포함되어 있다는 사실을 모르고 있습니다. – LukeH

0

난 항상이 쉽게 읽을 수있는 구문을 순수하게 다운 으로 Request.Form ("파람") 또는 Request.QueryString을 ("파람")를

사용했다. 나는 성능에 영향이 있음을 진지하게 생각한다.

0

내가 대신 Form 또는 QuerystringRequest.Params을 사용하는 유일한 시간은 알 수없는 경우 매개 변수에 전달됩니다되는 방법 여부.

10 년에 내가 사용 한 상황에서 그 넣으려면 분노 Request.Params 한 번만 :

친절,

D

0

나는 그것이 명시하지 않는 한 양식 및 쿼리 스트링 컬렉션을 사용하는 것이 더 좋다고 생각한다 검색 매개 변수를 URL에서 정의 할 수 있거나 페이지 매김 기본 설정과 같은 쿠키에 저장하려는 검색 양식과 같이 응용 프로그램에서 유연한 동작을 명시 적으로 정의하려고합니다.

0

나는 Request.Form과 Request.QueryString을 명시 적으로 사용할 것이다. 그 이유는 둘이 서로 바꿀 수 없기 때문입니다. 쿼리 문자열은 HTTP Get 요청에 사용되고 HTTP POST 요청에 대해서는 FORM 변수에 사용됩니다.

일반적으로 Get 요청은 데이터를 요청할 때 적용됩니다 (예 : Google 검색을 수행하면 검색 단어가 쿼리 문자열에 있습니다. 게시물은 처리 또는 저장을 위해 웹 서버에 데이터를 보내는 경우입니다. 그래서 두 개가 상호 교환 할 수 없다고 말하면 페이지를 GET을 사용하지 않고 기능을 중단하지 않고 POST로 변경할 수 없다는 의미입니다.

그래서 IMHO, 페이지의 구현은 GET 또는 POST 요청에 의해 호출되도록하려는 의도를 분명히 나타낼 수 있습니다.

/피트

관련 문제