2012-03-06 4 views
0

내 친구 사이트는 로그인 텍스트 상자가있는 양식입니다. 로그인이 존재하지 않으면 오류가 나타납니다.
"Error occurred. 151SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected".
잘못된 로그인 + 일부 sql (예 : "iu7' or '1=1'--")을 입력하면 데이터가 표시되지 않으며 오류도 표시되지 않습니다.
그 양식은 안전한가요? 유효한 login + sql을 입력하여 결과에서 암호로 로그인을 전환 할 수 있습니까? 그거에 대해서 어떻게 생각해?이 사이트에서 기밀 데이터를 가져 오는 방법이 있습니까?

답변

2

쿼리를 제출하기 전에 항상 mysql_real_escape_string($_POST['...'])을 사용하여 입력 값을 이스케이프해야합니다. 이런 식으로, 당신은 그들이 넣은 끈으로 안전해야합니다.

나는 사람들이 다른 사이트를 주사하도록 도와 줄 것이라고 생각하지 않습니다. 그래서 지금은 그게 전부입니다.

2

게시 된 데이터로 SQL 명령을 작성하는 방법에 따라 다릅니다. 단순히 값에서 문자열을 작성하는 경우 SQL 주입 공격의 위험이 있습니다.

이 문서에서 살펴 보자 :

http://php.net/manual/en/pdo.prepared-statements.php

그것은 SQL 주입을 방지합니다 PHP에서 준비된 문을 구축하는 방법에 대해 설명합니다.

관련 문제