결론부터 말씀드리면, 링크의 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)에 저장하거나 서버 측에서 검증하는 방식을 함께 사용하는 것이 좋습니다.