2012-05-20 3 views
3

안녕하세요 저는 웹 사이트를 개발하고 침입 테스트를하고 있습니다. 그것은 나를 알고 만든 사람 CakePHP의 내장되어 있습니다 : 당신이 CakePHP의 ORM 방법을 사용 (예 : 발견 (등을)과) (저장) 경우SQL 인젝션을 테스트하는 정확한 방법

CakePHP는 이미 SQL 인젝션에 대해 당신을 보호하고 적절한 배열 표기법 (예 : . array ('field'=> $ value)).

그러나 SQL 주입 방지를 테스트하기 위해 입력 양식 필드에 입력 할 데이터가 확실하지 않습니다.

나는 간단한 VARCHAR 다음과 같은 테이블 이름 속성 한 -

categories: name 
clients: address, county, country, name 
items: name 
statuses: name 

이 SQL 문 형태로 입력하고, SQL 주입 시도를 테스트하는 올바른 방법이 될 제출시겠습니까? 양식에 데이터베이스를 입력 한 값이 제출 한 후

DROP TABLE "categories"; 

했다 :

DROP TABLE "categories"; 

난이이 범주를 떨어 뜨리지 않았다으로 웹 사이트는 시도 SQL 주입으로부터 보호되었음을 의미합니다 가정 할 수있다 내 데이터베이스에있는 테이블?

+0

당신이 지침을 따르 독점적 ORM 방법을 사용 했을 참조하십시오? 그렇다면 응용 프로그램과 데이터베이스에 대한 액세스 보안, 출력 이스케이프, 세션 도용, SSL로 중요한 페이지 보안 및 무차별 암호 공격에 대한 완화와 같은 다른 문제를 살펴보십시오. – Ami

+0

이것은 SQL Server에 대해 약간주의를 기울 였지만 제시된 개념과 아이디어는 항상 좋은 읽을 거리입니다. http : // www.sommarskog.se/dynamic_sql.html#SQL_injection – Bridge

답변

0

좋은 질문이지만 답변이 너무 많아 답변에 포함 할 수 없습니다. 나는 몇몇 수색을하고 더 많은 것을 이해하기 위하여 오르는 많은 위치를 읽는 추천한다. 여기 도구의

좋은 목록 : http://www.darknet.org.uk/tag/sql-injection-tool/

0

곰 염두에두고 거의 모든 자동화 된 SQL 인젝션 검색 도구는 취약점의 가장 간단한 형태를 발견하고이 문제의 대부분의 실제 인스턴스를 그리워.

교육 받고 경험이 풍부한 사람의 공격자/테스터는 항상 더 나은 작업을 수행하고 도구가 제공하지 않는 모든 문제를 찾습니다.

그러나 ... SQL 주입은 교정 할 수있는 가장 간단한 webapp 취약성 중 하나입니다. 따라서 소스에 액세스 할 수 있으면이를 읽고이를 바운드 매개 변수 또는 저장 프로 시저를 사용하여 올바르게 나타내고 문자열을 함께 추가하여 SQL 명령을 작성하지 않도록하십시오.

sql = 'select col from table where x=' + variable 

과 같이 표시되는 경우 경고음이 울립니다. 소스를 읽고 조정하는 것은 오랜 기간의 경험을 마스터해야하는 테스트 종류를 수행하는 것보다 훨씬 빠르고, 쉽고 효과적 일 것입니다.

https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

관련 문제