Archive

‘專業技術’ 分類過的Archive

堆疊(Stack) 和佇列(Queue) 基本說明

2008年8月20日 尚無評論

這兩個名詞常聽到,不過稍不注意,很容易搞混其意思,所以在此列出之間的特性及重點

堆疊(Stack)

  • 資料的插入和刪除只發生在堆疊的頂端(Top)
  • 使得資料進出堆疊時產生「後進先出」(LIFO)的特性
  • 使用範例
    • 歐式自助餐之餐盤堆放方式
    • 副程式的呼叫和返回
    • 堆積木
    • 蓋房子
    • 空間堆放求得最佳步驟
    • 數學四則運算

佇列(Queue)

    • 佇列也是一個有序串列
    • 資料的插入和刪除分別發生在佇列結構的兩端
    • 插入資料的一端叫做尾端(Rear),刪除資料的一端叫做前端(Front)
    • 資料進出佇列的次序形成「先進者先出」的特性 (FIFO)
    • 使用範例
Categories: 程式開發 Tags: , , ,

Java OutputStream 轉換為InputStream

2008年8月19日 尚無評論

   先前有提到在開發時常會將String 轉成InputStream或都反之將InputStream轉String,其實還有一種也很常轉換就是將OutputStrem轉成成InputStream,一般是要傳出到其它媒介,如檔案時,可以再接進來做preview的動作,轉換很簡單,以下提供二種方式。

1.

ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()) ;

2.這種轉換使用Pipe就最合適了,使用方式也是很單純

PipedOutputStream out = new PipedOutputStream();
PipedInputStream in = new PipedInputStream(out);

   當然除了OutputStrem轉成成InputStream,也可以反轉,以前還不太懂Stream時(現在還是不太懂 =.=||),總想半天為啥java搞的這麼複雜,現在稍為能體會Stream好處了!!

參考資訊:
http://blog.csdn.net/jimmyblyLee/archive/2007/08/20/1750939.aspx

Categories: JAVA Tags: , ,

XSS(Cross Site Scripting) 介紹

2008年8月16日 尚無評論

      最近拜網路頻寬的提升,WEB的特效愈來愈多,提供的功能及服務也愈來愈能滿足大眾的口味,在WEB愈來能愈能做出有如應用程式般效果的同時,危險因子也愈來愈多及難防範,接下來介紹的XSS是在近幾年攻擊的主流,雖說以往就有在web上出現過類似的攻擊模式,就如同Ajax一般以往就能做出等同效果,不過現在熱門囉!! 以前網頁bomo已經落伍了,XSS攻擊已經超出想像般的可怕…以下是在網路上看了一些文章後,大約整理一下並加上自己的看法..

     XSS的全稱是Cross Site Scripting,意思是跨網站腳本程式這第一個單詞是Cross,為什麼縮寫成X呢?因為CSS是層疊樣式表的縮寫(Cascading Style Sheets)的縮寫,同時Cross發音和X相似,為了避免混淆用X來代替,縮寫成XSS。其實我覺得叫XSS挺合適的,因為現在流行AJAX嘛,新的跨站腳本攻擊技術很多都是和XMLHTTP控制項無間配合。它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常呼略其危害性。
這個問題所帶來的影響遠超過突如其來的打擾或惡作劇。透過擷取您的 cookies 資料(一種儲存在個人瀏覽器的暫存資訊),跨網站攻擊程式能夠讓攻擊者取得您網站的管理者權限。

     這是如何發生的呢?主要是網站系統並沒有過濾使用者提供的資訊就顯示在畫面中,再利用網頁執行的特性,在使用端執行那些會危害或竊取使用者隱私資訊;就像一個使用者上傳了留言、評論或甚至是一個帳號與密碼,如果這些資訊接下來會顯示在網頁中,這時就可以在上頭動些手腳以達到想攻擊入侵的目的。作法有點像SQL Injection攻擊(改天再來介紹),只是攻擊的目標從資料庫換成使用者或系統。

     這些內容也許是無傷大雅的(例如惡作劇),也或者會是嘗試要取得私人資訊的惡意程式碼,藉此闖入您的系統。簡單來說通常這些攻擊內容會以程式碼的形式存在,因此才會取名為 '跨網站攻擊程式'。

一般XSS攻擊會有下面二種類型的攻擊:
1.比較不會造成傷害的跨網站攻擊形式

  • 嘗試要破壞網頁畫面配置與內容
  • 惡作劇程式、顯示討厭的訊息、廣告視窗等程式或物件

2.比較嚴重的跨網站攻擊形式:

  • 產生可以誤導人們的網站連結,透過這些連結來引發一些動作,像是登出、發佈文章或是修改密碼等
  • 程式或帶有 “(script removed)” 的連結用來從 cookies 中蒐集個人資訊,接著將它們傳送到第三個網站,藉此取得系統的管理者權限
  • 嘗試攻擊特定瀏覽器已知安全弱點的物件或外掛程式

     一般系統有使用所見即所得功能的,危安因素更大,因為真的很難防,目前市面上似乎還沒有一整套完整又簡單使用的防範方式,看來在提供強大的功能及服務的同時,要小心想想會不會造成上述攻擊,這次就先介紹到此!!

參考資料:
http://twpug.net/modules/smartsection/item.php?itemid=34
http://bbs.flash2u.com.tw/dispbbs_171_87491.html

Categories: WebDesign Tags: ,

HTML autoComplete 屬性自動完成功能 說明

2008年8月13日 尚無評論

最近在網路 遊走時 發現一篇舊文章在討論Yahoo密碼的問題

http://forum.moztw.org/viewtopic.php?p=21695

主要是說Yahoo無法記錄密碼的問題

深入瞭解後發現 原來是 autocomplete屬性的關係

<iinput type=password name=passwd autocomplete=off>

autocomplete預設是on,當設定autocomplete=off 時,則會關閉瀏覽器本身對此欄位的記憶
這樣就不會記憶這種資訊下來,如果在外使用就會安全點才不會不小心被記下
不過用自己的電腦時,對某些人不擅打密碼的人來說 還是蠻麻煩的

如果真的有需要記錄,可能要用一些AP的小工具才行了
這個autocomplete不知是html 那一版的屬性,先前都沒注意到這個!!
寫程式這麼久了才瞭解它,真是要不得呀!!

Categories: WebDesign Tags: ,

用Javascript達到信用卡或序號填寫時自動跳下欄位的方法

2008年8月12日 尚無評論

要達到填寫信用卡或序號時,只要填滿就會自動跳下一欄位
我們要借助Javascript才有辦法達到此效果

首頁我們在html 先把要輸入的欄位列出

信用卡卡號
<input type=text name=pan_no1 size=4 value=”” maxlength=4 onKeyUp=”setBlur(this,'pan_no2');”>-
<input type=text name=pan_no2 size=4 value=”” maxlength=4 onKeyUp=”setBlur(this,'pan_no3');”>-
<input type=text name=pan_no3 size=4 value=”” maxlength=4 onKeyUp=”setBlur(this,'pan_no4');”>-
<input type=text name=pan_no4 size=4 value=”” maxlength=4 >  

再來寫個 Javascript,判斷該欄位填入的長度是不是等於maxLength如果是就跳下一個欄位

<script>
  function setBlur(obj,target2)
  {
     var target =document.getElementById(target2);

       if( obj.value.length ==obj.getAttribute('maxlength'))
           {
               target.focus();
           }
       return;
  }
</script>

分頁: 上一頁 1 2 3 ... 18 19 20 21 22 23 24 25 26 27 28 下一頁