mysql_real_escape_string이 사용자 입력을 안전하게 정리할 수 있습니까?
SQL 주입에 대해 우려하는 개발자는 종종 mysql_real_escape_string을 사용하여 사용자 입력을 정리합니다. 그러나 그 효율성은 유일한 척도로서의 안정성에 대한 의문을 제기합니다.
mysql_real_escape_string의 제한 사항
mysql_real_escape_string은 유용한 유틸리티이지만 다음과 같은 제한 사항이 있습니다.
보다 강력한 접근 방식: 준비된 진술
보안을 강화하기 위해 개발자는 준비된 진술을 활용하는 것이 좋습니다. 이 접근 방식은 자리 표시자를 활용하여 SQL 쿼리에서 사용자 데이터를 분리하므로 입력 변조가 방지됩니다. 예를 들면 다음과 같습니다.
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $value);
준비된 문은 여러 가지 장점을 제공합니다.
추가 안전 장치
준비된 설명 외에 다음 사용을 고려하세요.
결론
최적의 보안을 위해서는 mysql_real_escape_string만으로는 충분하지 않습니다. 대신 SQL 주입에 대한 기본 보호 수단으로 준비된 명령문을 통합하세요. 또한 사용자 입력 정리에 대한 포괄적인 접근 방식을 위해 HTMLPurifier 및 엄격한 입력 유효성 검사를 사용하는 것을 고려해보세요.
위 내용은 mysql_real_escape_string은 SQL 주입에 대해 충분한 보호를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!