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的公司(很像有很多公司或工作室都是這樣...),
而程式應該也是複製貼上的!!所以有的漏洞也是一樣...

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

在Hyper-V上跑ubuntu 22.04 Desktop, 裝完後一登入就凍住

如果你也遇到這情況, 你可以執行以下步驟 按 Ctrl+Alt+F3 進入 virtual console. (按Ctrl+Alt+F1 可以再回到GUI) 登入後執行下面指令 (更新kernel) * sudo add-apt-repository ppa:capp...