blogspot.com-GA4

星期四, 7月 31, 2008

使用dos指令檢查目前網路連線狀況 netstat tracert

使用dos指令檢查目前網路連線狀況的指令,
在dos 模式下
輸入 netstat -na

會列出目前所有的連線狀況
由這邊檢查目前此電腦的連線情況

輸入 netstat -no
列出有id的所有目前電腦的連線狀態

查詢指令詳細內容:netstat ?

netstat -o【得知哪個PID有使用網路資源,對映工作管理員處理程序,不明程式立刻知!】
netstat -a【顯示本機上的外部連線】
netstat -n【顯示本機上的外部連線(IP型態,但不顯示非TCP連線)】

tracert www.google.com.tw【檢查對此主機的連線路由。】

ping 168.95.1.1【檢查對此主機的連線狀況,有無延遲。】


編輯常駐程式是否啟動:執行→msconfig
登錄編輯程式:執行→regedit

Eclipse 外掛 Fat-jar 包裝引用jar檔

參考文章:http://redbug.twbbs.org/index.php/2008/07/28/397

1. 設定Fat-jar
help-> software updates -> Find and Install -> Search for new features to install -> new remote site

輸入 plugin 的名字和更新的來源:
Name: Fat Jar
URL: http://kurucz-grafika.de/fatjar

2.要export的Project上按右鍵,選"build fat-jar"
之後便會跳出選單,把你的Main-Class 設定好,按下一步。
接著把你要一起包進去的lib1.jar lib2.jar ...勾選,按下一步。
它就會幫你全部打包成一個xxx.jar檔,並放置於你的Project的根目錄下。
這個xxx.jar檔無論放在什麼位置,應該都是雙點便可執行的。


※原本jar包裝方式
java -classpath proj.jar;lib1.jar;lib2.jar Main-ClassName(沒有.class哦)

封裝方式

星期三, 7月 30, 2008

web本機測試工具

http://www.fiddler2.com/fiddler2/

測試的時候開啟程式會自動將本機的proxy 修改為本機進行系統測試動作

星期四, 7月 24, 2008

安裝Eclipse Web Tools Platform

以下是線上安裝教學
http://eclipse.cdpa.nsysu.edu.tw/technology/phoenix/demos/install-wtp/install-wtp.html

檔案下載路徑:http://www.eclipse.org/webtools/

改成 Eclipse 3.4 以後
1. 下載 wtp-R-3.0
2. 直接在 Help > Software Updates > 進入 Available Software 選擇妳要安裝的WTP部分

總體上來說 Eclipse 3.4 比 3.3 好用多了

星期四, 7月 17, 2008

如何做好 ASE 資料庫備份管理

資料庫備份指令
dump database <db_name> to “<device name for tape>|<file name>”

資料庫還原指令
load database <db_name> from “<device name for tape>|<file name>”

ex: 公司使用指令
dump database dbname to 'compress::d:\dbbackup\dbname_data_日期.gz'
load database dbname from 'compress::d:\dbbackup\dbname_data_日期.gz' online database dbname

資料庫與資料整合
倍力資訊股份有限公司 版權所有 http://www.mpinfo.com.tw 1
如何做好 ASE 資料庫備份管理
作者:倍力資訊第一事業部 系統顧問
張安翔 先生

在電腦應用中,為防止可能由於各種原因所造成的損失,經常要對各種文件
進行備份。在資料庫的應用中,所儲存的資料如果遺失或遭到損壞,則可能會產
生無法預測的結果,或造成無法彌補的損失,所以應該對資料庫儲存的資料定期
作備份,以減少因資料遺失或損壞所造成的損失。然而在具體的使用中,發現集
中式的資料管理有其優點,就是資料風險範圍大為縮小,但是相對的風險卻比較
集中。因此如何做好資料庫的備份管理,也成為相當重要的課題。

在實際應用中,資料庫備份主要功用不外乎作資料庫系統的回復、重建或資
料庫移轉(或許為資料庫系統新舊版本的轉移) 。然而資料庫備份策略在於維護
系統資料安全,好的備份策略應該考慮保證資料的安全,並且以操作簡便為原
則。基本的操作過程很簡單,說明如下:

1. 有哪些資料需要備份?
„ master資料庫(含交易日誌) :master資料庫中包含許多用來記錄系
統相關資訊的表格,ASE 就是利用這些系統表格來控制和管理使用者
資料庫及資料庫系統的整體運作。當修改了 master資料庫之後,就應
該備份 master資料庫。如果 master資料庫遭到了破壞,就可以輕易
地復原系統和恢復使用者的資料庫。當 master資料庫重建和恢復之
後,便能夠恢復其他的系統資料庫的備份和已存在的使用者資料庫;相
反地,如果現行 master資料庫沒有備份,那麼就必須重建全部的系統
資料庫。
„ user資料庫(含交易日誌) :顧名思義指的就是使用者自行建立用來存
放資料的資料庫。使用者資料庫則應該有計劃的備份。當新建資料庫、
新建索引或執行了一些沒有日誌的操作時,就應該去進行完整的資料庫
備份。
„ server configuration files:每建一個伺服器所對應的一個環境設定組態
檔(Sybase 目錄下 servername.cfg) ,裡面記載著伺服器的各個相關
的環境參數,將此一檔案複製出來,在未來伺服器復原時可使用它來回
復先前的設定環境。

2. 何時必須進行備份?

為了將系統安全且完整的備份,必須根據具體的環境和條件,制定一個資料庫與資料整合
完善可行並可確保資料庫系統安全的備份計劃。為了制定完整的備份計劃,
則須考慮下列幾項要件:
„ 確定備份的頻率。對於資料庫的完全備份,可以每個月、每周甚至每天
執行一次,相對地,交易日誌(Transaction log)的備份是每週、每天
甚至每小時備份一次。
„ 確定要備份的系統資料庫和使用者資料庫的內容。
„ 確定備份所使用的媒體,是使用硬碟備份、光碟備份或磁帶備份等。
„ 確定是使用允許使用者繼續操作的線上(online)備份,還是不允許使
用者使用資料庫的離線(offline)備份。
„ 確定備份儲存的地方是否安全。

3. 備份的前置作業

即使資料庫中有資料不一致的情況發生,dump database 命令仍然可
以成功的執行完成。雖然這並非必要性動作,但仍強烈建議使用者在備份資
料庫之前先確保資料庫的一致性,如此一來我們就可以保證所備份出來的資
料在資料頁鏈接及配置上都是正確的。

„ dbcc(DATABASE CHECK CONSISTENCY)資料庫一致性檢查

dbcc 用來檢查一個資料庫邏輯一致性和物理一致性,通常在下面的情
况下使用 dbcc:
1. 一般的資料庫維護
2. 確定當一個系統錯誤後可能損壞的範圍
3. 在備份資料庫之前
4. 懷疑資料庫受到損壞
dbcc 有兩個主要功能:可檢查分配表結構(命令 checkalloc、
tablealloc) 、可檢查頁的鏈接和頁與行上的資料指標(命令 checkdb、
checktable) 。指定表格可以用 checktable、tablealloc 執行dbcc 命令。指
定資料庫可以使用 checkdb、checkalloc 和 checkcatalog選項。

„ dbcc checkdb:檢查指定資料庫(database)的一致性,比對該索引
頁和資料頁是否有正確地被鏈接、索引是否保持正確的排序順序、所有
的指標是否一致。
„ dbcc checktable:檢查指定表格(table)之索引頁及資料頁是否被正
確地鏈接、索引是否保持正確的排序順序、所有指標是否一致。
„ dbcc checkalloc:檢查指定資料庫中的資料頁是否有被正確的配置,以
及是否有資料頁被配置但未使用,或是否有資料頁被使用但未被配置。 資料庫與資料整合
„ dbcc tablealloc:檢查指定表格的分頁是否有被正確的配置。
„ dbcc checkcatalog:系統表格的一致性檢查。
„ dbcc checkstorage:指定資料庫檢查,但需要先建立dbccdb 資料庫,
再進行資料的搜集與資料的分析,此方法可以有效的降低資料被 lock
的時間。

4. ASE 的資料庫備份與恢復

資料庫的備份(backup) :

dump命令的使用
„ dump database <db_name> to “<device name for tape>|<file
name>”:將指定的資料庫完全備份下來,其中包含了資料及交易日誌,
該命令執行完並不會清除已完成的交易日誌。
„ dump transaction <db_name> to “<device name for tape>|<file
name>”:僅備份交易日誌,備份後會清除交易日誌的內容。
„ dump database|transaction <db_name> to “<device name for tape>”
at <remote_backup server name>:將資料庫或交易日誌備份至遠端的
備份伺服器上,此一方法僅能備份至磁帶(tape)上。
„ dump transaction <db_name> with truncate_only:不作備份,只清除
已成功的交易日誌,且會產生此一命令的 log 記錄。
„ dump transaction <db_name> with no_log:不作備份,只清除已成功
的交易日誌,但不產生此一命令的log記錄(當log的儲存空間不足且
無法再延伸時,可使用此一命令來清除log記錄) 。
„ dump transaction <db_name> to “<device name for tape>|<file
name>” with no_truncate:只作交易日誌的備份,但不作清除交易日誌
的動作。在資料庫毀損不能使用的情況下,仍可利用此命令做到
up-to-minute 交易日誌的備份。

quiesce 命令的使用(為 ASE 12.0以上版本新增的命令)
使用 quiesce 命令在資料庫 on line 時,強迫執行禁止交易的動作,接著再
以檔案複製的方式來進行資料庫的備分。
„ quiesce database <tag_name> hold <db_name> for external dump:
執行禁止交易的命令。
„ quiesce database <tag_name> release:解除禁止交易的命令。

資料庫的回復(recovery) :
必須先建立好空的資料庫,與原資料庫的大小及配置必須要完全一樣。資料庫與資料整合
如是採實體檔案複製的備份方式,則將複製出來的檔案再拷貝並取代新建好
的空資料庫即可。如採 dump 的方式備份,則須以 load 的命令來將資料庫
作完整回復(包含交易日誌的回復) 。

load database命令的使用
load database 命令用來將先前所備份的資料庫重新載入系統,載入並同時
執行回復的程序,所以先前備份時尚未完成的交易都要被取消,已修改的資
料會被回復至原來的狀態。執行load database 命令時,系統會自動將資料
庫離線(offline) 。
„ load database <db_name> from “<device name for tape>|<file
name>”:執行資料庫的回復作業。
„ load database <db_name> from “<device name for tape>|<file
name>” at <remote_server_name>:利用遠端的備份伺服器來執行資
料庫的回復作業。

load transaction命令的使用
在你執行完load database 命令,已將先前的資料庫備份回復後,接著你就
可以使用load transaction 命令來將先前所作的交易日誌備份,依照時間順
序一一的載入,這樣就可以藉此重新執行交易日誌中所記錄的資料異動反應
至重建的資料庫中。

執行完load 的命令之後,資料庫的狀態為offline,須利用 online database
<db_name>來將資料庫的狀態變更成 online,方可正常使用。

經由dump 及 load 命令,我們可以執行資料的備份、載入和清除交易日誌
的工作,一個完善的系統必須靠完善的備份計劃及平日經常性的資料備份
來建立。所以備份工作非但不能不作,更要作得確實。

星期二, 7月 15, 2008

FreeBSD刪除特殊檔名檔案

1. 先列出含有id 的檔案列表
ls -li

19713124 drwxrwxrwx 13 root wheel 512 Dec 21 2007 Cust_update
19713148 -rw-r--r-- 1 root wheel 71871 May 17 20:44 Cust_update\tmpcustupdate\0800006.jpg
21857184 drwxrwxr-x 6 pgadmin wheel 512 Jul 7 09:36 Wksht
20090202 drwxr-xr-x 2 pgadmin wheel 512 Jul 25 2006 confirm

2. 利用find 指令在檢查查詢檔案是否正確

hinet(5:19pm pgadmin ms28)/DATA/data# find ./ -inum 19713148
./Cust_update\tmpcustupdate\0800006.jpg

3. 正確之後再加找出檔案刪除
hinet(5:19pm pgadmin ms28)/DATA/data# find ./ -inum 19713148 -exec rm -rf {} \;
hinet(5:20pm pgadmin ms28)/DATA/data# ls -l

刪除目錄方法
rm -rf '目錄'

刪除檔案
rmdir <DIR NAME>

建立目錄
mkdir <DIR NAME>

星期四, 7月 10, 2008

星爺的 - 功夫語錄

上網搜尋的"功夫語錄"~~

活了這麼久,星爺是在亞洲人中真的是所謂的"電影娛樂界"的第一把交椅,
幾乎每一部電影裡頭總會有那麼幾句經典,
句句真真正正的反映出人世冷暖

 
‧這麼漂亮的女人,就因為往地上吐了一口口水,就被你們給抓到這而來,還有王法嘛? 還有法律嘛?

‧殺人嘛,我整天都有這種想法的。

‧這個世界,滿街是錢,遍地都是女人,誰能夠下決心,誰就能爭贏,誰能夠把握機會,就出人頭地。

‧難道我學過如來神掌,也要告訴你嗎?

‧如果有一天讓你打通任督二脈,那還不飛上天阿?

‧警惡懲奸,維護世界和平這個任務就交給你,好不好?

‧會功夫也不是罪啊。

‧你看你,穿條紅底褲,白裏透紅 ,出來慶功阿。包塊尿布吧!

‧不要以為你長的帥,我就不打你。

‧記憶是痛苦的根源,你能忘記,是福氣。聽你這麼說,是暗藏唏噓阿。

.問君能有幾多愁,恰似一江春水向東流。

‧十二路譚腿,攻守並重,名不虛傳。

‧(洪家)鐵線拳,剛中有柔,可謂拳中之尊。

‧五郎八卦棍,千變萬化,高深莫測。

‧一曲肝腸斷,天涯何處覓知音。

‧這塊布料藝術成分相當高的。有多高啊? 三、四層樓那麼高。

‧不要擋著我看戲阿。

‧什麼大哥?你有沒有公德心? 大嚷大叫,街坊不用睡覺啊,人家明天還要上班呀。

‧能力越大,責任就越大,你避不了的。

‧What are you prepare to do ?(病句)你還是說中文吧?!

‧大哥,你還是寫中文吧,看不懂啊?!

‧看來這位先生,對戴眼鏡人士,有很深的成見阿。

‧我身為文員,戴金絲眼鏡,是很合理,也很合邏輯,我戴得好看,你為何一定要針對我呢?

‧幫忙是吧,地痞是吧,龍形是吧,虎形是吧?

‧我一看你的樣子,就知道你除了好事,什麼都敢做。

‧不正常人類研究中心 。

‧---終極第一殺人王火雲邪神,果然很有派頭。 ---虛名而已。

‧我是殺了很多人,無非是想找個能打敗我的人,但最後發現,一個都沒有。

‧塑膠拖鞋是標新立異了點,倘若修修邊幅應該有前途。

‧老伯,這是什麼?砂煲大的拳頭你見過沒有?不要逼我出手吧,我發起瘋來,連我自己也怕呀?!

‧拳頭無力,還說是黑社會?!

‧天下武功,無堅不破,唯快不破。

‧---這種氣勢,難道就是人稱神雕俠侶的... ---楊過! ---小龍女!

‧你到底想要我打他本人,還是打他老母,你搞得我好亂阿。

‧年輕人,難免會行差踏錯,能懸崖勒馬已算不錯。

‧ ---如果他能好好讀書,我看他將來不是醫生就是律師。 ---但是他的樣子比較像武師!

‧---你這是什麼拳法? ---你想學?我教你啊?!

‧就算殺了一個我,還有千千萬萬個我。

‧我們只是想安想晚年的小市民,平凡是福,"高手"兩個字實在不想在揹了。

.要成為絕世高手,並非一昭一夕,除非是天生武學奇才,但是那種人,萬中無一。

.看來,只有當年終極殺人王火雲邪神...才有這樣的煞氣。

.你是耕田的就不要學人單挑啦。

.自從維護世界和平的重任交到我肩頭的那一刻,我深深的感受到了責任和壓力。

. 聊得挺投緣,賠點醫藥費算了。   

.正邪不兩立…正所謂我不入地獄誰入地獄。(出現兩次)      

.本來我要用這10元念書,當個醫生、律師,但為了世界和平……唉!

業績不好的原因,主要有三個

今天 小陳傳來一個笑話,真的有貼切到.....


業績不好的原因,主要有三個.....

在『業務檢討』會議中,長官經過一長串地痛心致詞之後,希望會中同仁能夠有話直說、踴躍發言。

就在一片寂靜,要上不下的尷尬氣氛中,突然一股吼聲蹦出來。有一位主管激動地起立致詞,

他說:「我們業績搞不好的原因,主要有三個:

第一,是沒後臺,就像寡婦睡覺,上面沒人。

第二,是政策多又變得快,像妓女睡覺,上面老在換人。

第三,是內部不團結,就像和老婆睡覺,自己人老搞自己人……

星期六, 7月 05, 2008

檢查硬碟壞軌 dos指令教學

使用chkdsk

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
filename 只能用在 FAT/FAT32: 指定要進行分散程度檢查的檔案。
/F 修復磁片上的錯誤。
/V FAT/FAT32 模式: 顯示磁碟上每個檔案的完整路徑
及名稱。
NTFS 模式: 如果有清除的訊息,也一併顯示。
/R 找出損壞的磁區並復原可讀取的資訊。
(包含 /F)。
/L:size 只適用於 NTFS 模式: 將記錄檔大小變更為指定的 KB
數值。如果沒有指定記錄檔大小,就顯示目前的大小。
/X 如果必須的話,強制先解下磁碟區。所有在
磁碟區上開啟的控制代碼都會失效 (包含 /F)。
/I 只適用於 NTFS 模式: 不檢查索引項目。
/C 只適用於 NTFS 模式: 跳過資料夾結構的循環檢查。

使用 /I 或 /C 參數跳過某些磁碟區檢查,可以在執行

用 執行硬碟檢查 chkdsk C: /f /r

星期五, 7月 04, 2008

set rowcount 用DBCP會死的很難看

我在 tomcat 中設定了用DBCP的連線方式去做 connect Pool

有一條練現你在怎麼查詢資料比數總是只有三筆
因為再登入的時候需要做一些參數的取得動作
發現在登入頁面有下了以下的設定的影響

CallableStatement cstmt = pg.con.prepareCall("set rowcount 3");
cstmt.execute();

還好這部分是從頭到尾自己做的,
如果是別人做的讓我來查不知道幾時才會查到這個問題...

tomcat 設定servlet-mapping

在tomcat4.1.X 之後,如果你寫的servlet 會出現無法取得的狀況時,
就修改 tomcat\Conf\web.xml 的設定

在 web.xml 中你可以尋找以下程式區段

<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->


把 <!-- --> 註解刪除掉,然後再重新啟動你的tomcat就可以了

安裝tomcat Plugin

網路上以及書上所說的tomcatPlugin都有問題下,找到了以下的下載路徑,

我個人的安裝環境如下

eclipse 3.3.2
tomcatPluginV321.zip
tomcat5.5.26

基本安裝步驟 tomcatPlugin 如下︰

1. 先到以下網址下載最新的 tomcatPlugin,並放入 eclipse的 plugin 目錄中

2. 安裝 tomcat ,請到官方下載 .zip 的檔案,個人下載 tomcat5.5.26

3. 設定本機系統環境,將 JAVA_HOME、PATH、CLASS_PATH 加入

4. 開始測試tomcat是否可以執行

  • commad 模式進入 tomcat\bin 執行 startup.bat

  • 測試 http://localhost:8080/是否可以執行



5. 開啟eclipse,到這邊我個人開啟之後就已經有tomcat的啟動按鈕出現了,如果沒有的話請依照以下步驟設定

  • 工具列進入 window > Customize Perspective > Commands 頁籤,在這邊你可以看到tomcat選項

  • 把tomcat選項勾選,你會發現在toolbar中多了三個tomcat啟動控制項



6.開始設定tomcat版本

  • 工具列進入 window > Preferences > Tomcat

  • 選擇tomcat版本

  • 設定tomcat home C:\Program Files\Apache Software Foundation\apache-tomcat-5.5.26

  • 回到主畫面,點選tomcat啟動,這時候你的tomcat 就可以正常在eclipse中執行了

星期四, 7月 03, 2008

Java VM規格書

http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html

此文件為了解整個VM的基礎理論,
如果想要對java語言要更深入了解就必須要先了解他的VM官方白皮書

各種語言都有其VM說明

網頁暫存清除

1) 在HTML頁面裡加入..

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>


2) 在JSP程式頁首加入
// 網頁暫存取消
if (request.getProtocol().compareTo("HTTP/1.0") == 0 )
response.setHeader("Pragma", "no-cache");
else if (request.getProtocol().compareTo("HTTP/1.1") == 0 )
response.setHeader("Cache-Control", "no-cache");

//prevents caching at the proxy server
response.setDateHeader("Expires", 0);
//HTTP 1.1
response.setHeader("Cache-Control","no-store");


3) 在ASP程式裡頁首處加入..
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

星期三, 7月 02, 2008

SQL Injection之解決建議措施及相關資訊彙整(主計處)

SQL Injection之解決建議措施及相關資訊彙整(主計處)

漏洞說明:
SQL Injection是一種未做好輸入查驗(Input Validation)的問題,即在撰寫應用程式時,沒有對使用者的輸入做妥善的過濾與處理,便將其組合成SQL指令,傳送給SQL server執行。因而若使用者輸入之資料中含有某些對資料庫系統有特殊意義的符號或命令時,便可能讓使用者有機會對資料庫系統下達指令,而造成入侵所帶來的損失。事實上,這樣的疏漏並不是資料庫系統的錯誤,而是程式設計師或軟體開發者的疏忽所產生的。

影響平台:
使用網站系統:Apache、IIS、Domino、Netscape

使用程式碼:
ASP、PHP、JSP

攻擊破壞SQL資料庫:
包括 MS-SQL、MySQL、Oracle、Sybase、DB2 等等

SQL Injection可能造成的危害:
透過SQL Injection操作資料庫,可以新增、更動或刪除資料庫的資料,造成資料遺漏或是不正確;如果操作資料庫的使用者權限為系統管理者,那麼還有可能造成其他更嚴重的破壞,例如奪取資料庫的控制權。

SQL Injection的影響範圍:
只要有使用或連結資料庫的軟體、網路服務都有可能面臨SQL Injection的威脅。乍聽之下影響範圍似乎很大,但是大多數的商用軟體並不會有這樣的問題;比較嚴重的可能是網路服務部分,由於網站程式開發者的素質良莠不齊,或是對於資料庫的指令操作與系統管理不熟悉,所以只要有提供表單(Form)輸入介面的網站,都有可能面臨威脅。

解決之道與預防方法:
1. 對於字串的輸入加以過濾,並限制長度。例如 ' 或 " 這種單、雙引號都應該過濾掉,這樣可以避免輸入者利用 ' 或 " 這種單、雙引號截斷原本的SQL指令再插入自己的指令。過濾的方法依開發語言的不同而有不同的方法,以VB Script/ASP為例,過濾單引號的簡單方法為: SafeString = Replace(InputString, “'”, “''”)


2. 若輸入為數值資料則須確定其只輸入0~9之數字,若包含其他英文字母或符號則一律拒絕接受。

3. 對於前兩項的檢查必須寫在server端的程式上,如PHP、ASP及其他各種CGI程式,而不能將其寫於Java script或VB script等會於client端執行的程式上,因惡意使用者可將client端程式另存於本地端硬碟後,再將其修改以略過檢查。並且不要在server 上留有.bak或.old檔,若有.inc檔也不要取與主.asp相同或容易猜測之檔名,因為一般網頁伺服器會允許這些檔案的下載。

4. 加強資料庫帳號與權限管理,讓網站或軟體不以系統管理者的帳號連結資料庫,而對每個資料庫設定一組個別的帳號與強健的密碼,限制這組帳號僅能對該資料庫有讀寫權限。當面臨SQL Injection的侵入時,分權管理能夠限制損害的範圍,減少因為疏忽造成的損失。

5. 做好正確錯誤處理,最理想狀態是所有使用者輸入皆在程式設計者預期之中;若萬一出現非預期的情形也要做好例外處理,勿讓使用者直接看到系統傳回的錯誤訊息,以免惡意使用者由系統錯誤訊息中獲取過多資訊。

6. 全面檢視軟體的程式碼。這在一般商用軟體或應用軟體不太可能做到,但是可以詢問軟體廠商這類問題,以確保他們有進行檢查;網站程式的部分,可以請開發的程式設計師做一次全面性的檢查。

7. 各資料庫系統安裝時通常會有一些預先定義的Table,若確定這些Table並不需要使用到,最好予以刪除,以免惡意使用者利用這些Table獲取過多資訊。

8. 做好軟體開發控管。針對每個資料欄位的Input,確實做好檢查的工作,以降低開發出面臨威脅的程式或軟體。

相關網址:
1. SQL Injection FAQ:
http://www.sqlsecurity.com/faq-inj.asp

2. SQL Injection WhitePaper:
http://www.spidynamics.com/whitepapers/WhitepaperSQLInjection.pdf
3 『資料隱碼』SQL Injection的源由與防範之道
http://www.microsoft.com/taiwan/sql/SQL_Injection.htm

4. SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(上)
http://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm

5. SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(下)
http://www.microsoft.com/taiwan/sql/SQL_Injection_G2.htm