2012-05-14 3 views
0

특정 문자를 제거하여 SQL 삽입을 방지하기 위해 sanitize 함수가 추가되었습니다. 수동으로 모든 파일을 검토하고 기능을 추가해야하는 위치를 찾는 것은 어렵습니다. 이 프로세스를 자동화하거나 찾기/바꾸기를 사용할 수 있습니까? 현재 내가하고있는 일은 SELECT, UPDATE 또는 INSERT 문을 찾고 그 내부에 #...#을 찾고 #sanitize(...)#으로 바꾸지 만 테이블에 여러 개의 열이 업데이트되는 경우 더 복잡 할 수 있습니다.값을 할당하기 전에 함수 호출 추가

EDIT : grep 사용할 수 있습니까? 답변을 모르는 경우이 질문에 투표 해보십시오.

+0

트리거, 특히 트리거 전에 업데이트 및 삽입을 읽습니다. –

답변

1

SQL 호출은 다른 SQL 호출과 SELECT 호출에서 발생할 수 있습니다. UPDATE와 INSERT만이 아닙니다.

+0

감사합니다. – Celeritas

+0

을 반영하기 위해 변경되었습니다. 또한 모든 db 호출을 실제로 위생 처리 할 필요가 없습니다. 사용자 입력시. 그게 도움이되는지 확실하지 않다면 ... –

+0

코드가 필요합니까? – Celeritas

1

cfqueryparam도 살펴보십시오. 이는 SQL 주입을 방지 할뿐만 아니라 약간의 성능 향상을 제공합니다.

0

Application.cfm 또는 Application.cfc 파일에서이 작업을 전역 적으로 수행 할 수 있습니다.

<cfloop collection="#form#" item="fItem"> 
    <cfset form[fItem] = SanitizeFunction(form[fItem])/> 
</cfloop> 

URL, CGI 및 쿠키에 루프를 추가하면 사용자가 제공 한 각 변수를 효과적으로 검사 할 수 있습니다. 이것은 "웹 응용 프로그램 방화벽"의 기본 개념입니다. 모든 사용자 입력을 검사하고 스크럽하거나 유효성을 검사하여 그것이 주장하는 바를 확인합니다.

예를 들어 슈퍼 전문가 피터 프리 타그의 제품 Foundeo을 확인하십시오. 그는 다른 많은 자원을 가지고 있습니다. WAF는 대개 SQLi뿐만 아니라 다른 가능한 취약성을 찾습니다. 따라서 시간이 가치가 있습니다.

Scott이 말했듯이 각 쿼리를 자세히 검토하고 방어를 위해 cfqueryparam을 추가해야합니다.

관련 문제