2005-10-21

一個不錯的保護javascript的方法

今天看到一個網站上的東西蠻有意思的,
所以想說看能不能copy下來慢慢玩,
結果看了一下程式碼發覺,似乎沒有這麼容易,
他的程式碼如下(我只截取我覺得重要的部份)

<script type="text/javascript">
<!--
function init()
{
r = new ActiveXObject("Microsoft.XMLHTTP");
r.open("GET","/virfolder/init/0",false);
r.send(null);
r2 = new ActiveXObject("Microsoft.XMLHTTP");
r2.onreadystatechange = asyncHandler;
r2.open("GET",r.responseText,true);
r2.send(null);
}
function asyncHandler()
{
if( r2.readyState==4 && r2.status==200 )
{
i = document.createElement("script");
i.text = r2.responseText;
document.body.appendChild(i);
}
}
//-->
</script>
</head>
<body onLoad="init();">

我稍微說一下我所理解的運作方式,
他將要保護的javascript藏在另一個路徑裡,
但問題是,這個路徑他是透過

r = new ActiveXObject("Microsoft.XMLHTTP");
r.open("GET","/virfolder/init/0",false);
r.send(null);

去取得,然後再丟到r2去取得script的內容

r2 = new ActiveXObject("Microsoft.XMLHTTP");
r2.onreadystatechange = asyncHandler;
r2.open("GET",r.responseText,true);
r2.send(null);

然後再將r2所接收到的資料丟到新建立的script的element中

i = document.createElement("script");
i.text = r2.responseText;
document.body.appendChild(i);

以上大致上是他的運作方式.

這時當然就會想說既然這樣的話,直接瀏覽 r 的連結,看一下 r2 是連到哪,
所以我就先用瀏覽器直接將路徑連接了一下後瀏覽,
不過卻傳回空資料...並不是無此網頁,也不是錯誤,是完全沒有內容的網頁,
所以,這時就想說應該是有判斷referer,
所以就改用它的程式再加上一段setRequestHeader,用javascript去接收看看.

r.setRequestHeader('REFERER', "http://000.000.000.000/virfolder/test/xxxx/");

結果,傳回來的依然是空資料...
所以也開始懷疑他到底是不是判斷referer...
因此到現在我還不知道他的主要的script是寫些什麼...

不過,畢竟javascript是在client端跑的,
所以資料勢必是要都load到client端才行,
本想說用Fiddler來抓抓看,
只是,現在用的電腦怪怪的,一些軟體都不是很正常,Fiddler也沒反應,所以等明天再試吧!!

ps.實際的連結路徑與資料夾等等的資訊我有稍微修改了一下,直覺上改一下這些資訊比較恰當...
如果有人對哪網頁有興趣的,想要自己研究看看的,就回應一下或與我聯絡.

2005-10-19

面對程式漏洞

上禮拜為了準備一份學習程式設計的心得分享的簡報,
因為裡面主要提到的是一些程式設計學習中常見的問題與狀況,
而這些問題與狀況所影響的就是程式的安全性問題!!
而在蒐集資料的時候,
發現外面很多網站都有這樣的漏洞,
而且透過google,一切都無所遁形!!

其中我覺得比較有趣的是一個下載的程式,
所以我後來又再用google搜尋了一下,
發現在台灣還有不少網站有這樣的問題,(或許應該說是程式設計師有這樣的問題)
本來想說要再blog說明一下這個問題是怎樣的情形,
但覺得還是先通知一下網站的管理者,讓他們先補好漏洞再說,
所以昨天也好心的將這資訊寄給了網站的管理者!
不過不知道是怎樣,到現在似乎都還沒有人做處理!
所以我現在也不知道是不是要po之前所做的簡報了...

我在想,到底是大家比較沒有危機意識,
還是網站上留的信箱都是觀看用的...
網友即使寄了,也不見得有人會看...
而這其中不乏知名的網站(雖然程式有做了檢查,不過還不夠嚴謹...),
當然一些.gov的網站就更不用說了...

其中還有一家應該是專門再接網站case的公司(很像有很多公司或工作室都是這樣...),
而程式應該也是複製貼上的!!所以有的漏洞也是一樣...

在過幾天我在將之前做的簡報分享出來好了!!
我想這樣應該是已經盡到告知的義務了!!

windows 11 不使用微軟帳號登入

試過"斷網路", 試過"用無效的email登入失敗" 最後還是改registry最好用...  在安裝畫面中, 按下 Shift+F10開啟命令提示字元視窗 然後輸入regedit 切換到 HKEY_LOCAL_MACHINE\Softw...