2012-01-05 2 views
0

자바 스크립트를 사용하여 작은 앱을 만들었습니다. 나는 폼 유효성 검사를 위해 자바 스크립트를 사용하고 있는데 "mysql db"에 비 - 클린 데이터를 전달하는 사람들에 대해 나를 보호 할 "no script"태그를 사용하면 궁금하다. 나는 그것을 꺼 놓은 누군가에게 응용 프로그램에 대한 액세스를 거부 할 것입니다. 이 안전한 방법인가요 또는 JS 유효성 검사 맨 위에 PHP 폼 유효성 검사를 할 필요가 있습니까?스크립트 태그 없음 - 신뢰할 수 있습니까? 안전한?

내 데이터베이스에 제출 된 데이터가 유해하지 않고 깨끗한 지 확인하는 가장 좋은 방법은 누군가에게 조언 할 수 있습니까? Id는 가능한 경우 javascipt를 사용하여이 작업을 수행하고 PHP로 계층화하지는 않지만 내 앱이 안전하다면 그렇게해야합니다.

나는 htmlentities와 같은 PHP 클리닝을해야하지만 PHP로 폼 유효성 검사를하고 싶지 않다는 것을 알고있다.

감사합니다.

+1

PHP로 폼 유효성 검사를하지 않으려는 이유는 무엇입니까? –

답변

6

아니요, 사용자는 클라이언트 쪽에서 유효성을 검사 할 수 없습니다. 항상 서버 측의 유효성을 검사해야합니다. 클라이언트 측 유효성 검사는 사용자 경험을 향상시킬 수 있지만 보안상의 이점은 없습니다.

+0

나는 게으르다가 이드가 물어 보았다고 생각했다. 고맙습니다. – user982853

1

아니요, 서버 측 유효성 검사를 항상 수행해야합니다. JS가 켜져 있어도 JS를 변경할 수 있습니다 (예 : Chrome에서는 스크립트로드를 일시 중지하고 JS를 편집 한 다음 실행). 따라서 켜져 있는지 여부는 문제가되지 않습니다.

이 좋은 출발점은 다음과 같습니다 (바닥이 검증 예입니다쪽으로)

1

자바 스크립트 보호 그냥 "시각"입니다 http://net.tutsplus.com/tutorials/html-css-techniques/build-a-neat-html5-powered-contact-form/. 누구든지이를 무시하고 원하는 데이터를 삽입 할 수 있습니다.
항상 사용자가 제출 한 데이터는 서버 측에서 검증해야합니다. 기본적으로 mysql 삽입을 방지하기 위해 mysql_real_escape_string()으로 시작할 수 있으며, 입력 된 데이터를 다시 표시하려는 경우 일부 태그 제거를 수행 할 수 있습니다.

2

일반적으로 클라이언트 측 코드 (이 경우 자바 스크립트)를 사용하여 데이터의 유효성을 검사하고 싶지는 않습니다. 클라이언트는 자바 스크립트에 넣을 모든 것을 완벽하게 제어 할 수 있으므로 우회하기가 쉽습니다. 항상 일어나고있는 일을 완전히 제어 할 수있는 서버에서 확인하십시오.

관련 문제