ホームページ > php教程 > php手册 > 画像ホットリンク保護をクラッキングするためのコード (asp/php) がテストに合格しました

画像ホットリンク保護をクラッキングするためのコード (asp/php) がテストに合格しました

WBOY
リリース: 2016-06-13 12:15:23
オリジナル
878 人が閲覧しました

PHP バージョンのコードは比較的単純です:

コードをコピーします コードは次のとおりです:


$p=$ _GET['p'];
$pics=file($p);
for($i=0;$i< count($pics);$i )
{
echo $ pics[$i];
}
?>



使用方法: ファイルを i.php として保存し、次の場所にアップロードします。ルート ディレクトリ
外部リンクできなくなります 画像アドレスを http://ドメイン名 p.php?p=画像アドレス

に変更します。ASP バージョンはオンラインでよく使用されます

コードをコピーします コードは次のとおりです:


<%
Dim url, body, myCache
url = Request.QueryString("url")
Set myCache = 新しいキャッシュ
myCache.name = "picindex"&url
If myCache.valid then
body = myCache.value
Else
body = GetWebData(url)
myCache.add body,dateadd(" d",1,now)
End If
If Err.Number = 0 then
Response.CharSet = "UTF-8 "
Response.ContentType = "application/octet-stream"
Response.BinaryWrite body
Response.Flush
Else
Wscript.Echo Err.Description
End if
'データの取得
Public Function GetWebData(ByVal strUrl)
Dim Curlpath
curlpath = Mid(strUrl,1,Instr(8,strUrl,"/"))
Dim Retrieval
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
取得あり
.Open "Get"、strUrl、False、""、""
.setRequestHeader "Referer"、curlpath
.Send
GetWebData =.ResponseBody
End With
Set Retrieval = Nothing
End Function
'cache class
class Cache
private obj 'cache content
private expireTime '有効期限
private期限切れTimeName '有効期限アプリケーション名
プライベートcacheName 'キャッシュコンテンツアプリケーション名
プライベートパス 'url
private sub class_initialize()
path=request.servervariables("url")
path=left(path,instrRev(path,"/"))
end sub
private sub class_terminate()
end sub
public property get blEmpty
' が空です
if isempty(obj) then
blEmpty=true
else
blEmpty=false
end if
end property
public property get valid
' は利用可能 (期限切れ)
if isempty(obj) or not isDate(expireTime) then
valid =false
elseif CDate(expireTime)valid=false
else
valid=true
end if
end property
public property let name(str)
'キャッシュ名を設定します
cacheName=str & パス
obj=application(cacheName)
expireTimeName=str & "expires" & パス
expireTime=application(expireTimeName)
end property
public property let期限切れ(tm)
'有効期限をリセット
expireTime=tm
application.lock
application( expireTimeName)=expireTime
application.unlock
end property
public sub add(var,expire)
'assignment
if isempty(var) or not isDate(expire) then
exit sub
end if
obj=var
expirationTime=expire
application.lock
application(cacheName)=obj
application(expireTimeName)=expireTime
application.unlock
end sub
public property get value
'take value
if isempty(obj) or not isDate(expireTime) then
value=null
elseif CDate(expireTime)value=null
else
value=obj
end if
end property
public sub makeEmpty()
'release application
application.lock
application( cacheName)=empty
application(expireTimeName)=empty
application.unlock
obj=empty
expireTime=empty
end sub
public functionequal(var2)
' 比較
if typename(obj)<>typename(var2 ) then
equal=false
elseif typename(obj)="Object" then
if obj が var2 then
equal=true
else
equal=false
end if
elseif typename(obj)="Variant()" then
if join(obj,"^")=join(var2,"^" ) then
equal=true
else
equal=false
end if
else
if obj=var2 then
equal=true
else
equal= false
end if
end if
end function
end class
%>


使用法: ファイルを i.asp として保存し、ルート ディレクトリ
外部リンクできない画像のアドレスを http:///ドメイン名/p.asp?url=画像アドレス
に変更します。誰もが使いやすいように、コピーされたコードはエラーが発生しやすいものです。特別パッケージのダウンロード
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート