2011年6月9日 星期四

在x64 的 iis 下執行 32-bit Applications

在x64 的 iis 下執行 32-bit Applications 的方法, 就是在應用程式集區(Application pools) 裡允許 32bit 應用程式(Enable 32-bit Applications)




測試結果: overpower(縮圖元件) 和 tabs(檔案上傳元件) 可以正常地被 create, tabs 可以上傳檔案.


相關文章: google 關鍵字下: vb6 x64 server.CreateObject

分享 x64 環境下的縮圖元件--imageMagick

step 1: 先到 URL: http://www.imagemagick.org/script/binary-releases.php#windows
下載 windows-x64-dll.exe (Win64 dynamic at 16 bits-per-pixel)

step 2: 點2下 exe 檔, 安裝.

step 3: 執行 regsvr32:
C:\Program Files\ImageMagick-6.7.0-Q16> regsvr32 ImageMagickObject.dll

step 4: 測試縮圖 asp:

dim imObject
set imObject = createobject("ImageMagickObject.MagickImage.1")

dim myInputFile
dim myOutputFile

myInputFile = server.mapPath(".") & "\demo.jpg"
myOutputFile = server.mapPath(".") & "\demo_new.jpg"
imObjectReturn = imObject.Convert(myInputFile, "-resize=200x", myOutputFile)


response.write "Now:" & now()
response.write "轉檔完成囉!"


step 5: 大功告成.

2011年6月2日 星期四

身份驗證缺陷 (Broken Authentication)

今天在研究一份資料報告,有一個身份驗證缺陷 (Broken Authentication)的弱點. 我花了1小時, trace 程式, 和看報告, 終於找到原因, 我覺得當初寫程式的人真是豬頭, 居然會犯下醬子的錯. @_@;

程式1: member_edit.asp
他在 show form 時, 是從 session 裡去取得 user 當初 login 時的帳號(userid), 並把 userid 放到 form 裡的一個 hidden 欄位.


程式2: member_edit_act.asp
直接 request hidden 的欄位裡的值, 拿來做 SQL 的運算,
結果 user 把帳號值置換成別人的帳號, 就把別人的資料 overwrite 過去, 然後就可以用別人的帳號來 login.


為什麼當初寫的人, 會沒有想到這個問題?
需不需要做教育訓練?
如果一開始就可以寫出沒有弱點的程式, 該有多好. 呵呵呵.

2011年5月30日 星期一

用javascript 置換 className (Setting Styles with JavaScript)

方法1 (建議使用):
document.getElementById("myID").className = "myClassName";

方法2 (不建議使用):
document.getElementById("ID").setAttribute("class", "myClassName");

方法2, 在 GIP 的切換字體大小用的 styleswitcher.js 檔案裡可以看到.
這個方法, 在 IE6 + IE7 會失效, 在 IE8 或 FireFox+chrome 是 OK 的.

2011年5月24日 星期二

修改 IE 瀏覽器在 image map 時, 不顯示外框的方法

在使用 map 的 tag 時, IE 瀏覽器會在mouse click 時顯示一個很醜的 area 外框, 醜醜的外框長的像下面醬子:



解決方式: 在 img tag 裡增加 hidefocus="true" 的屬性即可.

特別感謝: 玟瑜 告訴我這個方法.

2011年5月19日 星期四

[IIS]. css 的 MIME type 會造成 firefox + chrome 顯示錯誤

畫面1: 左邊跑版, 右邊是 Error Message.



畫面2: 要設定一下 iis, 的設定, 不知道是那一個豬頭把 .* 給加上去, 氣死我了!

2011年5月3日 星期二

asp 實作 base64 加/解密

┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 1. Base64 定義
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base64是一種使用64基的位置計數法。它使用2的最大次方來代表僅可打印的ASCII 字符。這使它可用來作為電子郵件的傳輸編碼。在Base64中的變量使用字符A-Z、a-z和0-9 ,這樣共有62個字符,用來作為開始的64個數字,最後兩個用來作為數字的符號在不同的系統中而不同。一些如uuencode的其他編碼方法,和之後binhex的版本使用不同的64字符集來代表6個二進制數字,但是它們不叫Base64。


┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 2. 執行結果
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 3. 程式碼
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 4. 心得
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
base64 的好處就是可以把原本用數字 0~255 來表示的字元, 改成用 0~63 來表示, 好處是資料可以放在URL裡被傳遞, 也可以避免掉部份 cross site script 的問題.

下圖是我被植入 script site script 的結果, 因為把字串放到 value="" 屬性裡, 因為變數內容有雙引號, 所以字串就跳脫了.



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 5. 資料來源
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
將UTF-8編碼的字串轉成base64編碼
http://achtung.webhop.net/allenj/?p=628

Facebook 留言板