문제

체크 아웃 이 페이지 뉴욕 타임즈에서 :

http://homedelivery.nytimes.com/HDS/learnMorePopUp.do ?mode=common.learnMorePopUp
&productId=NDS
&prodRate=7.40

수동으로 수정했을 때 prodRate 매개 변수, 페이지가 업데이트되었습니다.

  • 입문 구독 속도.
  • 일반 구독 속도.

직접 시도해보십시오! 지금은 웹 개발을 많이하지 않았지만 이런 일이 일어나지 않아야한다는 것을 알고 있습니다. 그래서 궁금합니다.

  • 어떤 종류의 구현 이이 행동을 일으킬까요?
  • 최종 사용자로부터 이러한 민감한 매개 변수를 숨기도록 페이지를 어떻게 수정 하시겠습니까?
도움이 되었습니까?

해결책

내가 생각할 수있는 유일한 대답은 너무 밝지 않기 때문에 질문을 다시 제출하고 싶을 수도 있습니다.

Q : 어떤 종류의 구현 이이 동작을 일으킬까요?
A : 사용자 입력이 내부의 신뢰할 수있는 동작을 제어 할 수있는 하나입니다. 당신이 "누군가가 왜 이것을 할 것인가?"를 요구한다면, 나는 보통 그것을 오해로 보았다. 코드 저자는 일반적으로 사용자가 (a) 값을 제어 할 수 있고/또는 (b) 존재한다는 것을 인식하지 못합니다. 가장 자주, 나는 이것을 다시 리디렉션으로 구현하는 것을 보았습니다. 버튼을 클릭하면 서버는 금액을 결정한 다음 브라우저를 값을 유지하는 새 페이지로 리디렉션합니다.

Q : 최종 사용자로부터 이러한 민감한 매개 변수를 숨기려면 페이지를 어떻게 수정합니까?
A : 최종 사용자가 편집 할 수있는 방식으로 값을 저장하지 마십시오. 서버 엔진과 같은 서버에서 스토리지를 사용할 수있는 경우 세션 컨텍스트에 저장하십시오. 좋은 세션 메커니즘이 없다면 서명 또는 HMAC'd 쿠키에 저장할 수 있습니다.

다른 팁

그들은 아마도 디스플레이 목적으로 QueryString에서 바로 값을 읽고있을 것입니다. 실제 주문 처리가 해당 값을 기반으로하지 않으며 제품 ID를 사용하는 조회에서 나온 것은 의심의 여지가 있습니다.

글쎄, 당신은 실제로 그것을 주문하려고 했습니까? 백엔드의 입력을 검증 할 수 있습니다.

다른 옵션과 관련하여 정보를 게시하거나 쿠키에 정보를 넣는 것을 고려할 수 있습니다. 바보 증거도 아닙니다. 게시물이있는 새 창을 얻을 수 없으며 사용자는 쿠키를 끄질 수 있습니다.

해당 페이지에서 주문할 수 없으므로 여기에 보안 구멍이 표시되지 않습니다. 예, 치즈 맛이 있지만 실제 주문 흐름이 너무 제대로 구성되지 않으면 훨씬 더 걱정할 것입니다. 한 곳에서 속도를 쉽게 업데이트하고 값을 전달할 수 있으므로 어떻게 발생했는지 알 수 있습니다.

우리는 거의 같은 일을하는 등급 페이지가 있습니다. 실제 구매 흐름에 연결되어 있지 않으므로 매개 변수가 정상입니다. 클라이언트가 URL을 편집하여 혼동하려는 경우 실제 주문 흐름은 모든 데이터베이스 중심이며 사용자 편집은 결코 신뢰할 수 없습니다.

나는 이와 같은 모든 종류의 나쁜 연습을 발견했습니다. 웹 사이트가 쿼리 스트링에서 전체 SQL 쿼리를 통과하는 것을 보았습니다. 실행. 또한 QueryString에서 가격을 통과 한 온라인 상점을 찾는 것을 기억합니다. 나는 하나를 음수로 바꾸었고, 확실히 확인할 때 가격은 마이너스였습니다! 나는 더 이상 가지 않았다 - 기술적으로 그것은 사기이며 위험에 처할 가치가 없다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top