この記事では主に、PHP でブログやフォーラムの画像のホットリンクを防ぐ方法を紹介します。これには、PHP 文字列とセッションを組み合わせて画像を決定する関連操作テクニックが含まれます。必要な友達はそれを参照できます
ホットリンクを防ぐ方法はたくさんあります。それについてはここでお話します。ホットリンクについての私の理解は、リモート送信の防止と同じです。
まず関数を紹介します
uniqid(string); //这个函数的作用,是在你添加的字符串后面随即添加一个独一无二ID字符串。
それでも心配ない場合は、この関数が出力する文字列をSHA1()関数で暗号化することができます。
このようにして、デジタルビザの作成に使用される、あなただけが知っている一意の文字列を取得します。次に、このデジタルビザを検出する方法です。
function has($string) { if(!isset($string) || $string != $_SESSION["uniqid"]) { exit; } } //上面这个函数的意思是如果不存在字符串$string或者字符串不等于$_SESSION["uniqid"]; //则不执行下面的部分。
デジタルビザを検出する関数は後で書きます。次はどうする。 Web ページは上から下まで実行されることは誰もが知っています。上部でデジタルビザを生成し、下の関数で検証するだけです。
session_start(); //开去session功能 $uniqid = uniqid("dwz"); $_SESSION["uniqid"] = $uniqid; //执行代码 has($uniqid); //进行数字验证
以上でホットリンクを防ぐ最も簡単な方法は完了です。話題に戻りますが、写真のホットリンクを防ぐにはどうすればよいでしょうか?
これはより簡単な答えです。 Web サイトの画像のソース コードを見ると、画像を保存するための 2 つのパスがあることがわかります。1 つは相対パス、もう 1 つは絶対パスです。
相対パスとは、画像がサーバー上にあることを意味します。
パスの意味は、画像がサーバー上にあってもなくてもよいということだと思います。
サーバー上にない場合は、URL アドレスまたは IP アドレスがあります。これが盗難防止の鍵です。
$_SERVER['HTTP_HOST']; //这样就可以获取服务器的url。但这个可以直接用代码修改.
送信リクエストの URL を取得して確認します。それが自分の URL であれば通過し、そうでない場合は実行されません。同じ原理ですよ!
要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。
関連する推奨事項:
以上がブログやフォーラムの写真のホットリンクを防ぐ PHP 方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。