2010-08-06 8 views
1

jQuery의 도움말을 통해 광범위한 클라이언트 측 유효성 검사를 수행했습니다. 이제 일부 필드가 유효하지 않은 것으로 판명되면 서버 쪽 유효성 검사가 나타납니다. 단순히 클라이언트에 오류를 반환하고 유용한 메시지를 표시하지 않을 수 있습니까?PHP - 서버 측 유효성 검사 -이 방법이 좋습니까?

내 가정은 내 웹 페이지에 액세스하기 위해 JavaScript를 사용해야한다는 것입니다. 웹 브라우저에서 자바 스크립트를 사용 중지하면 사용자가 양식을 볼 수 없습니다. 나는 그것을하기 위해 단순히 noscript를 사용할 수 있습니다. 그들이 내가 디자인 한 양식을 통해 정보를 제출하면 유효하지 않은 필드가 서버에 제출되어서는 안됩니다. 따라서 서버 측에서 유효하지 않은 필드가 발견되면 양식이 일부 일반 사용자가 아닌 일부 해커에 의해 손상됩니다.

내 이해가 당신에게 의미가 있습니까?

< 많은 전문가의 의견을 바탕으로 다음 메시지가 추가되었습니다.> 여기에 명확하게 언급하지 않은 점에 대해 사과드립니다. 나는 항상 서버 측 유효성 검사를 수행한다. 어떤 사용자 입력도 신뢰해서는 안된다.

그러나 여기서 중요한 것은 서버 쪽 오류 메시지를 사용자에게 전달해야하는지 여부입니다. 사용자가 내 양식을 사용하여 서버 PHP에 양식을 제출하면 잘못된 필드가 없어야합니다. 그런 일이 발생하면 일부 해커가 내 PHP를 가지고 놀고 있다고 가정합니다. 그래서 나는 그들을 무시하고 싶다.

서버 쪽 오류 메시지를 클라이언트에 전달하지 않도록하는 주된 이유는 내가 수행 할 수있는 더 나은 해결책을 찾지 못했기 때문입니다. 좋은 제안이나 예제없이 여러 관련 질문을 게시했습니다.

< --- END ---->

답변

1

유효한 사용자가 PHP 유효성 검사 오류를 치지 않는다고 확신 할 수있는 것 같습니다. 그래서 당신은 더 가난한 오류 메시지로 대응할 수 있습니다. 당신은 정말로 무엇이 잘못되었는지 알맞은 표시를해야합니다. 그렇지 않으면 자바 스크립트가 어떤 이유로 실패 할 때 (자바 스크립트를 변경하고 충분히 테스트하지 않은 경우) 언젠가는 후회할 것입니다.

+0

+1을 고려하십시오. –

+0

나는 당신에게 -1을주지 않았지만 누군가가 당신에게 그것을 주었다. – rook

+0

OP가 서버 측 유효성 검사를 작성하고 있으며 PHP가 생성 한 오류 메시지가 얼마나 좋은지에 대한 질문이 있다고 생각합니다. 내 대답은 PHP 유효성 검사가 철저한 것으로 가정하고 오류 메시지가 얼마나 좋은지를 설명합니다. –

1

클라이언트 측 유효성 검사가 실제로 사이트를 사용하는 사용자만을위한 것입니다 주셔서 감사합니다. 스팸 - 봇 (spam-bots) 등은 쉽게 생략 할 수 있으므로 서버 사이트에서 항상 유효성을 검사해야합니다. 유효성 검사 오류가 발생하면 사용자에게 무엇이 잘못되었는지를 알려주는 메시지를 다시 보내야합니다.

클라이언트 측 유효성 검사 만 사용하지 마십시오. 그것은 단지 엑스트라 일 수 있습니다.

+1

나는 OP가 서버 측 유효성 검사를 피하려고 노력하고 있다고 생각하지 않으며 단지 유용한 오류 메시지 만 보내고 있습니다. – mcrumley

+0

안녕하세요 mcrumley, 내 원래 질문을 이해하는 유일한 사람인 것 같습니다. 고맙습니다. – q0987

1

가짜 헤더를 보내는 것이 쉽기 때문에 모든 웹 응용 프로그램에 대해 서버 유효성 검사를 수행해야합니다. 예를 들어, 자바 스크립트에서는 양식에 글자를 입력 할 수 없지만 글자, 숫자 등이 포함 된 가짜 헤더를 보낼 수 있습니다.

+0

내 업데이트 된 질문을 참조하십시오. 감사합니다. – q0987

0

항상 유용한 오류 메시지가 다시 나타납니다. 어쨌든 서버가 다른 오류 조건을보고 할 수있는 방법이 필요합니다 (데이터베이스 오류 등).

+0

괜찮은 방법으로 제안하는 방법을 제안 해 주시겠습니까? 감사합니다. – q0987

+0

특정 권장 사항을 제공 할 수 없도록 응용 프로그램을 설정하는 방법을 모르겠지만 가장 간단한 방법은 예외를 throw하고 전역 예외 처리기에서 catch하는 것입니다. 그런 다음 오류 메시지를 기본 템플릿에 넣으십시오. 나는 일반적으로 HTTP 응답 코드를 "403 Forbidden"으로 입력 유효성 검사 오류로 설정합니다. – mcrumley

2

항상 서버 측 유효성 검사가 있어야합니다.

내가 한 번 봐 가지고 당신을 제안 : 클라이언트 측 유효성 검사는 항상 좋은 생각입니다 당신이 그것을 하지만 서버 측 유효성 검사를 위해 가야한다

이어야하며 좋은 코딩 방법이어야합니다.

+0

안녕 Sarfraz, 나는 내 질문을 명확하게 진술하지 않았다고 생각한다. 내 응용 프로그램에 대해 서버 측 유효성 검사를 수행해야합니다. 그러나 서버 측 오류가있는 경우 사용자와 대화식 피드백을하지 않으려합니다. 전용 양식을 통해 PHP에 액세스하는 일반 사용자는 잘못된 양식을 제출해서는 안됩니다. – q0987

+0

@ q0987 : 잘못된 양식을 제출하지 않을 것이라고 생각하는 경우 100 % 확신 할 수는 없지만 향후 서버 프로젝트에서 서버 측 유효성 검사를 사용해야합니다. 여기서 벙어리/비활성화/나쁜 놈들은 당신의 형태로 쓰레기를 많이 넣을 수 있습니다. – Sarfraz

1

클라이언트에서의 유효성 검사는 사용자가 "오, 우리에게 성을주지 않았으니 채워주세요."와 같은 실수를 잡는 데 도움이됩니다. 나 자신과 같은 누군가는 단순히 서버에 무엇이든지 원하는 모든 요청을 보내거나 처리 할 수 ​​있거나 에스토니아 주변에 떠있는 고객의 신용 카드 번호의 잠재적으로 손상된 데이터베이스 및 CD-Rom을 처리 할 준비를 할 수 있습니다. .

양식에 대한 서버 응답이 귀하의 코드 구조에 따라 달라집니다 (예 : 아약스 또는 기타). 그러나 문제를보고하는 것은 항상 좋은 일입니다.

+0

안녕하세요 user257493, 가지고 계셔서 반갑습니다. 그러나 그렇게 할 수있는 좋은 기술을 알고 싶습니다. 클라이언트 측에서는 jQuery Validation Plugin을 사용하여 훨씬 쉽게 사용할 수 있습니다. 그러나 서버 쪽에서는 오류 메시지를 알맞은 방식으로 사용자에게 전달할 수있는 더 나은 솔루션을 모릅니다. 감사합니다. – q0987

+0

내가 말하는 것은 페이지를 제공하는 방식에 달려있다. 아약스 데이터를 앞뒤로 보내는 것처럼, .php 페이지로 이동합니까?여러 가지 방법이 있습니다. 일부 MVC 프레임 워크는 이런 종류의 문제를 처리 할 것입니다. – Incognito

관련 문제