Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 링크의 href 주소를 숨기는 방법 총정리

결론부터 말씀드리면, 링크의 href 속성 자체를 완전히 숨기는 것은 불가능합니다. 브라우저가 서버에 요청을 보내려면 목적지 URL이 반드시 필요하고, 이 정보는 기술적으로 사용자에게 노출될 수밖에 없습니다.

다만 href 값을 직접 드러내지 않으면서 동일한 결과를 얻을 수 있는 두 가지 대안적인 방법이 있습니다.

방법 1: URL 재작성(Rewriting) 활용하기

첫 번째 방법은 파일을 재작성하고 요청 URL의 형태를 바꾸어 실제 경로 구조를 감추는 것입니다. 예를 들어 다음과 같은 형태로 URL을 표시할 수 있습니다.

name.php/5001

Apache 환경이라면 .htaccess 파일과 mod_rewrite 모듈을 활용해 name.php?id=5001 같은 원래 URL을 위와 같이 간결한 형태로 변환할 수 있습니다. 이렇게 하면 내부 파라미터 구조가 외부에 그대로 드러나지 않아 어느 정도의 은닉 효과를 얻을 수 있습니다.

방법 2: POST 방식과 숨김 필드(Hidden Input) 활용하기

두 번째 방법은 GET 요청 대신 POST 방식의 폼을 사용하는 것입니다. 아래와 같이 폼을 작성하면 됩니다.

<form method="post" action="name.php">
<input type="hidden" name="packageID" value="5001">
<button type="submit">Go</button>
</form>

이 코드를 적용하면 브라우저 화면에는 단 하나의 버튼만 표시되고, packageID 값인 5001은 URL에 전혀 나타나지 않습니다. 물론 개발자 도구로 페이지 소스를 열면 hidden 필드의 값을 확인할 수 있지만, 마우스를 올렸을 때 상태 표시줄에 링크 주소가 노출되는 일은 없습니다.

마무리 정리

href를 근본적으로 숨기는 것은 불가능하지만, URL 재작성으로 경로 구조를 감추거나 POST + hidden 필드 조합으로 파라미터 노출을 최소화할 수 있습니다. 보안이 중요한 값이라면 세션(Session)에 저장하거나 서버 측에서 검증하는 방식을 함께 사용하는 것이 좋습니다.