SQL 문 부분으로 정렬하여 bindParam을 사용할 수 있습니까? 예를 들어, 다음이 가능합니까? SQL 문에서 사용자 지정 순서를 안전하게 사용하는 데 권장되는 방법
select whatever from table where age > :age order by :user_specified_order_by_field_name_here
이 아닌 경우 user_specified_order_by_field_name_here
는 SQL 주입 코드가 포함되어 있지 않은지 확인하기 위해 권장되는 방법은 무엇
그건 슈퍼 안전한 방법입니다 ... 의심 할 여지없이 화이트리스트 ... 그러나 pdp : quote 메서드 또는 다른 일반적인 기술로 여기 걱정을합니까? –
@ 존 번호는 테이블 이름이 따옴표로 이스케이프되지 않기 때문입니다. PDO를 수행하면 그것에 대한 견적이 도움이되지 않습니다. –
@everybody 초점 이름이 테이블 이름에 어떤 영향을 주 었는지는 모르지만 초점은 순서대로 이루어져야합니다. 또한, 내 질문에, 쿼리가 될 수 : 테이블, 탈출 그것은 여전히 필요합니다 (SQL 여부, 테이블 이름이 문자열을 포함 할 수 있습니다 또는하지 않음) 악의적 인 사용자 문자열이 여전히 나쁜 의도 SQL 조각을 주입 수 있기 때문에 거기에 테이블 이름이 있습니다. 테이블 이름이 가질 수 있는지 여부는 부적합합니다. 그러나 그것은 그 초점이 아니 었습니다. 내 상황에서는 테이블 이름이 변수와 함께 전달되지 않고 SQL에 연결되어 있습니다. –