나는 준비된 문장이 데이터베이스에 SQL 주입을 피하는 좋은 방법이라고 읽었습니다. 고객이 조용한 변수 UI 을 먼저 원하고 테이블을 선택한 다음 열과 텍스트로 구성된 몇 가지 조건을 지정해야합니다. 그래서 기본적으로 (순진)의 최종 생성물은 다음과 같이 표시됩니다prepared statement/sql-injection preventation from variable
이제 문제는이 보안 얻는 방법이다Select * from %TABLENAME% where %ATTRIBUTENAME% = %VALUE%
?
물론 모든 테이블에 대한 명령문을 미리 작성하는 prepare Statement 솔루션을 구축 할 수 있지만이를 유지하는 노력이 크게 줄어들 기 때문에 나에게는 어리석은 생각처럼 들립니다. 조용한 몇 테이블). 가능한 한 일반적인 제보를 안전하게 해결하는 방법에 대해 알고 싶습니다.
그리고 네 나는 고객이 같음을 할 수있는 생각하지만 negativ 또는 같은 동작으로 올 수 있다는 것을 알고 있지만, 그건 내 문제 때문에 바랍니다없는 answes의 이상입니다 주로 여기에 설명의 약점에 초점을 맞 춥니 다. 이유는 약간 간소화 되었기 때문입니다. – Aeglasin
** 문 **은 일반적으로 사용자의 입력이 없을 때만 사용됩니다. 그렇지 않으면 ** PreparedStatement **를 사용하십시오. 적절한 위생 설비가있는 경우에도 ** 정책 **은 안전하지 않을 것입니다. –