blogspot.com-GA4

星期五, 7月 04, 2008

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

星期四, 6月 26, 2008

form.elements的使用問題

今天在使用第一種鎖定頁面中輸入方塊 text & textarea 的時候,在某些頁面可以正常執行,但某些頁面不知道是什麼原因,查不到錯誤只好在改成下面的第二種方式

第一種 鎖定 text & textarea
function lostate(){
for (var i = 0; i < savform.elements.length; i++) {
var element = savform.elements[i];
if (['input', 'select', 'textarea'].include(element.tagName.toLowerCase())){
alert(element.tagName.toLowerCase());
//element.blur();
element.disabled = 'false';
}
}
}

第二種 鎖定 text & textarea
function lostate(){
for (var i = 0; i < savform.elements.length; i++) {
if (element.type =="text" || element.type =="button" || element.type =="file"){
element.disabled = "false";
}
}
}

星期五, 6月 20, 2008

對流血一週仍然不死的動物千萬不能大意(轉)


  1. 我和超人的唯一區別是:我把內褲穿在裏面了。
  2. 我不是隨便的人,但隨便起來就不是人。
  3. 我身在江湖,江湖卻沒有關於我的傳說……
  4. 寧願相信世間有鬼,也不相信男人那張破嘴!
  5. 水至清則無魚,人至賤則無敵。
  6. 騎白馬的不一定是王子,可能是唐僧;帶翅膀的不一定是天使,也可能是"鳥人"。
  7. 時間和乳溝一樣,擠一擠還是有的。
  8. 一山不能容二虎,除非一公和一母。
  9. 對流血一週仍然不死的動物千萬不能大意……
  10. 我,一個大學生的人生奮鬥目標:農婦,山泉,有點田。
  11. 一見鍾情,再而死,三而竭。
  12. 一個人並不孤單,想一個人時才孤單。
  13. 生,容易。活,容易。生活不容易。
  14. 流氓不可怕,就怕流氓有文化。
  15. 男人的謊言可以騙女人一夜,女人的謊言可以騙男人一生!
  16. 水能載舟,亦能煮粥!
  17. 你放心,看到你我連食欲都沒了,還談什麼性慾!
  18. 相親最大的好處是:如果日後婚姻出問題,你可以把責任推給媒人。
  19. 女人無所謂正派,正派是因為受到的引誘不夠;男人無所謂忠誠,忠誠是因為背叛的籌碼太低……
  20. 聰明的女人對付男人,而笨女人對付女人。

去年度的10個佳句:
10 . 問世間情為何物?一物剋一物。
09 . 避孕的效果:不成功,便成人。
08 . 錢不是問題,問題是我沒有錢。
07 . 喝醉了我誰也不服,我只要扶牆。
06 . 有錢人終成眷屬。
05 . 火煉金,金煉女人,女人煉男人。
04 . 一山不能容二虎,除非一公一母。
03 . 水能載舟,亦能煮粥。
02 . 鑽石恆久遠,一顆就破產。
01 . 我就像一隻趴在玻璃上的蒼蠅,前途一片光明,但是出路沒有。

其中 對流血一週仍然不死的動物千萬不能大意 原來是.......女人 Orz