아래 예제 코드를 사용하여이 코드를 간단하고 간단하게 만들려고합니다. 이 문제가 어떤 형태의 SQL 인젝션에도 문제가되는 것을 보시겠습니까?SQL 삽입 방지 - 단일 행 방법?
$tmpVar = isset($_POST['somePostVar']) ? pg_escape_string(utf8_encode(preg_replace('/[^a-z0-9_]+/i', '', filter_var($_POST['somePostVar'], FILTER_SANITIZE_STRING)))) : 'error';
나는 네 가지 방법을 모두 사용하여 죽이거나/중복되는 것을 알고 있지만 나는 여전히 미안한 것보다 안전 할 것입니다.
이 결과 변수는
SELECT * FROM table_name WHERE someCol='$tmpVar'
이제
내가 그와 유래에 큰 포스터를없는 동안 ... 매일 브라우저를 이해 DO, 주위에이 같은 중복 된 질문이 알고로서 사용되는 ... 내가 사용
가 SQL 인젝션의 한 형태로 쉽게 파괴 될 수 있습니다그래서 pg_escape_string, utf8_encode, preg_replace이다과 filter_var를 사용하여 ...이 문자열에만 밑줄과 영숫자로 제한됩니다 ..
utg8_encode도 pg_escape_string을 사용할 때 postgresql에 문제가있을 수 있기 때문에 여기에 있습니다. 그래서 그들은이 경우에 손을 맞잡습니다.
각 기능이 무엇인지 알고 일부는 문자열을 과장 할 수도 있음을 이해하십시오.하지만 단순한 수정이 항상 쉬운 것처럼 생각할 필요가없는 상황이 있습니다 ... 질문이있었습니다. 이 특정 문자열은 여전히 주입과 함께 깨진 것입니다 ... – Mayhem