ファイル名orアドレスを隠す方法

[上に] [前に] [次に]
みんこ 1999/04/21(水) 13:22:46
よそのサイトのダウンロード用ファイルに直リンク張り倒して
「よそも違法にファイル作っているからいいんだ!」とか
のたまっているお脳あたたかめなサイトを発見しました。いやあ、春ですね。

(そのファイル作成自体は違法でもなんでもないのですが〜。困ったもんだ。)

まあ正当性云々はここでは関係ないのでおいといて、
直リンクというのは大変迷惑です。可愛げがないです。
で、こういうサイトを直接叩いても意味がないので(トリだし)
自衛手段としてファイルやフォルダ名を不定期に変えてしまう、というのが
実に効果的だろうとは思うのですが、ファイルが多いと面倒ですので
アドレスやファイル名をわかりにくくするいい方法、アイデアが
ありましたら教えて下さい。

できればリンク自体は普通に出来るようにしたいので、
外部から見て構造がわかりにくいフォルダの作り方とかでも結構です。
CGIとか使えないサイトも多いですのでできればHTMLとJavaScriptだけで出来るといいのですが。

(何度かこういう質問は見たのですが関係ないな〜と思ってログとか取ってありませんでした。すいません)

たこすけ 1999/04/21(水) 14:51:29
お脳あたたかめなサイトに遊びに行ったら、私で64人目でした(笑)

ほんでもってサンプル(対象”../download/item/hoge.zip”の場合)
---------------------------------------
<script>
var a = "wn";
var o = "oad";
var k = "l";
var t = "do";

function download(ika){
url = "../"+t+a+k+o+"/item/"+ika+".zip";
location.href = url;
}
</script>

<a href="http://ダミーURL" onClick="download('hoge');return false">D/L</a>
---------------------------------------

よっぽどソースとにらめっこするのが好きな人でなければ
こんな感じでフォルダ名をバラバラにされるとツライと思いますよ。
JavaScript分からん人ならダミーURLにひっかかるだろうし・・・

どうでしょう?

みんこ 1999/04/21(水) 15:08:29
>たこすけさん

あ、なるほど。一瞬私もひっかかりました(おいおい)。
これじゃどっかへジャンプしちゃうのではーと思ったら
false返している訳ですね。ソネットにつないじゃえ(笑)。

これくらいだとスクリプトわかんない人でも使いやすいかも。

でもネタ的にこういうの結構面白い気がするので
もう少し他にもアイデアありましたら皆様お聞かせ下さい。

無責任官庁 1999/04/21(水) 15:54:58
>ファイルが多いと面倒ですので

という一言があるので、ファイル名を暗号化もどきにすると、
たくさんあっても結構イケそうです。
--------------------------------------sample------
function file_name(pass){
 ret = "";loop = 0;idx = 0;
 wstr = "abcdefghijklmnopqrstuvwxyz";
 wstr = wstr + "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890._-";

 for (loop = 0;loop < pass.length;loop = loop + 2){
  idx = substr(pass,loop,2);
  ret = ret + substr(wstr,idx,1);
 }
 return ret;
}
function download(f_number){
 //f_numberで、urlに入れるヤツを色々変える
 location.href = file_name("0001020361050704");
}

<a href="だみ〜" onClick="download(1);return false">file</a>
--------------------------------------sample-end--
テストしてないんで、そのままで動く保証はありません。(^_^;)
これは私が実際使ってるインチキ暗号化の一部です。
wstrの文字列の中身はテキトウに入れ替えた方がよいです。
(サンプルは、分かりやすく並べてるだけですので)
あと、ダウンロードさせるファイル名は、できるだけ長いほうがいいです。

ちなみに、サンプルのファイル名は、”abcd.gif"とかってなると思う。
(自信ないです)
あんまし難しくすると、今度は自分が困るので・・・(^_^;)
パッと見わからなきゃいいかな〜なんて。

匿名希望 1999/04/21(水) 16:19:37
ごめん。substrはPerlだった。(^_^;)
wstr.charAt(loop)とかに置き換えてね。

無責任官庁 1999/04/21(水) 16:30:08
↑これ私ね。
なんか無責任っぽい(笑)ので、ちゃんと書きます。
forループの中身ね。

idx = pass.substring(loop,loop+2) * 1;
ret = ret + wstr.charAt(idx);

こんな感じ?(^_^;)

たこすけ 1999/04/21(水) 16:59:25
> ごめん。substrはPerlだった。(^_^;)
ありゃ?、そうだったんですか?
NC4ではsubstr使えるんで
  idx = pass.substr(loop,2);
  ret = ret + wstr.substr(idx,1);
と直して実験してました(笑)

> idx = pass.substring(loop,loop+2) * 1;
> ret = ret + wstr.charAt(idx);
あ〜こうすれば良かったのか!馬鹿ね(←私)

ところで"abcd.gif"→"0001020362060805"ですよね?
細かいツッコミですけど、スクリプトを正しく理解しているか
自信が無いもので・・・・

みんこ 1999/04/21(水) 17:01:58
> 無責任艦長さん

すいません、わからなくて今本呼んでます(涙)。
基本はたこすけさんと同じ考えで、ファイルを更に暗号化させてるんですよね。
charAtを今始めて見ました(不安)。
あ、なるほど。一つ置きに取り出すんですよ...ね?
解読するのは大変ですが自分で書くのも大変そうですね...。
個人的には使えるかも。ありがとうございます。

みんこ 1999/04/21(水) 17:06:48
>一つ置きに取り出すんですよ...ね?

ちがう。違っていることだけはわかる(涙)。
とりあえずアルファベットを数値に置き換えてるんですよね。
ループ勉強し直します。

>NC4ではsubstr使えるんで
バージョン1.0ではとりあえず substringみたいです。
(と本にある...)誰だ、ここに栞はさんでるの...。(独り言)

たこすけ 1999/04/21(水) 17:22:37
> 解読するのは大変ですが自分で書くのも大変そうですね...。
無責任官庁さんに断らずに作った暗号解読用スクリプト
wstrの中身が1バイト文字に限り有効です

---------------------
<script>
wstr = "abcdefghijklmnopqrstuvwxyz";
wstr = wstr + "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890._-";

for(i=0; i<wstr.length; i++){
if(i<10){
document.write("0"+i+" = "+wstr.charAt(i)+"<BR>");
}else{
document.write(i+" = "+wstr.charAt(i)+"<BR>");
}
}
</script>
---------------------

本当はテキストボックス2個作って
片方にファイル名を入力したら
もう片方に暗号化させて表示とかしたかったんだけど・・・

みんこ 1999/04/21(水) 17:30:52
> 0001020361050704
これだと「abc0fhe」ですね?!
突っ込みじゃなくて考えている意味があっているかどうか確認したいんですが。
(ずら〜っと暗号列書き出して番号打って...やりました。)
これが何故数字二桁ずつ並べていいのか分かってないのですが。
そういうもんなんですか。

なんだか自分で聞いて置いてこのていたらく...。
他にも私程度が理解できそうなアイデアがありましたら(涙)お願いします。

無責任官庁 1999/04/21(水) 23:04:29
>> 0001020361050704
>これだと「abc0fhe」ですね?!

その通りです。(^_^;)
まあ、そんな感じでオリジナルな暗号にすると、解読するのに
苦労するから、ほとんどの人はあきらめてくれるかなぁ・・・なんてね。

>これが何故数字二桁ずつ並べていいのか分かってないのですが。

単純に、wstr文字列の長さが2ケタだから、2ケタにすると
substringで取りだしやすいかなぁ・・・ってだけです。
wstr文字列の長さを3ケタにした場合は、当然3ケタずつ並べないと
うまくいかないです。

>無責任官庁さんに断らずに作った暗号解読用スクリプト

ぜんぜんおっけ〜です。(^_^;)
暗号化としてはかなり古典的な手法なんで、
プログラムも分かりやすいと思ったのですが・・・

おぱく堂 1999/04/21(水) 23:39:08
フレームを使うってのはどうでしょ。

file0<frameset rows="100%,*">
├ file1(表示)
└ flie2(隠し)

……として、隠しのfile2から、location.href=a+b+c+d+"/download.lzh"とか
やります。で、
a は、file2のあるフレーム名を使用。
b は、file2の中でややこしい計算をさせる。
c は、親であるfile0に記述して file2から参照させる。
d は、引数にして file1から渡す。

さらに……
c は最初ウソを書いておいて、file1または file2の onLoadイベントで、正しい値に
書き換える、と。

もっといえば……
file0そのものも、なんらかのフレームの中に入れ子で置いておく、と。すると
ソースが非常に見づらくなる。

さらにさらに、ソースの中にコメントとして……
<!--
xyz/download.lzh
-->
とか、ウソのフォルダを書いておいたりして。
それだけだとすぐにバレるので、ウソのフォルダを実際に作ってウソの
ファイルとかも置いてみるとか。解凍すると「わっはっはっ」とかいう
だみ声おやじの音声ファイルだったりするとか。

みんこ [E-Mail] [HomePage] 1999/04/22(木) 09:22:57
[[解決]]
とりあえず。
皆様ありがとうございました。
なんか他同じ内容ののツリーと比べて妙に熱いのは気のせいですか。

暗号化のファイルを別ファイルで取り込むだけでも結構効果的かしら、とも
思ったのですが。フレームもいいですね。(使いすぎると怒る人もいますが)
わけ分からなくする方法っていろいろあって面白いです(笑)。
とりあえず、ダミーのリンク先(so-net推奨)とダミーファイル(音声ファイルも大変重そうで魅力的です)は楽しそうです。
これだけで「ほんものをさがせ!」ゲームができますね(笑)。

で、教えていただいたスクリプトは「対直接リンク案」として公開させてもらって
よろしいでしょうか?(少し作り替えるかも知れませんが)
何か不都合がありましたらご連絡下さい。

無責任官庁 [E-Mail] 1999/04/22(木) 10:21:05
私のは一向にかまいません。みなさんで自由に使用してください。

ただ、「暗号解読用スクリプト」とか、そういう解説は
やめといた方が・・・

#そういや訂正発言しといて、それでもなお間違ってる・・・
#おバカな私。(T_T)
#pass.substring(loop,loop+2)じゃあ3桁とっちゃうじゃないの・・・

たこすけ 1999/04/22(木) 10:48:53
>みんこさん
私も一向にかまいませんが、ダミーのリンク先URLは
JavaScriptを切ってる人の事も考慮した方が良いと思います。
(本当にダウンロードさせたい人もso-net行っちゃいます)

>無責任官庁さん
> 3桁とっちゃうじゃないの・・・
substring(from,to)はfromから "toの直前" までの
文字列を抜き出すので大丈夫ですよ。・・・・・多分。

みんこ 1999/04/22(木) 16:07:41
[[解決]]
ありがとうございますです。

解読スクリプトは勿論隠しておきます。
うちはリンクのあるファイル自体がスクリプトで開いているので
問題ないのですが、ダミー先は考慮します。
元のファイル名そのまま残して偽物入れておいてもいいですね。

>3桁とっちゃうじゃないの・・・
確認しました(断言)。大丈夫です。toの直前までですから2桁です。
ちなみに本には「(to,from)の場合はfromからtoまで」と
あったのですが確認したらやはりfromから"toの直前まで"でした。
だめじゃん(いばりモード)。

たこすけ 1999/04/22(木) 18:27:48
> 本当はテキストボックス2個作って
> 片方にファイル名を入力したら
> もう片方に暗号化させて表示とかしたかったんだけど・・・
今更ですけど、作っちゃいました(笑)

---------------------
<SCRIPT>
wstr = "abcdefghijklmnopqrstuvwxyz";
wstr = wstr + "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890._-:/~";

function ango(){
document.F.T2.value = "";
for(i=0; i<document.F.T1.value.length; i++){
m = wstr.indexOf(document.F.T1.value.charAt(i))
if(m < 10){
document.F.T2.value += "0" + m;
}else{
document.F.T2.value += m;
}
}
}

</SCRIPT>
<FORM NAME=F>
↓ここにファイル名<BR>
<INPUT TYPE=TEXT NAME=T1 SIZE=50><BR>
↓結果はコチラ<BR>
<INPUT TYPE=TEXT NAME=T2 SIZE=50><BR>
<INPUT TYPE=BUTTON VALUE="暗号作成" onClick="ango()">
</FORM>
---------------------

みんこ 1999/04/23(金) 09:10:54
みんなが直リンクされたフォルダの名前を変え始めたので
例のサイトももう時間の問題って感じなのですが.....

とりあえず、まとめてアップしてみました。
ただ、まるまる公開すると意味がないので今のところ
パスワード制限しています。興味ありましたらどうぞ。

パスワード:みんこの使用しているパソコンのメーカーは?(笑)

れん+ [E-Mail] 2000/03/18(土) 12:21:13
1999/04/21(水) 15:54:58の無責任官庁さんレスが、やってみたんですが、エラーがでてしまって・・・・。

-------------------------------------------
<script>
function file_name(pass){
 ret = "";loop = 0;idx = 0;
 wstr = "abcdefghijklmnopqrstuvwxyz";
 wstr = wstr + "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890._-";

 for (loop = 0;loop < pass.length;loop = loop + 2){
idx = pass.substring(loop,loop+2) * 1;
ret = ret + wstr.charAt(idx);
 }
 return ret;
}
function download(f_number){
 //f_numberで、urlに入れるヤツを色々変える
 location.href = file_name("0001020362060805");
}
</script>
<a href="だみ〜" onClick="download(1);return false">file</a>
-------------------------------------------

こんな感じでやってみたんですが。。
私が凄く簡単なミスしてそうな気がするんですが・・・・。
間違ってるところがあれば、教えていただけないでしょうか。

れん+ [E-Mail] 2000/03/18(土) 12:44:40
あっ・・・・
解決済みなのに蒸し返してすいませんm(_ _)m

れん+ [E-Mail] 2000/03/19(日) 06:07:15
ありがとうございました。解決できました。(^^)

[上に] [前に] [次に]