제게 조언 해 주시겠습니까? 나는 질문을 검색했으나 내 것과 비슷한 것을 발견하지 못했습니다.사용자 제공 입력 SQL 이스케이프
SQL 쿼리에서 사용할 사용자 입력을 자동으로 이스케이프 처리하도록하려면 어떻게해야합니까? 나는
을 mysql_real_escape_string를 수행 탈출 방법 데이터베이스 클래스가 난 가정
$var_x = $DB->Escape($_POST['var_x']);
$another_var = $DB->Escape($_POST['another_var']);
$some_string = $DB->Escape($_POST['some_string']);
...
처럼 뭔가 가득 내 코드에서 좋아하지 않는하지만 난뿐만 아니라 SQL 쿼리에 자동 탈출을 설정할 수 없습니다 삽입 쿼리가 깨지기 때문에 :
function Exec($sql){
$result = mysql_query($this->Escape($sql));
}
$q = $DB->Exec("SELECT * FROM table WHERE id = 'xxx'");
이렇게하면 'xxx \'가됩니다. 잘못된 것입니다.
마지막으로해야 할 일은 매개 변수가있는 명령문을 작성하는 것입니다. 시스템이 더 복잡해지기 때문입니다. 다른 옵션은 남지 않을 때이 옵션을 고려할 것입니다.
요약하면 전체 쿼리와 함께 작동하고 값만 이스케이프 처리하는 스마트 자동 이스케이프를 만드는 방법은 무엇입니까?
감사합니다. –