PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでリンクのhref属性を隠すことはできる?実現可能な代替手段を徹底解説

結論:リンクからhrefを完全に隠すことは不可能

まず結論から言うと、HTMLのリンク(<a>タグ)からhref属性を完全に隠すことはできません。ブラウザがページ遷移を行うためにはhrefの情報が必須であり、ユーザーがソースコードや開発者ツールを開けば、URLは必ず確認できてしまいます。

しかし、「見た目上のURLを変えたい」「パラメータを見せたくない」という目的であれば、いくつかの有効な代替手段が存在します。以下に代表的な方法を紹介します。

方法1:URLリライトでリクエストURLを見かけ上変更する

1つ目の方法は、URLリライトを活用する手法です。実際のファイル構成やクエリパラメータをそのままに、ブラウザのアドレスバーに表示されるURLを別の形式に書き換えます。

例えば、次のようなURLを:

name.php?id=5001

以下のように、すっきりした形式で表示させることができます。

name.php/5001

Apacheであれば.htaccessとmod_rewriteを使い、Nginxであればrewriteディレクティブを使って実装します。これにより、内部のファイル名やパラメータの構造を外部に露出させずに済みます。

方法2:POSTリクエストでパラメータをURLに含めない

2つ目の方法は、GETではなくPOSTリクエストを使う手法です。GETの場合、パラメータがURLに含まれるため誰でも見えてしまいますが、POSTならデータはリクエストボディに格納されるため、URL上には現れません。

具体的には、hiddenフィールドを使ったフォームを次のように記述します。

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

このコードをブラウザで表示すると、ユーザーには「Go」というボタンが1つだけ見えます。packageIDの値「5001」はURLには一切表示されません。

注意点:POSTでもデータは完全に秘匿できるわけではない

ただし、POSTリクエストも開発者ツールのネットワークタブなどで確認すれば中身は見えてしまう点には注意が必要です。「URLに表示されない」だけであり、暗号化や認可の代わりにはなりません。本当に機密性の高いデータを扱う場合は、サーバーサイドでのセッション管理やアクセス権限の検証と組み合わせるようにしましょう。

まとめ

  • href属性そのものを隠すことは技術的に不可能
  • URLリライトを使えば、表示されるURLを見かけ上きれいにできる
  • POSTフォーム+hiddenフィールドを使えば、パラメータをURLに露出させずに送信できる
  • いずれの方法もセキュリティ対策としては不十分なので、サーバーサイドでの検証が必須
  1. 【iOS】iMessageのアプリアイコンを非表示にする方法を解説

    iOS 11には魅力的な機能が多数搭載されており、Appleがこれまでにリリースした中でも最大級のソフトウェアアップデートと言えます。刷新されたコントロールセンター、新デザインのApp Store、強化されたSiri対応など、見逃せない要素ばかりです。すでに最新バージョンへアップデート済みの方も多いのではないでしょうか。実は、標準の「メッセージ」アプリにも大きな変更が加えられています。新しいメッセージを開くと、画面下部にiMessage用のアプリへのクイックアクセスメニューが表示されることに気づいた方もいるでしょう。頻繁に使わないユーザーにとっては、このメニューがやや邪魔に感じられることもあり

  2. 見知らぬ人からFacebookアカウントを隠す方法|プライバシー設定で自分を守る手順

    Facebookは、人と人をオンライン上でつなぐことを目的として誕生したSNSです。そのインターフェースは、世界中の誰でも簡単に見つけられるよう設計されており、名前・メールアドレス・電話番号など、さまざまな情報をもとに人物を検索できます。しかし時代とともにセキュリティへの関心が高まり、「自分のFacebookアカウントを他人に検索されたくない」と考えるユーザーが増えています。そこでFacebookには、アカウントを見つけにくくするためのプライバシー設定が用意されています。とはいえ、その操作方法を知らない方も多いのが実情です。この記事では、アカウントをいわば「ステルスモード」にする具体的な手順を