2012-04-24 3 views
0

이 질문은 불합리한 질문처럼 보일지 모르지만 사용자 입력 내용을 계속 소홀히하면 지속적으로 혼란스럽고 궁극적 인 대답을 얻고 싶습니다.숨겨진 양식 요소에 대한 htmlentities

그래서를 heres 시나리오

  1. 고객은 웹 형태로 채 웁니다.
  2. PHP는 필수 필드가 적절하게 채워 졌는지 확인하고 그렇지 않은 경우 고객이 계속할 수 있도록하지 않습니다.
  3. 그렇다면 사용자 입력이 확인을 위해 화면에 표시되는 반면 입력 데이터는 숨겨진 양식 요소로 저장됩니다.
  4. 고객이 입력을 확인하면 추가 처리를 위해 숨겨진 요소가 전송됩니다. 데이터가 마지막 순간까지 탈출하지 않아야한다는 원칙 작업

이 내가있는이 시점에서 분명히 점 3. (에서 숨겨진 요소에 화면에 출력 데이터를 저장 한 데이터에 적용 할 방법 htmlentities()도 적용됨

숨겨진 요소에 htmlentities를 사용해야합니까? 그러나 이것은 기술적으로 4 단계 이후의 마지막 단계가 아니므로 DB 또는 전자 메일에 붙여 넣기 전에 변수를 다시 사용하게됩니다.

나는 완전히 잘못된 생각을하기 때문에 모든 생각을 환영합니다.^_^

답변

2

사용자 입력 내용을 페이지에 쓰려면 항상 이스케이프 처리해야합니다. 그렇지 않으면 사람이 javascript 등을 입력에 추가하지 못하게하거나 숨겨진 필드에서 벗어나 코드를 페이지에 삽입하는 것을 막을 수 없습니다. 그래서, 숨겨진 필드에도 htmlentities를 사용하십시오. 사용자가 코드를 볼 수 없기 때문에 사람들이 코드를 주입하지 못합니다.

+0

내가 생각한 것보다 줄을서야하는 이유가 무엇일까요? O'Maley와 같은 이름을 가진 것처럼 DB에 입력되기 전에 O 'Maley처럼 끝나는가? – cosmicsafari

+0

htmlentities를 사용하는 경우, 작은 따옴표를 이스케이프 처리하지 않으며, "와 <(그렇게하는 mySQL 이스케이프 함수입니다.) PHP를 자주 사용하지 않기 때문에 100 % 양식을 제출하면 hascentities() 이스케이프 된 필드가 이스케이프되지 않은 텍스트로 돌아 오지 않습니까? 그렇지 않으면 DB에 붙여 넣기 전에 이스케이프 처리하지 말아야합니다. – Tim

+0

글자 그대로 준비된 문 사용 그래서 작은 따옴표 등, htmlentities도 시도 할 것이라고 확신하지 못했습니다. 감사합니다. 나는 지금 함께 일할 충분하다고 생각합니다. 건배^_ ^ – cosmicsafari

관련 문제