본문 바로가기
개발/PHP

[시큐어 코딩] PHP - SQLI 대응방안 Prepare Statement - like 함수편

by m_.9m 2022. 2. 19.

시큐어 코딩 [검색기능] - like 함수 편

 

 

catgo 카테고리 부분은 option 으로 세가지만 허용되기 때문에

if문을 이용해 화이트 리스트 기반 필터링을 적용했다.

 

prepare statement like함수는 파라미터에 "%{$_GET['search']}%"로 값을 주어 적용할 수 있었다.

 

 

적용시 SQL injecion이 적용되지 않고 검색이 되는 것을 확인할 수 있었다.

 

if($catgo = "title" or "name" or "content")
{
    $param = "%{$_GET['search']}%";
    $sql2= "SELECT * from board where $catgo like ? order by idx desc";
    $stmt = $db->prepare($sql2);
    $stmt->bind_param('s', $param);
    $stmt-> execute();
    $member = $stmt->get_result();
    while($iboard= $member->fetch_assoc()){