ホームページ >バックエンド開発 >PHPチュートリアル >ダウンロード アドレスの盗難防止を判断するにはどうすればよいですか? ぜひご覧ください。解決方法

ダウンロード アドレスの盗難防止を判断するにはどうすればよいですか? ぜひご覧ください。解決方法

WBOY
WBOYオリジナル
2016-06-13 12:32:48809ブラウズ

ダウンロード アドレスの盗難防止を判断するにはどうすればよいですか? ぜひご覧ください。
2 つの Web サイト、1 つはメイン Web サイト、もう 1 つはアップロード用のサブサイト

メインサイトのdownload.phpがダウンロードページです

サブサイトの down.php がダウンロードリンクです


をダウンロードするには、download.php のリンクをクリックする必要があります。 ユーザーがsubsite/down.php?fileid=1に直接アクセスしてファイルをダウンロードすることを防ぐため、以下の判断を行いました

download.php ハッシュ値を追加
$hash = strtoupper(md5('downloadkey'.date('ymdh')));

down.php はハッシュ値も追加します
$hash2 = strtoupper(md5('downloadkey'.date('ymdh')));

down.php 判定

<br />
if($hash<>$hash2){<br />
        header("Content-Type: text/html; charset=utf-8");<br />
        echo '文件ID: '.$file_id.'<br>';<br />
        echo '['.$file_name.'] 文件地址已过期,请返回下载地址重新下载。<br><br>如果仍然出现此问题,请联系管理员<br><br>';<br />
        if($pd_gid==1){<br />
                echo '<br><br>---------- 以下内容 管理员可见 ---------- <br>';<br />
                echo '文件HASH:<font color=blue>'.$hash.'</font><br><br><br>';<br />
                echo '文件HASH2:<font color=blue>'.$hash2.'</font><br>';<br />
        }<br />


その時点で問題が発生しました。ユーザーが 20:59:59 '' にダウンロード ページにアクセスし、クリックしてダウンロード
をクリックしたときです。
しかし、クリック後の時刻は 21:00:01 となり、ハッシュ値が異なるため、ダウンロードできなくなります。もう一度戻ってダウンロードする必要があります

解決方法。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。