2011-03-19 2 views
1

I 코드가있는 ASP.net 페이지에서 C# 코드로 텍스트 상자를 사용하지 않습니다. Textbox1.Enabled = false; 사용자가 특정 값을 변경하지 못하도록합니다. 아시다시피 Textbox1.Enabled = false; HTML 모드에서 disabled = "disabled"로 변환됩니다. css prpoerties. 하지만 불행히도 최종 사용자는 파이어 폭스 파이어 버그에 의해이 CSS 속성을 제거하고 텍스트 상자를 활성화하고 제출 버튼을 누른 다음 변경된 값을 서버로 보낼 수 있습니다. 그래서 어떻게해야합니까?최종 사용자가 비활성화 된 요소를 활성화 할 수있는 이유는 무엇입니까?

+1

서버의 값을 거부 하시겠습니까? –

답변

2

결코 사용자 입력을 신뢰해서는 안됩니다. 웹 사이트 양식을 통해 제출 된 모든 것은 사용자 입력입니다. 다른 사람이 아무 것도 제출하지 못하도록 할 수있는 방법은 없습니다. 시도하지 않아도됩니다.

대신 서버에서 해당 값을 확인하거나 확인해야합니다. 그 값을 표시하고 싶지만 값을 변경할 수없는 값이면 코드 숨김 값을 변경하지 않아도되므로 값을 확인하지 않아도됩니다.

사용자가 'admin'인지 또는 무언가인지에 따라 TextBox를 사용/사용 중지하는 경우 잘못 처리하고 있습니다.

+0

읽기 전용 값에 레이블을 사용하는 것을 선호해야합니다. (요즘 사용자는 점점 기술적으로되고 있으며, 그 전에는 앱을 중단 할 수있는 더 많은 방법을 찾을 수 있습니다.) 항상 클라이언트와 서버 측에서 데이터의 유효성을 검사하십시오. 최고의 리소스를 사용하여 UR 필요를 충족 시키십시오. 예를 들어, U 레이블을 사용할 수 있고 css가있는 읽기 전용 텍스트 상자처럼 보이게 할 수 있습니다. – Avi

0

과 동일 브라우저에서 가져온 데이터는입니다.

  • 신뢰 그것은 단지 당신이 사용자 (그리고 조금 덜 SSL을 사용하지 않는 경우 해당)
    • 신뢰할 수없는 사용자가 공격을 할 수
    • 신뢰할 수있는 사용자가 만들 수 있습니다 믿을만큼 당신이 그것을 사용하기 전에
    • 는 모든 데이터를 탈출 (어떤 비활성화 할 수있는 필드가 성립 발생 조건 경우, 다음 필드가 제출되지 않았는지 확인) 제정신이라고 실수
  • 확인 (예에 대한 SQL을 HTML 문서에 넣기 전에 DB에 삽입하고 HTML에 삽입하기 전에).
관련 문제