更新ADT 後src 及 layout 不會自動建立

adt

把ADT (Android Developement Tools) 更新到22.6 (2014年4月),發現到如果新增一個project 時,原本會自動建立src 內的package 及Activity class,還有在res/layout 內的Activity layout 的XML 檔,但是都沒出現,去找了Android 的issue tracker(#66647),問題是因為ADT  內的SDK tools 根本沒被更新到22.6,但是在SDK Manager 顯示出來卻是有。

 

package_explorer_list
新建專案src 及res/layout 是空的

繼續閱讀 “更新ADT 後src 及 layout 不會自動建立”

更新ADT 後src 及 layout 不會自動建立

ASUS 路由器的洞

asus

在網路上看到國外有人發現到ASUS 家用路由器的洞,剛好我也是用ASUS,檢查一下發現真的有這個洞…,詳細可以參考此網站

主要有兩個洞,分別是XSS 跟 Authentication bypass,都是發生在error_page.htm 這個網頁,瀏覽此頁面是不經過身分驗證

  1. XSS 的是透過error_page.htm?%27%2balert(%27QQ%27)%2b%27
  2. Authentication bypass 在檢視error_page.htm 的原始碼會發現有一行的程式如下:

回報的人說明影響到的機型有

  1. ASUS RT-N10U
  2. ASUS RT-N56U
  3. ASUS DSL-N55U
  4. ASUS RT-AC66U
  5. ASUS RT-N15U
  6. ASUS RT-N53

另外,N55U與 AC66U 沒有Authentication bypass 的洞。

不過,現在使用是RT-N12D1 在官網上的Firmware 更新中也有,所以,快去檢查路由器的firmware 是否有釋出更新

 

資料來源:https://sintonen.fi/advisories/asus-router-auth-bypass.txt

ASUS 路由器的洞

SSH 安全設定的大小事

OpenSSH_logo
圖片取自Wikipedia

 

前幾天幫朋友弄主機,看到 /etc/hosts 被加入許多筆127.0.0.1 對應到不同的domain name,接著看登入紀錄發現,只留下當天下午之後的紀錄,其他的都不見了‵,個人的主機通常不會把log 丟到syslog server 上,系統上的帳號也被新增一個帳號,UID 還是0…,看來是被黑了…,最後發現,他沒把root 帳號SSH 連線的設定關掉,密碼也太過簡單。

繼續閱讀 “SSH 安全設定的大小事”

SSH 安全設定的大小事

寫了一個App – 臺灣燈會在南投

臺灣燈會在南投

今年臺灣燈會辦在南投,原本去年底就想開始寫,那時候還不知道有什麼功能可以做,直到看了南投縣政府的官網出來後才花了一些時間寫(官網用CodeIgniter 做的樣子),最後利用Google Map API 做出了燈會地圖,希望不要有太多bug 就FC 啊…有的話請麻煩回報一下,有建議可以告訴我,在文章、Goolge Play 評論留言或者mail 給我 ym.huang0808 [at] gmail.com,測試的環境就有我的手機Nexus 5…,沒有平板能做測試(差點衝去買一個Nexus 7…)。

繼續閱讀 “寫了一個App – 臺灣燈會在南投”

寫了一個App – 臺灣燈會在南投

AWK 處理檔案

在處理「10,000 Top Passwords」的檔案時,想轉成array 資料型態存起來,檔案是:

password, 32027
123456, 25969
12345678, 8667
1234, 5786
qwerty, 5455
12345, 4523
dragon, 4321
pussy, 3945
baseball, 3739
football, 3682

第一欄是要儲存成array 的資料,就想到利用AWK 來處理,之前有用過了,不過現在有點生疏,來筆記一下,加深印象。

AWK 結構及選項

AWK 是讀取檔案或利用pipeline 的方式讀取接收到的結果,以每行為一個記錄(record)進行處理,在行中會在被區分成欄位(field),預設區隔欄位的則是空白

  • -F :可以自訂區隔欄位的字元是哪一個
  • -v:則是可以設定變數
  • pattern:當讀取每行時,可以利用pattern 判斷是否符合,如果沒pattern 需要判斷可以省略
  • action statements:要進行的動作,要將執行的動作寫在{ } 大括號內

繼續閱讀 “AWK 處理檔案”

AWK 處理檔案

2013 TiC100 學習及獲得哪些

2013TiC100

最近要開始改履歷了,所以就利用部落格來回想一下參加2013 TiC100的過程。

動機

距離去年(2013)的TiC100 也有半年多的時間,從一開始看到學校研發處發的email,用Google 搜尋到Youtube 上的2012 年冠軍team 總決賽影片(參考此連結),當下覺得可以完成一個東西真棒!

來自不同系的組員

在報名前,因為有些人有畢業後的工作,組員變動了不少次,最後我們由五個人組成了CPU,組員來自不同背景包括企管、電機、景觀、資管,在一開始的履歷審核與議題配對就發現到不同系的人會有不同的溝通語言與思考邏輯。

主辦單位議題配對出來後會舉辦議題說明會,在說明會前,與Dani 老師開會時,提醒我們要好好的了解選到的議題內容,因為不是每個組員對物聯網(IoT)、RFID、ZigBee、商業模式(BM)等有概念,每個人針對自己擅長的部分跟大家做分享。當天在研華公司的議題說明會時,大家都發現到對議題owner 在說明、講解的技術應用與用詞會更加了解。

2013 TiC100 議題說明
RFID 應用

 

 

 

 

 

 

 

 

 

溝通是最大的無形成本

組員們一開始都是沒合作過也互相不認識,大部分meeting 時,會從A 方向討論到C、D、E 方向,大家的想法都不同,所以幾乎meeting 都是要2~3小時以上,在某一次meeting 時,有發現到一個做法還不錯,要專注在單一方向實際上不太可能,可以利用大張一點的紙或白板記錄下討論過或者還沒討論完的內容,能記越詳細越好,這樣能避免討論到E 方向時,要跳回A 時又要重新來過(這跟stack很像)。

繼續閱讀 “2013 TiC100 學習及獲得哪些”

2013 TiC100 學習及獲得哪些

Android 3.X 以上加入Menu 鍵

在Android 3.X 以下的版本,手機都會有實際的Menu 鍵(Menu button),但是在3.X之後的把實體Menu 鍵拿掉,引進了ActionBar 的類別,將Menu 鍵放在ActionBar 的部分,因為,最近把手機換成Nexus 4,發現Portable e-Campus 學校的App 沒顯示Menu 按鍵,查了一下看到官網有提供解決方法,這個方法很簡單,不用加ActionBar,因為我們的App 在某些介面下加入ActionBar 看起來會不太搭,但是之後可以會把ActionBar 加上去,因為這樣才能讓使用者有一致的操作方式。

一、顯示方式

Nexus S (Android 2.3.3)
Nexus S (Android 2.3.3) 具有實體Menu 鍵

 

Nexus 4 (Android 4.2.2)
Nexus 4 (Android 4.2.2) Menu 鍵在虛擬按鍵上

繼續閱讀 “Android 3.X 以上加入Menu 鍵”

Android 3.X 以上加入Menu 鍵

[MySQL]利用mysqldump備份

mysqldump工具蠻常來使用備份資料庫,會將所要dump的Database備份成一個SQL Script檔案,如果要還原的話,只要在MySQL執行SQL Script即可。

一、mysqldump指令語法

二、 mysqldump選項

  • –all-databases, -A   輸出所有資料庫
  •  –databases, -B   輸出的資料庫名稱
  • –user=user_name, -u user_name   資料庫使用者名稱
  • –password[=password], -p[password]   資料庫使用者密碼
  • –complete-insert, -c  使用完整的INSERT指令,也就是包含欄位名稱
  • –no-create-db, -n   不輸出CREATE DATABASE指令
  • –no-create-info, -t   不輸出CREATE TABLE指令
  • –opt   是mysqldump中的預設參數,參數功能相等於加入了 –add-drop-table –add-locks –create-options –disable-keys –extended-insert-lock-tables –quick –set-charset等參數
  • –hex-blob   將binary的欄位(含BINARY, VARBINARY, BLOB等資料型態)轉換為16進位,如果有binary欄位要加入這個選項

在mysqldump的文件中有介紹到常用的指令方式

shell> mysqldump [options] db_name [tbl_name …]
shell> mysqldump [options] –databases db_name …
shell> mysqldump [options] –all-databases

繼續閱讀 “[MySQL]利用mysqldump備份”

[MySQL]利用mysqldump備份

CodeIgniter開啟CSRF保護時使用Ajax

最近在利用CodeIgniter開發網站時,需要檢查使用者輸入的值是否有重複,為了避免使用者都輸入完資料送出表單後才去檢查,利用JQuery中的Ajax在輸入完的時候就進行檢查,但是利用Chrome Developer Tool來Debug時候,發現錯誤訊息是:

POST http://localhost/index.php/my_ajax/is_username_duplicate 500 (Internal Server Error)

最後Google後發現原來是我在之前開啟CSRF的問題。

一、什麼是CSRF

CSRF(Cross-Site Request Forgey, 跨站冒名請求)為當使用者在已登入的狀態下,被攻擊的人執行了使用者未知的操作,因為,當使用者在登入狀態下,只要不關閉瀏覽器,就會保留著Session或Cookie,網站通常都是利用檢查Session或Cookie來確認使否連線進來的使用者是否已經登入,所以攻擊者可以利用社交攻擊,傳送一個連結或操作等,使用者在未知情況下去操作,就可能會依照使用者所安排好的操作去執行,聽來聽去可能有點霧煞煞,參考網路上的一下範例解釋一下:

HTTP Request有兩種分別是POST及GET,在GET 方法可以利用網址後面帶入變數的方式,例如:

攻擊者可能利用電子郵件或者社群網站寄送一個連結給使用者

http://www.buy.com/buy.php?item=002&to=attack

這個連結可能是讓使用者買某個東西送給某人,如果使用者不經意點擊,就可能發生了,那會有人說改用POST就好了,其實不盡然,因為只要攻擊者利用JavaScript就可以執行POST 方法了

繼續閱讀 “CodeIgniter開啟CSRF保護時使用Ajax”

CodeIgniter開啟CSRF保護時使用Ajax