2011-03-13 6 views
1

livevalidation 스크립트를 사용하여 PHP 폼의 유효성을 검사했지만 일부 입력이 숫자가 아닌 글자를 삽입 할 수 있기 때문에 해킹 당했다고 생각합니다.해킹 PHP 폼을 해결하는 방법

해커의 또 다른 문제는 내 선택 태그가 내 양식에 데이터를 잘못 삽입하는 것입니다.

아무도 도와 주시겠습니까?

+4

작은 바비 테이블이 모든 것을 다시 : http://xkcd.com/327/ – corsiKa

+0

당신의 adivce 주셔서 감사합니다. 그러나 저는 PHP 초보기입니다. 그래서 어떻게하면 저를 잘 알 수 있습니까? 도와주세요 – maha

+0

나는 이것이 차 한잔이 아니라는 것을 처음으로 인정할 것입니다. 그것은 덜 조언이었고 더 많은 것 "이런 종류의 일에 관해서는 재미있는 만화가 있습니다." – corsiKa

답변

11

자바 스크립트는 데이터를 확인하는 안전한 방법을 제공 할 수 없습니다. 그것은 단지 사용자의 편의로 간주되어야합니다.

PHP에서 서버에있는 모든 데이터의 유효성을 검사해야합니다.

PS : 당신은 등, 선택 상자를 검증하기위한 Filtering 기능을 유용, 정규 표현식, in_array()을 찾을 수 있습니다

+0

귀하의 adivse 주셔서 감사합니다하지만 난 PHP의 초보자 그래서 당신이 말해 줄 수 있습니다 내가 도와 줄 수있는 기분을 찾을 수 있습니다 – maha

+0

@ maha, 매우 광범위한 질문입니다. 저는 다른 자원을 가지고 있지는 않지만 (기본적으로 다른 사람들이 할 것입니다), 기본적으로 양식이 제출하는 모든 $ _GET 또는 $ _POST 변수를 점검하고 그것이 예상 한 것이 맞는지 확인해야합니다. 필터링 기능에 대한 자습서를 검색하고 시도한 후에 "이메일 주소를 확인하려면 어떻게합니까?"와 같은 특정 문제를 해결하는 새로운 질문을 다시 시작할 수 있습니다. 등등. – Matthew

0

내가 할 수있는 등 :

if (isset($_GET['string']) && !empty($_GET['string']) && is_string($_GET['string'])) 

    $str = mysql_real_escape_string(stripslashes(trim($_GET['string']))); 

그리고 :

if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])) 

    $id = trim($_GET['id']); 

어떻게 생각하니?

이 테스트의 유용성에 대해서는 확신 할 수 없습니다.

0

다운로드 accunetix 어딘가에 무료 버전이 있으면 보안 구멍이 있는지 응용 프로그램을 테스트 할 수 있습니다. 그것은 훌륭한 UI를 가지고 있으며 거기에 존재하는 다른 쓰레기처럼 사용하기 쉽지 않습니다. accunetix.com

+0

또한 양식의 모든 단일 입력이 정리되었는지 확인하십시오. 아무리 그 체크 박스, 선택, 입력, 라디오, 버튼. 해커는 anythign을 수정하여 사이트가 원하는대로 행동하게 만듭니다. –