컨텐츠 정보
본문
검색을 POST 형식으로 하기
홈페이지를 통해 DB에 저장된 자료를 보여주게 되는데,
사용자 편의를 위해 검색 기능을 달게 됩니다. 일반적으로 검색은 주소창에 나오는 값을 get방식으로 받아서 출력을 하게 됩니다. 이 때, 주소창에 나오는 내용들 중 아무것도 아닌 것처럼 보였던 인자들이 보안에 영향을 줄 수도 있게 됩니다.
그래서, post방식으로 진행을 하면 주소창에 검색에 특정 값들이 노출이 되지 않아 get방식 보다는 안전하게 처리할 수 있습니다.
예를 들어,
사용자들이 잘 모르게 검색 키워드 뿐만 아니라, 검색을 할 때 사용자 아이디 정보를 보낸다던지, 사용자 권한 정보를 보낸다던지 할 수 있습니다. 이 때, get 방식으로 하게 되면 주소창에 해당 정보도 같이 뜨겠죠? 그럼 해당 키워드를 변경해서 뭔가 보면 안되는 정보를 볼 수도 있게 됩니다. 물론 애초에 권한 정보 등에 따라 검색을 하게 만들면 되겠지만, 뭐던지 실수라는게 있을 수 있어서..
그래서, post 방식으로 진행하는게 좋을 수 있습니다.
post방식으로 검색을 하는 방법이 엄청 많이 있게지만, 여기서는 간단히 자바스크립트를 이용해서 처리해 볼께요.
아래 내용은 간단한 예제입니다.
a.php 파일에서
test라는 테이블과 안에 검색할 정보들이 있을 경우
$sql_common = " from test ";
if($_POST['s_mod'] == "3") { // 여기에서 s_mod나 값이 노출이 되면 해당 값 변경에 따라 원치 않은 자료가 노출될 수 있습니다.
$sql_search = " where level = '".$_POST['s_mod']."' andmb_id = '".$_POST['stx']."'";
} else {
}
$sql_order = " order by idx desc ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
그리고, 검색폼은 아래와 같이 b.php 파일을 호출하게 되겠죠.
<div class="alert bg-light border p-2 p-sm-3 mb-3 mx-3 mx-sm-0">
<form method="post" name="post-search" class="m-auto" style="max-width:600px;" action="b.php" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="sca" value="1">
<div class="form-row mx-n1">
<div class="col-4 col-sm-4 px-1">
<label for="sfl" class="sr-only">검색대상</label>
<select name="s_mod" class="custom-select">
<option value="3" selected>아이디</option>
<option value="t">One</option>
<option value="a">Two</option>
<option value="q">Three</option>
</select>
</div>
<div class="col-8 col-sm-8 pt-2 pt-sm-0 px-1">
<label for="stx" class="sr-only">검색어</label>
<div class="input-group">
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required class="form-control" placeholder="검색어를 입력해 주세요.">
<div class="input-group-append">
<button type="submit" class="btn btn-primary" title="검색하기">
<i class="fa fa-search" aria-hidden="true"></i>
<span class="sr-only">검색하기</span>
</button>
</div>
</div>
</div>
</div>
</form>
</div>
그리고, b.php 파일에서 해당 값을 post형식으로 검색을 하는 페이지인 a.php로 바로 전송을 해 주고, 결과 값을 출력을 하게 됩니다.
b.php 파일에서는
<script>
function go_immediately()
{
document.form_send_immediately.action = "a.php";
document.form_send_immediately.submit();
}
</script>
<body onload="go_immediately();">
<form name="form_send_immediately" method="post">
<input type="hidden" name="s_mod" value="<?php echo $_POST['s_mod']; ?>">
<input type="hidden" name="stx" value="<?php echo $_POST['stx']; ?>">
</form>
</body>
해당 콘텐츠는 엠스토리아 작가에 의해 공개 또는 유료로 제공되는 콘텐츠로 무단 갭쳐 및 불법 공유시 법적 제재를 받을 수 있습니다.
해당 M스토리는 무료로 제공중입니다.
구독을 통해 더 많은 M스토리를 만나보세요.
서명 애드온
-
등록일 2024.04.15
-
등록일 2024.04.15
-
등록일 2024.04.05
-
등록일 2024.03.29
관련자료
-
이전
댓글 0
등록된 댓글이 없습니다.