SQL 주입 공격에 대한 체계적인 업그레이드와 보호를 원합니다. 나는 세 가지 주요 메소드가 pdo, prepared statements와 mysql_escape_string인데, pdo는 최상으로 간주되지만 mysql_escape_string은 당신이 세심한면 충분하다고 생각한다. 필자는 PDO로 갈 준비가되어 있지 않다고 생각합니다. 여러 테이블을 포함하는 많은 복잡한 쿼리를 처리 할 때 커다란 작업이 될 수 있습니다. 하지만 더 프로그래밍 방식으로 mysql_escape_string을 사용하고 싶습니다.PHP/MYSQL SQL 주입 공격 방지 기능
사용자가 제출 한 모든 개별 변수를 이스케이프 처리하지 않고 구두점을 처리하기 위해 수정이 필요한 표준 함수를 사용하여 SQL 명령을 이스케이프 처리하려고했습니다.이 방법이 건전한 접근인지 또는 전체 쿼리를 이스케이프 처리하여 문제를 만듭니다. 아포스트로피, 백틱 및 %를 사용하십시오. 모든 SQL 문에 대한 표준 함수는 변수 접근 방식에 의한 변수보다 체계적이고 표준적일 것입니다. 그렇다면 구두점을 처리하기위한 수정이 필요할 수 있습니다. 또한, htmlspecialchars 및 strip_tags와 같은 함수에 들어가야하는 것이 있습니까? mysql_escape_string이 100 % 완성되지 않았습니까?
다음은 기본 기능입니다.
function safe($sql) {
$safesql = mysql_real_escape_string($sql);
return $safesql;
}
심각하게도 PDO 만 사용하십시오. 그것은 훨씬 덜 효과적이고 안전합니다. –
그 또는 ActiveRecord \ Model – Eva
@ user1260310 당신은 또한 보안/예방을위한보기 테이블을 만들 수 있습니다, 누군가가 SQL 주입이 제한됩니다. – jcho360