1

$url = "http://blah.somedomain.com/contents/somefolder/somefile.htm";リンクに使用できるように、ページのソースを見るときにURLが人間に簡単に読み取られないように、何らかの方法でコンテンツを覆い隠したいと思います。難読化された URL は、クリックしたときにブラウザーで機能する必要がありますが、私が調べた他の難読化方法は役に立ちません。

私たちが求めているのは、例えば$obscureurl = "%3A%2F%2F"...などです

何か案は?ありがとう。


編集:これまでの提案に感謝しますが、明確にするために、HTMLエンティティ(#値)にエンコードした後ではなく、パーセントエンコーディング(ASCIIの16進値)の後であると言うべきでした。

たとえば、次のように変更hello@me.comします。%68%65%6c%6c%6f%40%6d%65%2e%63%6f%6d

各文字と記号の 16 進数の ASCII テーブルは次のとおりです: http://ascii.cl/

この種の完全な変換は PHP で可能ですか? ありがとう

4

2 に答える 2

1
$url = '..';
$encoded = join(array_map(function ($byte) { return "%$byte"; }, str_split(bin2hex($url), 2)));

これが本質的にエンコーディングメカニズム全体です。生のバイトを 16 進数 ( bin2hex) で2取得し、1 バイトあたりの文字数を取得し、先頭に%.

これが難読化のために本当に多くのことをするというわけではありません。実際、ブラウザはそれをエンコードされた形式で表示することすらできず、検索エンジンでさえデコードされた形式のみを表示する場合があります。さらに、まだ正規の URL を生成しています。その URL に正確に何が含まれているかは問題ではありません。人々がそのリンクを持っている場合、そのリンクが人間にとってどれほど読み取り可能かどうかに関係なく、リンクを持っています。

于 2015-03-16T07:29:14.883 に答える
1

これを達成するための2つの簡単な方法を見ることができます:

于 2015-03-07T05:41:23.223 に答える