JavaScript~~DOM~~A bug about radio input and createElement in M$IE

根據 W3C 關於 HTML DOM 的建議,我使用下例的 ECMAScript 建立 Radio input element 。使用新版瀏覽器,如 Firefox 也得到了我需要的效果。但在舊版瀏覽器,即 M$IE6 中,卻出現了錯誤。 M$IE 會建立 Radio input element ,但是卻無法選取...

SQL~~Encoding-Based SQL Injection Exploit part 2

繼續第一部份內容。除了單引號 (') 外,允許使用反斜線 (\) 的字元編碼,也屬於遭受此 SQL injection 攻擊的高危險群。而且,由於部份 programmer 的不良習慣,提高了危險程度。這個不良習慣,就是不用標準的方法做 escaping ,而抄捷徑地直接使用字串替代函數。例如 PHP 的使用者,常常用 addslashes() 做 escaping 。前文中我提到的那位客戶,我在檢查他們的程式碼時,就發現到他們的 PHP 程式碼,全部都是用 addslashes() 做 escaping ,而不是用 PHP 建議的 pg_escape_string() 。該客戶的 CMS 系統是 Xoops 再加上額外的修訂以支援 PostgreSQL 。不過,當我進一步追查下去時,很驚訝地發現 Xoops 中,連 MySQL 部份的程式碼,也是用 addslashes() ,而不是用 mysql_escape_string() [Xoops 在 2006/6/26 發佈的最新版本中的 class/mysqldatabase.php 還是用 addslashes()。]。很久以前, PHP 就提供了 mysql_escape_string() 函數,甚至可能比 Xoops 的發展時間還早。儘管如此, Xoops 中仍然沒有使用 mysql_escape_string() ,真是令我無言。

SQL~~Encoding-Based SQL Injection Exploit

最近公司客戶網站的內容管理系統被惡意入侵,因為客戶是用 Linux + PostgreSQL 系統,而我恰好是公司中較熟悉這兩套系統的,公司就派我去處理。我查了一下,答案就在不遠處,我就在 PostgreSQL 的網站上找到了答案,這是一個新型態的 SQL injection 。

ASP.Net~~SqlParameter 和 Ad-Hoc 該用哪種方法?

回應「對SqlParameter的不求甚解」一文。SqlParameter 和 Ad-Hoc 這兩種用法的選擇,嚴格來說是 programmer 的態度與技術問題,而不是安全性問題。我的習慣是 Ad-Hoc ,但我同時強調,資料的驗證與查核是 programmer 的份內工作,所以我的程式風格如下。試問這種 Ad-Hoc 寫法的安全性,會比 SqlParameter 差嗎?

ASP.Net~~ 產生 XML Schema

基於工作需要,我翻了一下 .Net Framework 中對 XML Schema (XSD) 的支援,想找在程式中維護 XML Schema 的方法。找到了兩種方法,一種是使用 System.Xml.Schema 類別,另一種是透過 DataSet 。以下是分別用這兩種方法產生同一份 XML Schema 的程式。

JavaScript~ECMAScript/JavaScript toolkit

因工作需求,近日來專注於用 ECMAScript/JavaScript 強化 web application 的互動性。發現了幾套強力的 ECMAScript 工具,可以簡化不少常用功能的開發,更可讓 programmer 無需關注不同新、舊版瀏覽器的行為差異。說明一下,我所稱的「舊版瀏覽器」包含 M$ IE 6 。

SQL~~SQLXML data 的文章@developerWorks

看了一篇文章Using the SQLXML data type,這篇文章有幾個關鍵字吸引我的注意,其中之一是 SQL:2003 ,另一個是 XML 。想想,我不久之前還在看 SQL-99 的內容,突然之間 SQL:2003 就在我眼前冒出來了,而市面上許多 SQL 書籍的內容,連 SQL-92 都說不清楚。 SQL:2003 現在直接將 XML 視為內定資料型態,更為逼進 OO-RDBMS 的目標了。近期內,更是直接支援 O/R Map (個體/關係映射) 。

ASP.Net~~是用 codebehind 還是用 src ?

最近因工作需要,開始接觸 .Net Framework ,公司用的是 M$ VisualStupid 2003 .Net ,而我在家裡,當然是用 Mono 囉。說到 VisualStupid 這套工具,真是讓我愈用愈氣。我不懂 M$ 在想什麼。

ASP.Net~~自定控制項的 Property

ASP.Net:: 自定控制項的 Property

在自訂控制項類別中,定義 public property 成員,則在 ASPX 頁面標籤中,就可使用相同名稱的標籤屬性(tag attribute)。 ASP.Net 會在 Page_Load() 之前就調用自訂控制項的 property set method ,設定控制項的屬性值。

ASP.Net~~Validator 驗證動作的執行時機

Validator 驗證動作的執行時機

MSDN: 「因為這個屬性的預設值為 true ,所以如果您在執行驗證前查詢這個屬性,它會傳回 true 。例如,如果您企圖使用網頁之 Control.Load 事件中的這個屬性,則可能會發生這個狀況。」

正簡之紛~~二、簡化筆劃不一定能簡化文字

有一部份人,認為筆劃的簡化是一種「進步趨勢」、「歷史規律」,因此認為正體中文應該當成歷史文物了。我不否認筆劃簡化所帶來的方便性,但我要提醒的是,增加方便性的做法,並非只有筆劃簡化一途。文字簡化還有為了簡化意義,而增加字根 (筆劃) 的情形。不要摸到一根尾巴,就當做自己看到整頭大象了。

See also: 正簡之紛::一、從一個誤會說起

從 Popper 和 Wittgenstein 看自然科學哲學與社會科學哲學的分界

為了理解奧地利經濟學派的思想,我開始接觸近代西方的科學哲學思想著作。因為海耶克(Hayek) 的關係,一開始從 Karl Popper 著手,但我愈讀是愈不懂為什麼一般人常把海耶克和 Popper 放在一起講,因為海耶克和 Popper 的方法論之相關性並不高,不像一般人熟知的那麼密切 (與他們的友誼相比)。後來又開始接觸維根斯坦 (Ludwig Wittgenstein) 的著作,他的著作就讓我覺得很貼切。

正簡之紛~~一、從一個誤會說起

前往: 向聯合國停用傳統 (正體) 中文說「不」連署活動

經過查證,以上事件係為誤傳。因為聯合國本來就沒在用正體中文字。但那不是我在意的重點,跟我的想法無關,因此以下內容仍然保留。我有時會很懶,有些事情會一直等到一個契機出現後,才會記述於文字上。

什麼文字優美 (正體支持者) 、什麼使用方便 (簡體支持者) ,都不是理由。我覺得講出這種話的人,對「語言」持有很奇怪的幻想。

我論統計方法與計量經濟

奧地利經濟學派並不反對使用統計方法,但要求正確使用。對我們而言,統計資料是一種經過整理的歷史資料,這些統計資料幫助我們在有限的時間中,吸收大量的資訊。

我對 Mises 所言「人心的邏輯結構」的理解

奧地利經濟學派學者米塞斯(Ludwig von Mises) 在其著作《人的行為》一書中,一開始就在談「人心的邏輯結構」。當時看反覆看了數次,心中只隱隱約約地抓到一點頭緒,但還不能清晰地說出到底「人心的邏輯結構」所指為何,又有何重要性。直到我前些日子為了編輯《老子》,又重溫先秦百家對人性的討論內容後,我這才有把握能說出人心的邏輯結構所指為何。

另見: 「人心中的邏輯結構與行為元範之臆想