답변 4개 / 댓글 2개
채택된 답변
+20 포인트
union은 여기서 걸러집니다.
function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
{
global $g5, $g5_debug;
if(!$link)
$link = $g5['connect_db'];
// Blind SQL Injection 취약점 해결
$sql = trim($sql);
// union의 사용을 허락하지 않습니다.
//$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);
$sql = preg_replace("#^select.*from.*[\s\(]+union[\s\)]+.*#i ", "select 1", $sql);
답변을 작성하려면 로그인이 필요합니다.
select ... union 형태를 걸러내는 것이지만
회원 가입 진행상 select 하는 경우가 있을지 모르겠네요.
이게 아니라면 서버 단에서 필터링하는 것일 수 있습니다.