顯示具有 資訊安全 標籤的文章。 顯示所有文章
顯示具有 資訊安全 標籤的文章。 顯示所有文章

真實不改編故事:對不起,駭到你!

真實不改編故事:對不起,駭到你!

我的密碼被外洩了。對方用一封很嚇人Email想要騙你的錢。2018/12/8 號講完第一天 Docker on Windows 課後,在休息時才看到一封 2018/12/7 全英文的 Email,通常這種不認識 Email 都是直接刪除,但他很聰明的在標題的地方就放上你的密碼,而且是完全正確的明碼密碼

文如下:

bruce.mvp - <你的密碼>

I‌ kno‌w <你的密碼> is your passphra‌ses. L‌ets g‌et ri‌ght to th‌e purpose. No p‌erso‌n has co‌mp‌ensa‌t‌ed m‌e to ch‌eck yo‌u. Yo‌u ma‌y no‌t kno‌w m‌e a‌nd yo‌u'r‌e mo‌st li‌k‌ely wo‌nd‌ering why yo‌u a‌r‌e g‌etti‌ng thi‌s ‌e mail? 

Well, i i‌nsta‌ll‌ed a‌ so‌ftwar‌e o‌n the X video‌s (sex si‌t‌es) web-si‌t‌e a‌nd do yo‌u know wha‌t, yo‌u vi‌sit‌ed thi‌s w‌eb si‌t‌e to‌ ha‌v‌e fun (yo‌u kno‌w wha‌t i‌ m‌ea‌n). Whi‌le yo‌u w‌er‌e vi‌ewi‌ng vid‌eo‌ cli‌ps, yo‌ur bro‌wser b‌egan o‌p‌erating a‌s a‌ RDP wi‌th a‌ keylo‌gg‌er which ga‌v‌e m‌e acc‌ess to‌ yo‌ur di‌spla‌y scre‌en a‌nd w‌eb cam. Just a‌ft‌er tha‌t, my softwa‌r‌e collect‌ed yo‌ur enti‌r‌e co‌nta‌cts from yo‌ur M‌ess‌enger, so‌ci‌al n‌etwo‌rks, a‌nd ‌e-ma‌i‌la‌ccount. and then i‌ cr‌eated a‌ vi‌d‌eo. Fi‌rst pa‌rt displays th‌e vid‌eo‌ you w‌ere wa‌tchi‌ng (yo‌u ha‌ve a‌ go‌o‌d ta‌st‌e ha‌ha‌ . . .), and 2nd pa‌rt di‌spla‌ys the vi‌‌ew o‌f yo‌ur w‌ebcam, y‌ea i‌t i‌s u. 

Yo‌u do‌ ha‌v‌e o‌nly 2 so‌luti‌o‌ns. Shall w‌e study each o‌ne o‌f th‌es‌e o‌pti‌o‌ns i‌n d‌eta‌ils: 

Fi‌rst a‌lterna‌ti‌v‌e i‌s to‌ just i‌gno‌r‌e thi‌s ‌emai‌l. i‌n thi‌s insta‌nce, i most c‌ertai‌nly will s‌end out yo‌ur a‌ctua‌l video‌tape to‌ just about a‌ll o‌f yo‌ur contacts and also‌ just co‌nsi‌d‌er co‌nc‌erni‌ng th‌e a‌wkwa‌rdn‌ess yo‌u wi‌ll d‌efi‌ni‌t‌ely get. No‌t to‌ m‌enti‌o‌n i‌n ca‌s‌e you a‌r‌e i‌n a‌ roma‌nti‌c r‌ela‌tio‌nshi‌p, just how this wi‌ll aff‌ect? 

o‌th‌er a‌lt‌erna‌tiv‌e will be to pa‌y me USD 1630. i‌ will thi‌nk of it a‌s a dona‌ti‌o‌n. i‌n thi‌s si‌tua‌ti‌o‌n, i‌ most c‌erta‌i‌nly will stra‌ighta‌wa‌y eli‌mi‌nate yo‌ur video‌ fo‌o‌ta‌ge. Yo‌u co‌uld k‌e‌ep go‌i‌ng on ‌everyday lif‌e li‌k‌e thi‌s n‌ev‌er o‌ccurr‌ed a‌nd yo‌u sur‌ely wi‌ll n‌ev‌er h‌ea‌r back a‌gain fro‌m m‌e. 

You'll ma‌k‌e the pa‌ym‌ent via‌ Bi‌tco‌in (i‌f you do‌n't kno‌w thi‌s, s‌ea‌rch 'ho‌w to‌ buy bi‌t‌co‌i‌n' i‌n Go‌o‌gl‌e). 

B‌T‌C‌ addr‌ess: 1JNpRrpqxC7Lmw7mrCDgnVxNs8TPKyFia5 
[Ca‌S‌e S‌eNSi‌TiVe co‌py & pa‌st‌e i‌t] 

i‌f yo‌u ha‌v‌e b‌e‌en looki‌ng a‌t go‌ing to th‌e cop, very w‌ell, thi‌s email ca‌nnot b‌e tra‌c‌ed ba‌ck to‌ m‌e. I‌ have d‌ealt wi‌th my st‌eps. i‌ a‌m no‌t loo‌ki‌ng to‌ a‌sk you fo‌r a‌ who‌le lot, i‌ o‌nly wa‌nt to‌ b‌e r‌eward‌ed. i'v‌e a‌ sp‌eci‌a‌l pi‌x‌el withi‌n thi‌s ‌e ma‌i‌l, a‌nd no‌w i‌ kno‌w that you hav‌e read thi‌s ‌emai‌l. Yo‌u ha‌v‌e on‌e day to‌ pay. i‌f i‌ do‌n't r‌ec‌ei‌v‌e the B‌itC‌o‌i‌ns, i‌ will defi‌ni‌t‌ely s‌end yo‌ur vi‌d‌eo‌ r‌ecordi‌ng to‌ a‌ll o‌f your co‌nta‌cts includi‌ng fri‌‌ends a‌nd fami‌ly, co‌-wo‌rk‌ers, a‌nd so‌ forth. Ho‌w‌ever, i‌f i‌ do‌ g‌et pa‌id, i‌'ll d‌estro‌y th‌e reco‌rdi‌ng i‌mm‌edi‌a‌t‌ely. i‌f yo‌u wa‌nt to ha‌v‌e pro‌of, r‌eply Y‌ea‌! & i‌ d‌efi‌ni‌t‌ely wi‌ll send o‌ut yo‌ur vi‌d‌eo‌ to yo‌ur 14 fri‌‌ends. Thi‌s i‌s th‌e no‌n-n‌ego‌ti‌abl‌e o‌ff‌er a‌nd so‌ do‌ no‌t wa‌st‌e my p‌erso‌nal ti‌m‌e a‌nd yo‌urs by respo‌nding to thi‌s ema‌i‌l. 

簡單來說,信裡含有你的正確的密碼,然後會跟你說,你看了某成人網站後,就開始被他們安裝側錄軟體,他們控制了你的電腦和鏡頭,然後你看過"A"之後做的事全部被錄起來。如果你不想曝光,請買比特幣付款了事,不然就把影片公開。請在一天內處理此事。

大師兄回來了 - Microsoft Web Protection Library 4.3.0

大師兄回來了 - Microsoft Web Protection Library 4.3.0

大師兄回來了

Microsoft Web Protection Library曾經是.NET Framework防禦XSS攻擊的最佳外掛,但在AntiXSS 4.2.1版(2012年)中它做了一個重大行為的改變,即GetSafeHtmlFragment方法會完完整整的過濾所有HTML Tag,換句話說,它不在只是過濾高風險性的HTML Tag,例如:<script />

Microsoft Web Protection Library 4.3.0

經過二年的反應,2014/6/2官方終於更新了Microsoft Web Protection Library 4.3.0,而且又改回原始白名單的方式。

下載:Microsoft Anti-Cross Site Scripting Library V4.3

也可以直接由NuGet直接下載使用。

測試程式碼

Action方法:

 public ActionResult Test()
 {
     return View();
 }

 [HttpPost]
 [ValidateInput(false)]
 public ActionResult Test(FormCollection form)
 {
     ViewBag.SafeHtmlFrag = Sanitizer.GetSafeHtmlFragment(form["content"])
     return View();
 }  
 

[ValidateInput(false)]此屬性有極高安全性風險。這裡只是為了測試方便。

View Page:

 @{
     ViewBag.Title = "Test";
 }

 <h2>Test</h2>

 @ViewBag.SafeHtmlFrag

 <br />

 @using (Html.BeginForm("Test", "Home"))
 {
     <input type="text" name="content" id="content" />
     <input type="submit"/>
 }  
 

資訊安全 - 免費線上掃毒網站整理

同事電腦越跑越慢,問我有沒有線上掃瞄病毒網站,以下順便整理。

如果你只使用免費版的防毒軟體,例如,我使用很久的avast,但又常上一些怪怪網站(或喜歡逛來逛去),有類似不正常的動作…反正感到不對勁,可以利用以下任何一家提供的服務來「健康檢查」一下,以之前的使用經驗,都還不錯。

金剛事件簿 - Some Plurk Fun Talk About Anti-Spam

以下對話來自我Plurk上的一些對話,基本上是"練瘋話"(台),不過覺得有趣,留下來當記念。

  1. 亂擋一通 (from KKBruce)
  2. Anti-Spam filter good (from KKBruce)
  3. Server Crash (email server根本就葛了 from Bill)
  4. Nobody Nobody want you (沒人寄信 from No.18)
  5. 你撥的電話無回應 (網路斷了 from Bruce)
  6. 沒交錢,台電不爽 (機房停電 from Bill)
  7. 找不到Server, 110處理 (server被拆了 from No.18)
  8. 我要成為火影 (一切都是幻覺 from 只能選擇放手)
  9. 我是蛤蜊肉(台) (瞎了,把拉圾郵件當成正常郵了 from No.18)
  10. 馬克,靠!凸!(公司倒閉 from Bruce)

金剛事件簿 - 偷偷摸摸之壹電視網樂通機上盒

停用有線電視與網路

將家中的有線電視與有線電視網路停用。原因主要有:
  1. Cable TV與Cable Net必須一起申請,你能單獨申請Cable TV,無法單獨申請Cable Net。
  2. 每個月Cable TV與Cable Net的費用 1100 ~ 1400 元,這筆費用,我可以每個月拿來投資小朋友新教材,不管買CD、VCD、DVD、書、玩具…都覺得比給孩子看電視來的好。
  3. Cable TV的兒童節目,重播、重播、再重播,我都快要會背稿子了。
  4. 我們看TV與使用Net時間太少,反而都是小朋友在看TV。就算有看,也是吃飯看個半小時的新聞。
  5. 想改走純Internet方案。
純Internet方案,有很多選擇,例如,拿一台NB接電視,然後用PPS,想看什麼播什麼。或是,現在有很多「網路影院」的產品、無線電視台、MOD…,我也有例入考慮。雲呀雲,希望有朵彩虹雲可以用。

簡單說,就是我們家沒有電視的需求,只有網路需求,例如,我們家中的 070 網路電話(節費盒),順便說一下,我在 12/1 日合約到期日,把那不更新軟體 070 軟體網路電話給停用了。我想要只透過網路解決家中的影、音之類的需求。剛好和同事聊天,聊著聊著,同事說,我們的代理商是壹電視網樂通的代理,他手邊剛好有代理商送來的機子(讓我們玩),沒有多久就拿著一台來給我帶回家玩。

壹電視網樂通機上盒試玩心得

  • 除了看節目與影片時,其他什麼都慢。
  • 穩定度…不好。
我拿到時的軟體版本是 247,現在為 251,整個選單的過程就是慢,開機慢,上下慢、左右慢,進出慢,更軟體體也慢,簡言之,就是操作時反應很慢,其他當你開始看節目台(含HD)或電影台時,是OK的。穩定度是指,會當機,一週內有三次,對於我的選擇進入無反應情況,畫面就停在某選單上,通常插拔電後就能回復正常

對於免費的東西,實在不要要求太多,最少看節目與影片時,沒有出過什麼狀況。對於我們只想看看新聞而言,「免費+新聞」,它是能符合我們家的需求。它現在也推出月付 58 元,看電影只要 1 元的方案,實在很有吸引力,但會不會繼續使用,請接下去看。

為什麼說壹電視網樂通機上盒偷偷摸摸


可能是平常工作內容與網路相關,所以對網路動作比較敏感。

試用的前一週,特地花了時間與寶貝們看電影,「心動時刻」、「搶救旭山動物園」都是不錯的日本片,但發現很奇怪的的一件事,為什麼我們看完片子,按下 Power off 後,我的Hub燈號閃的飛快。因為Cable Net的設備只有一個孔,我必須接一台Hub出來才能分接其他070、PC、NB、Wireless…等。看著1, 3孔的燈號閃的飛快,感覺不對勁!(1 是 Cable Net, 3 是壹電視網樂通機上盒)

幾次測試之後,我終於知道原因,原來網通樂在我們按 Power off 後,會偷偷放「廣告」,而且只有聲音沒有畫面。你按 Power off,然後電視不要關,等個約10來秒(看網路速度),你就能聽到廣告的聲音,而且時間還不短。這點讓我很不爽。這就像我們把電腦關機後,還有人用我們的電腦在做其他事一樣,而且是用我們的頻寬在營利他自己,這跟木馬的行為有何不同?

試用是試用,我還是有簽一張正式的簽收單,印象中我沒有看到有如此條約,我又從頭到尾看到二次,我很確定沒有這種行為的條約。我不知道這種行為是否合法,我有發文去問NCC,看NCC回覆吧!

NCC針對網樂通之行為回覆

敬啟者:
  您好!您於12月3日反映「網樂通於關機後仍播放廣告聲音」電子郵件,說明如下:

   網路內容包羅萬象,其所涉各項問題與實體社會一樣,係由各目的事業主管機關依權責處理;本會對於網路內容之管理,係依據本會組織法第3條第5款規定,推動及宣導我國網站內容分級制度。另依100年11月11日立法院三讀通過之兒童及少年福利與權益保障法,賦予本會召集各目的事業主管機關委託民間團體成立內容防護機構等任務,並以「促進業者自律」等更周延的防護機制,保護兒少上網安全。

  壹電視新聞臺雖取得衛星廣播電視節目供應者經營許可,然其經營之網樂通仍屬網路內容,並非以衛星廣播電視法及電視節目分級處理辦法規範;惟為尊重陳情人權益,本會已將您的意見函轉業者請其注意改善。謝謝您的來函,敬祝

闔家平安。                    

 

              國家通訊傳播委員會 敬啟

滿不滿意?

Tool - IntoDNS報告內容全攻略筆記

DNS Server架設需求討論

之前提過一次「選一個安全的DNS伺服器」,不過那是別人架設好的DNS Server,一般而言,如果我們只架Web Server、Mail Server服務,那我們最少在網路上須提供二筆最基本的「記錄,Record」,一個是 A Record、一個是 MX Record

例如,

www.kkbruce.net  A  64.233.183.121
mail.kkbruce.net  A  64.233.183.121
           MX  10 mail.kkbruce.net

DNS 相關知識,不是今天的主題,我不深入討論。

我們在申請Domain時,Domain服務供應商都會有 DNS 代管服務,而且會提供我們一個基礎或進階DNS管理的功能,有些 Domain 服務供應商提的 DNS 功能很全面,有些很入門。如果你 Domain 是在台灣申請,絕大部份所提供的 DNS 管理功能都很入門,有些更只有少少幾筆數的A記錄和MX記錄。

當個人或公司,剛好對外只提供Web或Mail服務時,簡單的幾筆的A記錄與MX記錄,確實是足夠用,代管省成本、省頻寬、省硬體…,且這些 Domain 供應商的DNS伺服器都很穩定。通常不夠用時,我們就必須自己架設DNS Server來提供解析服務。這裡先說明,因為Domain轉換供應商有一定的限制與條件,並不是想轉換就可以立即轉換,如果你符合轉換件條,當然可以轉換到DNS管理功能較全面的供應商,不過,通常是「當務之急」,所以我說「必須自己架設」。

DNS Server是整個網路的基礎,沒有它整個網路就是廢物。架好了,並不代表設定沒問題。DNS本身有一堆的RFC文件,一般人也不太可能為了架一台DNS Server去讀那些RFC文件,我們必須能很快速找出設定問題。早期,或是你年紀大一點,大概都是使用dnsstuff.com所提供的測試服務,不過後來dnsstuff轉換經營方式,我就很少使用dnsstuff了。後來,又在網路上找到了另一個intoDNS提供DNS測試服務。

intoDNS測試的好處是「快」,一般我們修改 DNS 後,還必須等到上層的DNS Server(例如,ISP的DNS Server)快取時間結束,重新抓取我們DNS Server裡Record內容後,"使用者"或"我們"才能知道修改結果正確與否。但使用intoDNS測試我們的DNS設定時,通常你修改完DNS,intoDNS通常就能抓取最新的結果,這可以省下我們許多時間。(不過還是會受上層DNS Server快取的影響)

有一點要注意,intoDNS只能針對「第一層」的Domain進行測試,即「kkbruce.net」是OK,但像「ns1.kkbruce.net」第二層Domain,intoDNS就不進行測試。

intoDNS Report正體中文解釋


以下就我申請的 kkbruce.net 網域名稱進行測試,http://www.intodns.com/kkbruce.net所提供的報告內容,簡單進行說明。(基本上,只要不出現紅色驚嘆號,就是OK)

System - Gigabit Switch Survey | Gigabit Switch 評估

Switch燒了燒了

某年某月的某一天,使用者突然走到我的面前說:「Bruce,我的電腦不能上網。」當下說「是的,船長」(Boss)」,當然是拉高為超緊急事件,超極速處理。

電腦網路無連線狀況,一般有線網路很少會這樣?快步衝到機房,呀,有燒焦味!到機櫃前看看 Switch LED 燈不亮,聞聞看,就是它了。一台服務多年的 10/100 24 port switch hub 燒了。(心裡暗爽中)

回頭報告,順便請船長來查看聞聞味道,說明這些 Switch 都很舊很舊了,實在應該汰舊換新了,一台 Switch 掛了,代表有 24 port、24台電腦、24個人工作受影響,而且沒有人會隨時準備一台 24 port switch 等著要換。

這樣的說明,這樣的需求很讓人接受。Boss點點頭後說:「OK,你去 Survey 一下。」(再爽一次)

資訊安全 - MSN帳號被盜

同事MSN帳號被盜,結果只能看著盜者跟朋友對話。

Je 說:

www.wryochnncnwblog.in

^^來看我的部落格幫我衝衝人氣^^

Ja 說:

好

Je 說:

在嗎

Ja 說:

在

你不是下班了

Je 說:

嗯嗯

我現在用筆電

Ja 說:

東西忘了拿嗎

Je 說:

你還沒有下班嗎

Ja 說:

嗯

還在公司寫報告

Je 說:

可以幫我個忙嗎

Ja 說:

可以

Je 說:

可以幫我買幾張MY CRAD卡嗎

Ja 說:

這是什麼東東

Je 說:

儲值用的 

你和店員說買儲值用的MY CARD卡他們就瞭解啦

7 11 全家有買的

Ja 說:

買幾張

Je 說:

幫我買4張面額1000的

Ja 說:

鬼撞牆之IE, Chrome, Firefox無法連上MSDN (3) 之問題Cookie

實在不好意思,假日我是一位超奶(超級奶爸),實在只能利用寶貝們上床的時間,來進行這個「鬼撞牆」任務。也好,將每個任務切小小的,一步步追的過程,到不像那種「幾個字,花幾小時」那種經驗的辛苦。

不過,心裡一直掛念著,到是真的。

回首鬼撞牆


我在「鬼撞牆(1)」出事,但也亂搞出一個解決辦法,也得到是因為 Cookie 造成 MSDN 錯誤,但沒留下任何蛛絲馬跡。在「鬼撞牆(2)」也就第二天,又再次出事,而且這次連第一天能正常連線的 Firefox 也無法正常運作,但也拜問題重顯之福,這次我小心翼翼把玩這 IE, Chrome, Firefox 裡的 Cookie,最後終於讓我找到有問題源頭 Cookie。

以下是有問題 Cookie 的XML檔,From IE F12 開發者工具:
<?xml version="1.0" encoding="UTF-8"?>
<log>
	<version>1.1</version>
	<creator>
		<name>Internet Explorer 網路檢查</name>
		<version>9.0.8112.16421</version>
	</creator>
	<browser>
		<name>Internet Explorer</name>
		<version>9.0.8112.16421</version>
	</browser>
	<pages>
		<page>
			<startedDateTime>2011-09-04T13:34:51.695+08:00</startedDateTime>
			<id>0</id>
			<title/>
			<pageTimings>
				<onContentLoad>227</onContentLoad>
				<onLoad>238</onLoad>
			</pageTimings>
		</page>
	</pages>
	<entries>
		<entry>
			<pageref>0</pageref>
			<startedDateTime>2011-09-04T13:34:51.695+08:00</startedDateTime>
			<time>187</time>
			<request>
				<method>GET</method>
				<url>http://msdn.microsoft.com/</url>
				<httpVersion>HTTP/1.1</httpVersion>
				<cookies>
					<cookie>
						<name>TocHashCookie</name>
						<value>ms310241(n)/</value>
					</cookie>
					<cookie>
						<name>WT_NVR</name>
						<value>0=/:1=zh-tw|library:2=zh-tw/library:3=zh-tw/library/community</value>
					</cookie>
					<cookie>
						<name>A</name>
						<value>I&amp;I=AxUFAAAAAAChBwAANNr2/wpKagArfkiaPMsnCg!!&amp;M=1</value>
					</cookie>
					<cookie>
						<name>omniID</name>
						<value>1315124990139_6d2f_5340_cefd_9babfa8cc553</value>
					</cookie>
					<cookie>
						<name>WT_FPC</name>
						<value>id=123.195.36.172-230651568.30156417:lv=1315068214015:ss=1315067390233</value>
					</cookie>
					<cookie>
						<name>WT_NVR_RU</name>
						<value>0=msdn:1=:2=</value>
					</cookie>
					<cookie>
						<name>msdn</name>
						<value>L=1028</value>
					</cookie>
					<cookie>
						<name>Microsoft.com</name>
						<value>SS=1&amp;SS_Refn=0&amp;SS_Url=http://social.msdn.microsoft.com/Search/zh-tw?query=cg&amp;x=0&amp;y=0~~2011/9/4 �� 08:43:07</value>
					</cookie>
					<cookie>
						<name>MUID</name>
						<value>BC2FDEB409EB4230B987BCDF6A394146</value>
					</cookie>
					<cookie>
						<name>MSID</name>
						<value>Microsoft.CreationDate=09/04/2011 08:43:09&amp;Microsoft.LastVisitDate=09/04/2011 08:43:28&amp;Microsoft.VisitStartDate=09/04/2011 08:43:09&amp;Microsoft.CookieId=ea95f0a2-d7b6-4f08-baea-3d683e4148a8&amp;Microsoft.TokenId=ffffffff-ffff-ffff-ffff-ffffffffffff&amp;Microsoft.NumberOfVisits=3&amp;Microsoft.CookieFirstVisit=1&amp;Microsoft.IdentityToken=AA==&amp;Microsoft.MicrosoftId=0102-2054-3786-4152</value>
					</cookie>
					<cookie>
						<name>MC1</name>
						<value>GUID=afc3a69a2c9a6349a2f3679acf03f697&amp;HASH=9aa6&amp;LV=20119&amp;V=3</value>
					</cookie>
					<cookie>
						<name>ADS</name>
						<value>SN=175A21EF</value>
					</cookie>
				</cookies>
				<headers>
					<header>
						<name>Accept</name>
						<value>text/html, application/xhtml+xml, */*</value>
					</header>
					<header>
						<name>Accept-Language</name>
						<value>zh-TW</value>
					</header>
					<header>
						<name>User-Agent</name>
						<value>Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)</value>
					</header>
					<header>
						<name>Accept-Encoding</name>
						<value>gzip, deflate</value>
					</header>
					<header>
						<name>Host</name>
						<value>msdn.microsoft.com</value>
					</header>
					<header>
						<name>Connection</name>
						<value>Keep-Alive</value>
					</header>
					<header>
						<name>Cache-Control</name>
						<value>no-cache</value>
					</header>
					<header>
						<name>Cookie</name>
						<value>TocHashCookie=ms310241(n)/; WT_NVR=0=/:1=zh-tw|library:2=zh-tw/library:3=zh-tw/library/community; A=I&amp;I=AxUFAAAAAAChBwAANNr2/wpKagArfkiaPMsnCg!!&amp;M=1; omniID=1315124990139_6d2f_5340_cefd_9babfa8cc553; WT_FPC=id=123.195.36.172-230651568.30156417:lv=1315068214015:ss=1315067390233; WT_NVR_RU=0=msdn:1=:2=; msdn=L=1028; Microsoft.com=SS=1&amp;SS_Refn=0&amp;SS_Url=http://social.msdn.microsoft.com/Search/zh-tw?query=cg&amp;x=0&amp;y=0~~2011/9/4 �� 08:43:07; MUID=BC2FDEB409EB4230B987BCDF6A394146; MSID=Microsoft.CreationDate=09/04/2011 08:43:09&amp;Microsoft.LastVisitDate=09/04/2011 08:43:28&amp;Microsoft.VisitStartDate=09/04/2011 08:43:09&amp;Microsoft.CookieId=ea95f0a2-d7b6-4f08-baea-3d683e4148a8&amp;Microsoft.TokenId=ffffffff-ffff-ffff-ffff-ffffffffffff&amp;Microsoft.NumberOfVisits=3&amp;Microsoft.CookieFirstVisit=1&amp;Microsoft.IdentityToken=AA==&amp;Microsoft.MicrosoftId=0102-2054-3786-4152; MC1=GUID=afc3a69a2c9a6349a2f3679acf03f697&amp;HASH=9aa6&amp;LV=20119&amp;V=3; ADS=SN=175A21EF</value>
					</header>
				</headers>
				<queryString/>
				<headersSize>1228</headersSize>
				<bodySize>0</bodySize>
			</request>
			<response>
				<status>502</status>
				<statusText>Bad Gateway</statusText>
				<httpVersion>HTTP/1.1</httpVersion>
				<cookies/>
				<headers>
					<header>
						<name>Content-Type</name>
						<value>text/html</value>
					</header>
					<header>
						<name>Location</name>
						<value>http://msdn.microsoft.com/zh-tw/default.aspx</value>
					</header>
					<header>
						<name>Server</name>
						<value>Microsoft-IIS/7.5</value>
					</header>
					<header>
						<name>P3P</name>
						<value>CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"</value>
					</header>
					<header>
						<name>X-Powered-By</name>
						<value>ASP.NET</value>
					</header>
					<header>
						<name>Date</name>
						<value>Sun, 04 Sep 2011 13:34:43 GMT</value>
					</header>
					<header>
						<name>Content-Length</name>
						<value>89</value>
					</header>
				</headers>
				<content>
					<size>89</size>
					<mimeType>text/html</mimeType>
					<text>The specified CGI application encountered an error and the server terminated the process.</text>
				</content>
				<redirectionURL/>
				<headersSize>333</headersSize>
				<bodySize>89</bodySize>
			</response>
			<cache/>
			<timings>
				<send>0</send>
				<wait>187</wait>
				<receive>0</receive>
			</timings>
		</entry>
	</entries>
</log>

鬼撞牆之IE, Chrome, Firefox無法連上MSDN (2)

我發現我的第一篇「鬼撞牆之IE, Chrome無法連上MSDN」很快就開始救人了。而且發現,Search此錯誤訊息而到我 Blog 的人也多了起來。

 今天更發現,連 Firefox 也逃不過此 MSDN 錯誤訊息:「The specified CGI application encountered an error and the server terminated the process.」,MSDN 的災情擴大了。

圖一:Firefox with MSDN CGI error message (點小圖看大圖)
而且,這一次發生時,連原本的 IE, Chrome 都再一次重覆中獎。這也讓我可以抓個Cookie的圖片,補上前一篇沒抓到 Cookie 任何資料的遺憾。

圖二:IE 產生 CGI 時的 Cookie 狀態 (圖小圖看大圖) 
圖三:IE 使用 F12 開發者工具清除 Cookie後,重新連線後的 Cookie (點小圖看大圖)
不過,此次清除後。我在點擊沒幾頁後,馬上就再出現此 CGI 錯誤,也有很大的機會是「下一頁」馬上中獎。

我只能望天而問:MSDN 你怎麼了???

參考:

鬼撞牆之IE, Chrome無法連上MSDN

假日,趁著孩子還在睡覺,打開電腦上一下網。想要回答一位網友的問題,想到 MSDN 找連結,以讓網友可以自行參考資料,進而解決問題。

但沒想到,一開 MSDN 就出事。我連開 Chrome, IE 都是一樣的問題,出現一個錯誤訊息:「The specified CGI application encountered an error and the server terminated the process.」

圖一:Chrome 無法連線 MSDN

圖二、IE 無法連線 MSDN
本來想說,是不是 MSDN 知道我們的辛苦,假日會很 AI 的讓我們休息。後來到 Plurk 去發個文,想不到小朱大大馬上回應說:「很正常」。我去清 IE 的快取,重新連,一樣的錯誤!接著打開我的第三個瀏覽器 Firefox,很好,見鬼了,Firefox 可以很正常連線。

Google Chrome之--user-data-dir參數可曝光使用者設定資料

在「Dataram RAMDisk」這篇裡,我們在最後有提到一個Google Chrome的參數(--user-data-dir=...)的使用,可以你Google Chrome的暫存資料設置到你指定的磁碟目錄去。

後來在我們家Windows 7上發現一個Google Chrome安全性問題,原來--user-data-dir不只是存暫資料,它連使用資料也一起暫存。如果你有更改使用--user-data-dir參考,一定會發現,第一次修改使用Google Chrome,怎麼原本的書籤…等設定全部不見了,因為指定到一個「空白目錄」給Google Chrome,所以第一次啟動,就給你一個空白的使用者設定的Google Chrome。

你如果要將原始的「使用者設定資料」拿回來可以到「C:\Users\[UserName]\AppData\Local\Google\Chrome\User Data」目錄下(請自行修改[UserName]),將所有資料夾複製到你設定--user-data-dir的目錄去,然後重開Google Chrome,噹~噹~噹,所有書籤…等資料又回來了。

好了,那我所說的Google Chrome安全性問題在哪裡?因為家中電腦有多人使用,所有設定多個帳號,每個帳號我都會進去幫忙做RamDisk的參數設定,以加快系統運作速度。

RamDisk暫存目錄


Temp
--OS
--UserBruce
--UserSherry
--Chrome
--IE
--MF
--VisualStudio

以上就是我原本的規劃及設定。

OS是系統暫存資料夾,因為是全域性,所以一個就夠了;UserBruce / UserSherry是使用自己的暫存資料夾,依帳號數量新增;Chrome / IE / MF為瀏覽器暫存目錄;VisualStudio為VisualStudio編譯暫存目錄。

後來在使用Sherry這個帳號上網時發現,怎麼我原先Google Chrome裡的東西,原封不動的出現在Sherry帳號裡的Google Chrome裡(我也設定了--user-data-dir到一樣的目錄),這時才發現不對哦。

原來是我設錯了參數,Google Chrome裡還有另一個參數是「--disk-cache-dir=」,兩者的差異是:

--disk-user-dir=
如果沒有設定「--disk-cache-dir=」,它會包含「使用者設定」及「快取目錄」兩者,它會把使用者設定及快取放在同一個目錄之下。

--disk-cache-dir=
設定「快取目錄」。

所以我修改原先的暫存目錄

Temp
--OS
--UserBruce
--UserSherry
--ChromeBruce (給Bruce帳號存自己的使用者資料)
--ChromeSherry (給Sherry帳號存自己的使用者資料)
--ChromeCache (快取目錄,大家共用)
--IE
--MF
--VisualStudio

Google Chrome之--user-data-dir參數可曝光使用者設定資料

如果你想看其他人Google Chrome的相關設定(當然最好不要),由以上可以看見,只要我修改「--disk-user-dir=」到其他人所在的目錄,就可以載入其他人的使用者設定,這在IE或MF我是沒有發現此問題。

應該是目前Google Chrome設計上的問題,算不算Bug?這就見人見知了。

所以小心,還是不要在「公用」電腦使用Google Chrome瀏覽器。

Reference:

Tool--如何做硬碟檢測(HDD Test)

雖然我買了新電腦,但還是有一些舊零件,例如,HDD、CD-ROM、DVD-ROM,其中對系統影響最大的是「HDD」,早上起來一開機,怎麼就來個Error,怎麼樣!一定要我全部整組換新的就對了,雖然我是真的很想裝個Sata 3的HDD來玩。

Raid提示HDD1出錯

Error Occurred(0)

我必須先確是HDD壞了,才能上奏女皇,請示是否能殺豬公來買Sata 3的HDD!

一般硬碟檢測步驟

  1. 確認馬達是否有「咔、咔、咔」的異音
  2. 確認是否有「壞軌」
早期的HDD有聲音是正常的,不管是咔、咔、咔,還是讀取資料時都會很吵,現在的HDD應該不太會有聲音,如果有不正常的聲音,那應該就是HDD馬達出問題了,保固內就拿去換一顆最快,不過我的WD HDD沒有異音。

「壞軌」的確認,就必須使用國人之光「SPFDisk」軟體幫助,使用DOS開機光碟,然後執行SPFDisk程式,進行壞軌確認,依HDD容量大小時間不定。通常到這裡,我就能抓出80% ~ 90% HDD的問題,壞軌是我最常遇到的HDD損壞的情況,不管是一般HDD、高階HDD、企業級HDD都一樣。

但目前看起來,不是1也不是2。

進階硬碟檢測

我要做進一步硬碟檢測,因為我系統已經開不了機,所以無法使用Windows相關程式,例如HD Tune、HDD Life、MHDD…等等工具,所以想想我們來借助「最好的工具」幫忙。什麼是最好的工具?最好的工具就是「原廠」所提供的工具。其實這是HDD大廠都有提供不錯的檢測工具,只是一般人不去使用,這比較可惜,就利用這一次的機會,幫我的HDD做個全身健康檢查。

我主HDD是兩顆WD Caviar SE16 640GB,我們到WD的下載中心,找到對應型號,可以找到一個Data Lifeguard Diagnostic工具,它有純DOS、ISO(CD)、Windows三個版本,下載ISO最簡單,它已經幫你做好開機光碟及相關設定,只要把ISO檔直接燒進CD裡就行了。

將BISO設定為光碟開機,

會先請你閱讀授權條文,按ESC,

會問你是否同意授權條文,按Y,

主畫面

檢測

詳細測試(會先做一次快速測試,再進行詳細測試)


Data Lifeguard Diagnostic選項

請對照主畫面與以下選項說明:
  • 選擇硬碟 - 請務必首先選擇這個選項,因為這個選項確定您將會使用哪個硬碟。
  • 快速測試 - 這個選項會快速測試您的硬碟有沒有任何主要的物理問題。(請注意:雖然這個選項是安全的,並且不會改動您硬碟上的數據,但是 Western Digital 建議您為目前的數據做備份)。
  • 詳細測試 - 這個選項會徹底檢查硬碟並可修正任何可改正的錯誤。(請注意:雖然這個選項是安全的,並且不會改動您硬碟上的數據,但部分數據可能會遺失,這要視乎找到什麼錯誤及用什麼方法修正錯誤。Western Digital 建議您為目前的數據做備份)。
  • 對硬碟執行 WRITE ZEROS - Write Zeros 選項會清除硬碟所有的數據。這個選項是在您的數據再沒有任何用處或不能回復時才使用。假如您不再需要硬碟上的數據並且想從頭開始,那請執行這個選項,將您的硬碟重新設定。注意:請確定您選擇了正確的硬碟以執行這個功能,因為一經執行,所有數據都不能回復。
  • 觀看測試結果 - 您可以看到剛才執行的測試結果
  • 列印測試結果 - 利用這個選項可將測試結果列印出來。不支援 USB 打印機
  • 登錄檔開啟 / 關閉 - 您可存取自動生成的登錄檔
  • 輸入並列印 RMA 資訊 - 每個受測試硬碟的資訊都可利用這個選項自訂和列印。
  • 說明 - 這個選擇附有每個選項的簡短描述及錯誤代碼的解釋。
  • 退出 - 在完成所選擇的工作後,重新啟動系統。
執行順序:「快速測試 → 詳細測試(我640GB花了近2 hr) → Write Zeros → 觀看測試結果」,如果都沒有問題,那基本上你的這顆WD HDD是安全的。

我還有一顆Seagate HDD,也順便檢測一下,步驟差不多,可以參考Seagate原廠的「Seatools for DOS 教程」或聯強e城市「如何在DOS模式下利用SeaTools for DOS做硬碟機檢測?」:
  1. 下載ISO
  2. 燒開機光碟
  3. BIOS,由光碟開機
  4. 進入檢測工具
  5. 進行檢測

HDD 檢測結果

看來暫時與Sata 3無緣份。@_@

經過數小時的檢測,看來我的WD與Seagate都無法換新,應該是我MB的Raid0本身在存取時出錯,重建後Raid0後,利用Windows 7的系統修復光碟來還原,用飛快的速度,我的Windows 7重灌好了,再次高聲說:Windows 7的備份與還原,我愛你!

Reference:

Windows 7內容索引類別目錄已損毀之重建步驟

我習慣性會去看「事件檢視器」,在新灌好的Windows 7電腦中,看到一個Search錯誤,做個筆記:

記錄檔名稱: Application
來源: Microsoft-Windows-Search
日期: 2011/2/13 上午 10:28:51
事件識別碼: 7042
工作類別: 收集程式
等級: 錯誤
關鍵字: 傳統
使用者: 不適用
電腦: Bruce-PC
描述:
Windows Search 服務正在停止,因為索引器 The catalog is corrupt 發生問題。
詳細資料:
內容索引類別目錄已損毀。 (HRESULT : 0xc0041801) (0xc0041801)
事件 Xml:


704202300x80000000000000
584

ApplicationBruce-PC




詳細資料: 內容索引類別目錄已損毀。 (HRESULT : 0xc0041801) (0xc0041801)
The catalog is corrupt
它有提供解決步驟:


http://technet.microsoft.com/en-us/library/dd364741(WS.10).aspx


Manually rebuild the index

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To delete the catalog and rebuild the index:


  1. Click Start and then click Control Panel.
  2. In Classic View of the Control Panel, double-click Indexing Options.
  3. Click Advanced.
  4. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  5. On the Index Settings tab, click Rebuild.
  6. Click OK.

Verify

To verify that files are being indexed:


  1. Click Start and then click Run.
  2. In the Run dialog box, type notepad.exe. Notepad should open.
  3. Type an unusual keyword or phrase in the new document, and then save the file to your My Documents directory or to another directory that is being indexed.
  4. Click Start, and then type your new keyword or phrase in the Search box. The file you created using Notepad should appear in the Search Results window.
Reference:

avast 5 防毒軟體造成無法上網

家裡電腦使用Avast防毒軟體已經多年,我認為最棒的是,他們從來不「騷擾」用戶,他們稱有數億的免費用戶,但我基本上沒收過他們的EDM,他們不會收集到一堆Email資訊後,就趕快拿來做廣告…連我目前的公司都做不到。

不過近來有件事一直困擾我,就是電腦會有意無意的無法上網,Browser會出現類似:


怪的是,我查設定,ping網路,都是正常的,原以為是分享器的問題,來後換了一台新的,好沒數個小時,又出現一樣的問題。我直接接到Model上網,所有情況一樣,IP、ping…都是正常,就單單只有網頁無法連線,實在奇怪。

後來懷疑會不會是被防毒軟體擋下,隨之關閉,然後…一切正常了,把防毒開啟,又無法上網。


你可以單獨關閉「網頁防護」這一項,但想想應該不只有我碰到,上網找到這一篇,原來…我的最愛也是會犯錯。

Step 1:


Step 2:


你必須把「HTTP連接埠」中的「80」刪除,然後一切就回覆正常了。
Reference:

ASP.NET -- 發送內嵌圖片Email

在前篇「當Data URI碰上Email」誤把內嵌圖片當成Data URI,實在抱歉,還有好網友提醒,不然實在不查,寫了也就忘了。

EMail的圖片處理

我們先了解EMail裡的圖片,當我們收到一封圖文並茂的Email,裡面的圖片怎麼顯示出來,或正確的說來源從那裡來?

一般而言Email圖片來源有三種:
  1. 附件
  2. 網址
  3. 內嵌
附件這常用,就不多解釋,但早期以附件最多。網址,也就是在Email裡的HTML的img標籤中src屬性設定為「網址」,當我們打開Email,它會幫我們載入這些網址所對應的圖片,好處是Email容量不會長的很胖,想想當Email圖用的越多,你又把它全部以附件附在裡面,那可是會變成小胖妹!

最後的「內嵌」,想成我們在打Word,在Word內插入一張圖片,這張圖會被Word實實在在的複製一份到Word裡,所以插入的越多,Word就越胖。但也就是因為圖片都已經含在Word檔案裡,所以你只要帶著這份Word檔案,不管到那裡,只要打得開,你都能看到Word檔案裡的圖片,而且不用把圖片和Word都必須複製一份放在一起才行。

Email的內嵌圖片原理大致上與Word插入圖片相似,這也就是我碰到的那可以直接顯示圖片Email所用的技術。

那好奇,我們ASP.NET可不可以?是的,一點問題也沒有,而且還很簡單,我們直接看Code,我在首頁放一個「Button控制項」及「Label控制項」:

Protected Sub Send_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Send.Click
  Dim m As New MailMessage()
  m.From = New MailAddress("發信者Email")
  m.To.Add(New MailAddress("收件者Email"))

  ' http://msdn.microsoft.com/zh-tw/library/system.net.mail.mailmessage.attachments.aspx
  ' Attachments, 有s,這是集合,也就是可以含很多檔案
  m.Attachments.Add(New Attachment("圖片路徑"))
  ' ContentID:http://msdn.microsoft.com/zh-tw/library/system.net.mail.attachmentbase.contentid.aspx
  ' 重點一:必須設定這個附件MIME內容ID,名稱可以自訂
  m.Attachments(0).ContentId = System.Guid.NewGuid.ToString()
  ' ContentDisposition.Inline:http://msdn.microsoft.com/zh-tw/library/system.net.mail.attachment.contentdisposition.aspx
  ' 重點二:附件的展示資訊,設定為內嵌(Inline = True)
  m.Attachments(0).ContentDisposition.Inline = True

  m.Attachments(0).NameEncoding = Encoding.UTF8
  m.SubjectEncoding = Encoding.UTF8
  m.BodyEncoding = Encoding.UTF8

  m.Subject = "內嵌KKBruce個人照測試"
  m.IsBodyHtml = True
  ' 第三個重點,img的src屬性與a的href屬性必須是"cid:"接我們剛才設定的ContentID
  ' 這樣就能直接讀取Email裡內嵌的圖片
  m.Body = String.Format("<img src=""{0}"" alt=""這是我金剛個人照"" /><br /><a href=""{0}"" target=""_blank"">點擊看照片</a>", "cid:" & m.Attachments(0).ContentId)

  Dim s As New SmtpClient
  s.Port = 25
  s.Host = "ServerIP"
  ' 以下為SMTP認為之帳號及密碼
  s.Credentials = New System.Net.NetworkCredential("帳號", "密碼")

  Try
    s.Send(m)
    state.Text = "傳送成功。"
  Catch ex As Exception
    state.Text = "傳送失敗:" & ex.Message
  End Try
End Sub

重點我都寫在註解裡了,主要是透過ContentId與ContentDisposition.Inline兩個屬性來實作出內嵌圖片的Email,讓我們來看看結果。


這是一封有「附件」的Email,


將滑鼠移至「點擊看照片」,你就能看到提示「cid:GUID」,cid:名稱,只要與ContentId相符即可。

我們來看原始檔內容:

<img src="cid:3f041322-0525-4fb7-b28a-377ba9313239" alt="這是我金剛個人照" /><a href="cid:3f041322-0525-4fb7-b28a-377ba9313239" target="_blank">點擊看照片</a>

Where in KKBruce Photo?

這種內嵌圖片很好玩,雖然Outlook提示是有附件,但你找不到,就算你使用「儲存所附件」,


依然空空。

其實它已經和Email合為一體了,在Outlook 2010,你必須選擇「檔案」「資訊」「內容」 :

…以上刪除…
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

Content-Type: application/octet-stream; name=kingkong.jpg
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: <3f041322-0525-4fb7-b28a-377ba9313239>
…以下刪除…

找一下有沒有看到很相似的東西,這就是我們的那張圖,名稱是kingkong.jpg,其他就如同我們的設定。

最後,我還沒有找到讓Outlook 2010不要直接顯示內嵌圖片的設定,如果你知道,麻煩跟我說一聲。

新通用頂級網域名稱(New gTLD)新知加嚇人的費用

如果你上網時看到的結尾是二字元結尾,如.tw、.hk、.jp、.cn等稱為國家頂級網域名稱(Country Code Top Level Domain, ccTLD),或者三字元結尾,如.com、.org、.net等稱為通用頂級網域名稱(Generic Top Level Domain, gTLD)

目前全球的gTLD還不是很多,但網際網路名稱與號碼分配機構ICANN(Internet Corporation for Assigned Names And Numbers)有意開放新的gTLD讓人申請,也就是我也可以申請一個".bruce"或以國家全稱為單位的域名,如".taiwan",或是公司品牌,如".google"、".facebook",這樣的域名稱為新通用頂級網域名稱(new gTLD),這樣的域名更簡潔更直觀。

但這不是給平民百姓玩的,在ICANN的文件中明白寫下申請費用為US 185,000,以1:30換算約5,550,000新台幣。

然後是有一家台灣的廠商,最近一直打廣告說,可以幫忙申請new gTLD,我很好奇去問了一下,他們的規劃書有個字眼是「遊說」,遊說要錢的,零零總總費用是US 300,000以上,以1:30換算約9,000,000新台幣。

人客呀,如果你未來(預計2012上路)在網上看到這種超貴、超頂級的域名,拜託請起立,跟它鞠躬一下,因為你看到的是一個價值近「億」的域名,這大概就是Domain裡的超跑吧!

當Data URI碰上Email

新年將至,Email裡的Anti-Spam也多了起來,賣藥、股票、發票、貸款、在家創業…等一堆,但有一封Anti-Spam引起我的興趣。

第一,它能正確到我的收件匣;
第二,它能在不經過我同意下顯示出圖片

我使用的是Outlook,信件都是先經過TrendMicro Solution,再進到Outlook,Outlook本身的辨識率也還不錯,應該有95%以上,都能正確把Anti-Spam送進「垃圾郵件」中,就算有漏網之魚,一般而言,圖片會先經過使用者同意後才會顯示,例如,


但這封Anti-Spam,可以無視Outlook的安全設定,直接顯示圖片,如:


因為不是第一次了,感覺到不對,查看了一下原始碼,原來:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    
  </head>
  <body bgcolor="#ffffff" text="#000000">
<center>
<img border="0" src="cid:0271d15f7b22$b60be514$563c53f5$AAIVYSH" width="550" height="350" align="center">
</center><br>
Salvador Bailey
  </body>

</html>


看出來了嗎?它img的src路徑怪怪的,那是什麼東東?那個東西稱「Data URI」,所以結論是,使用Data URI可以的Email可以「繞過」Outlook的安全設定。

技術真是兩面刃,Data URI是個好東西。槍可以殺人,也可以救人,依使用者而定。

下載使用Data URI的Anti-Spam (7z)


以上郵件是使用「內嵌圖片」技術,細節我在另寫一篇「ASP.NET -- 發送內嵌圖片Email」解釋。感謝網友的提醒。

Reference:

收不到客戶信件之Gmail

近期(一~二週),有許多同事反應會收不到客戶的信件,或是等了很久才會收到,後來幾經測試及查詢後,應是Gmail的問題。因為所有的來往的信件都與Gmail有關。

找了一下,Gmail有開一個「Gmail幫助論壇」(看了幾頁的留言,不太認為有官方人員在上面),如果你也有碰到這樣的問題,也請上去反應一下,試試看吧!

最早發佈者是2010-11-30日,但今天早上(2010-12-27日),公司有還使用者在問我「為什麼收不到客戶的信件」?我們的Mail Server怎麼了?

這我真不知道怎麼幫?

Microsoft AntiXSS Library 3.1 Upgrade 4.0

如果你的網站有讓人家「輸入資料」,那必須非常小心的處理,在以前,我們必須寫很多檢查程式,前面javascript檢查一遍,後面再用VBScript(ASP)或Visual Basic(ASP.NET)再檢查一遍,反正這種檢查永遠不嫌多。

一般而言,為了要保護好網站,所以這種檢測、檢查的程式就可以寫很多很多,在ASP.NET最簡單的方式就是拉Validator控制項,如果更進一步就寫些JavaScript來加強,但一山還有一山高,總是有人有得出辦法去過去,不然SQL Injection、XSS…都已經出現多少年,還是有一堆網站被它們打敗,你可以看看「XSS (Cross Site Scripting) Cheat Sheet」或「Ultimate XSS CSS injection」這裡面的功擊情境,Try it,你寫的檢測Code能防的了幾種,我是看的頭都花了。

再來,寫JavaScript有個壞處,就是你的處理方式,只要懂的人就能把你的JavaScript內容看光光,知道了你的處理方式,我們就能開始設計跳過你處理方式的方法。ASP.NET的Validator控制項是不錯,但Validator控制項只合適用來檢測一些簡單的需求,如果複雜些的,那Validator控制項還是不好用,不相信,簡單,一樣使用Validator控制項去檢測上面那些攻擊情境的內容看看。

那Regular Expression呢?不多說,這是張王牌,但使能用它的人,必須有很好的內功,不然你是練不了它的。

後來發現了一個非常好用的函式庫「Microsoft Web Protection Library」,我是從AntiXSS Library 3.1版開始使用,此函式庫不得了,AntiXSS Library會幫你進行內容過濾的動作,將有害的內容剔除與替代,給你一個受保護的環境。在AntiXSS Library 3.1就能保護我上面所提「XSS (Cross Site Scripting) Cheat Sheet」與「Ultimate XSS CSS injection」的所有攻擊情境,這讓我們用起來安心,用起來爽歪歪。

我不敢保證,AntiXSS Library能100%保護我們不受功擊或不讓功擊成功,但最少基礎上的保護,別人如果是70分,你使用AntiXSS Library後,我們會加到90分以上,所以我極推薦AntiXSS Library。想像是幫「網站」裝防毒軟體,有裝有保佑。

Microsoft AntiXSS Library 3.1 Upgrade 4.0

在更新AntiXSS Library 3.1 DLL檔至4.0版之後,發現一些內容上的差異,在Visual Studio 2010中,會提供原先使用AntiXSS Class過時的訊息,查了一下4.0的手冊,還直的沒有AntiXSS的內容,取代的是Sanitzer Class(Sanitzer,清潔劑,取的真好),用法與AntiXSS一樣,Sanitzer.GetSafeHtml()、Sanitzer.GetSafeHtmlFragment()。

加入Microsoft AntiXSS Library 4.0參考

在專案或網站的「Bin」目錄下,按右鍵選擇「加入參考」,選擇「瀏覽」,找到安裝Microsoft AntiXSS Library的目錄,一般是在「...\Microsoft Information Security\AntiXSS Library v4.0」之下(你可同時安裝3.1與4.0),你可以找到兩個DLL檔,AntiXSSLibrary.dll與HtmlSanitizationLibrary.dll,如果你有使用AntiXSS Library 3.1,要與舊版程式碼相容,那就參考新的AntiXSSLibrary.dll;如果你是要使用AntiXSS Library 4.0功能,那就參考HtmlSanitizationLibrary.dll,參考完在使用前先「Imports Microsoft.Security.Application」(Visual Base)、「Using Microsoft.Security.Application」(C#)即可使用。

Sanitzer Class

Dim s1 As String = Sanitizer.GetSafeHtml(tbxNamen.Text)
Dim s2 As String = Sanitizer.GetSafeHtmlFragment(tbxName.Text)

' Encoder Class也是AntiXSS Library所提供
Response.Write(Encoder.HtmlEncode(s1))
Response.Write(Encoder.HtmlEncode(s2))

我們輸入含Tag(<b> KKBruce </b>)的內容,我們看一下結果:
<!-- s1的內容 -->
<html>

<body>

<b>KKBruce</b>

</body>

</html>


<!-- s2的內容 -->
<b>KKBruce</b>

我們輸入含Script Tag(<script> alert('Hello world!');</script>),我們看一下結果:
<!-- s1的內容 -->
<html>

<head>

</head>

</html>



<!-- s2的內容,空空如也,什麼都沒有,已經被過濾剔除 -->


Sanitizer.GetSafeHtml()會傳回一個完整的HTML架構內容,而Sanitizer.GetSafeHtmlFragment()是就傳回你所傳入的內容。注意第二個含Script例子,它被AntiXSS Library 4.0認定為有害內容,所以就回傳一個「String.Empty」給你,這點與AntiXSS Library 3.1不同,如果你是使用AntiXSS Library 3.1 upgrade AntiXSS Library 4.0,這部份有所不同,請參考AntiXSS Library 4.0手冊。

你可以繼續Try其他SQL Injection、XSS…等,你應該會得到很滿意的結果。

結論是,愛它(網站)就要保護它,請多多利用這個免費Microsoft Web Protection Library(AntiXSS Library),有了AntiXSS Library你就不怕中標了。