幾年前的某一個專案

台北信義區那是一家台灣很知名的工程公司,涵蓋的工程範圍包括海內外的高速公路、高速鐵路(高鐵)、捷運工程(地鐵)、快速道路、公有市場、住宅、醫院、學校。。。等等。工程公司在資訊應用上確實需要更精準踏實,讓工程實作上的風險降到最低,讓每個現場工作人員保持在最高的安全度。

該專案很榮幸可以參與,而且是獨家參與的軟體開發專案。主要功能如下:

  • 提供一套「行動填單系統」,讓現場實作之工程人員可以透過個人行動裝置或是可上網的電腦設備,可隨時隨地回報現場實況。
  • 系統包括:中心管理後台、行動裝置應用程式Mobile App(包括安卓Android與iOS app,必須採用原生開發工具)與前端網頁應用程式(Web App)。
  • 規格需求:
    • 系統網站可提供使用者使用帳號密碼進行登入,並確認身分及權限提供對應功能。
    • APP及網站系統登入機制可與Google Apps整合,並提供SSO機制,使用者所使用的Google Apps帳號須先於系統鍾進行設定後才可使用,不開放為由系統管理者授權的Google帳號進行登入。
    • 系統網頁需可支援RWD作業模式,自動適應PC/平板/手機的顯示操作,並可於PC/平板/手機的瀏覽器中執行完整的功能。
    • 完整系統管理及統計報表的功能透過網站平台來提供。
    • APP提供表單填寫審核及訊息通知等功能,無須於APP中提供系統及表單管理功能,以簡化APP的操作。
    • 單一或整批的相同表單可另存為XML格式文件,以便與其他系統交換資料。
    • 提供表單套表產生Word文件功能。
    • 統計報表可匯出為Excel及XML格式文件。
    • APP 可離線操作,不受網路是否有連線之影響,無連線時,可用前次紀錄的帳號登入,所有表單資訊可暫存行動裝置中,待網路恢復連線後,再同步到主機上。
    • APP可接收系統推播的訊息。
    • 根據權限提供各類表單輸入功能。
    • 提供文字、語音、照片、錄影、附件、時間、座標的紀錄機制。
    • 可查看過往輸入過的表單資料,針對開放修改的表單可進行內容修正。

此套系統因有簽訂相關協議,在此不提供詳細介紹。該平台最大的好處,省卻工程人員在施作時所要填寫的工作或記錄表單,所有表單全部行動化,包括每日工作回報、現場狀況回報、現場環境因子採集、回報簽核流程設計、以及管理後台相關權限設置等等。

這套系統,主要以模組化開發為主,可隨時依照需求進行擴充或修改,例如:某些特殊環境,可能是地質、氣味、溫度、濕度、有害物質含量等等,可在第一時間進行回報。

此外,此套系統最主要可以讓總公司即時了解各個工地現場狀況外,還可搭配各種感測器(傳感器)來進行即時監測當時的環境,包括溫度、濕度、高度、水深、含氧量、各種氣體偵測、以及工作人員上工前的體內酒精濃度等等,將客觀環境可能造成造成的工安意外降到最低。

如果有這類的企業或團體有興趣,可按下這裡與葵曜系統有限公司聯繫,我們會提供最專業的資訊整合服務。

 

網路安全,是靠口水、網軍就可以搞定,還是要靠有效的技術與能力來防護?



今天,2022/8/5,台灣中華民國政府正式成立數位發展部,部長就是唐鳳!!諷刺的是,從昨天到今天,政府網站,就連總統府都遭受網路攻擊!!

有人說,網軍呢?會喊網軍的人就真的是外行了!!網軍除了打嘴炮,抹黑、煽動、造謠之外,還會什麼?ipv4/ipv6傻傻分不清,什麼叫網域?什麼叫防火牆,還有名詞叫防水牆!!就連自己家的WIFI可能都搞不定。

這兩天的新聞,網站被駭,系統不穩,這些仔細瞧瞧,都是官僚政府單位。只想花錢解決問題,重點,花的錢只有小小一部分用在刀口上,其他怎用的只有執政黨政府心知肚明。

如果有企業、社會團體、或真正關心資訊安全人士,除了多看點書,了解一些網路技術外,也可以點擊這裡,找個專業的團隊來協助。無論是網路通訊基礎架構 Network Infrastructure、資安設備、軟體程式開發流程、程式碼掃描、程式碼危險偵測、或是公司內部資安稽查等,提供完善有效的專業服務。

前陣子,幾個電腦大廠,也都遭遇到駭客的勒索,他們是大廠都遭受如此的攻擊,更何況一般的企業呢?就連台灣總統府、內政部、以及地方政府網站,也一一被攻擊,那為何對岸就沒事呢??華府白宮呢?為何人家可以我們不行!?

台灣資訊科技的落後,超乎多數人的想像。加油吧,台灣!!

舊版Firebase v.3.17.0在iOS用Objective-C佈建FCM功能

因手上某個案子需要修改舊版Firebase的code, 讓他可以接收FCM發送過來的訊息,因此進行修改調整。有關設置Firebase等相關說明,可以參考這裡:iOS客戶端的註冊方法,以及Google plist設定與安裝,其他在https://firebase.google.com/docs/cloud-messaging/ios/client 的說明就不要仿照了,否則會出現不可思議的現象,因為這網頁的說明都是以Firebase 5.x以後版本的做法,對早期會出現其他問題,例如Google SignIn,以及Firebase其他應用,甚至會造成閃退。

有關舊的Firebase SDK安裝與設定的方式如下:

設定Firebase SDK,採用cocoapod設置

pod 'Firebase/Core'
pod 'Firebase/Messaging'

起始Firebase

Firebase初始化程式碼要添加到應用程式。導入Firebase模塊並配置共享實例,如下所示:

@import Firebase;
@import UserNotifications;
@import FirebaseInstanceID;
@import FirebaseMessaging;

註冊取得遠端通知,一般來說寫在AppDelegate.m裡面的application didFinishLaunchingWithOptions 裡面進行呼叫。

    [FIRMessaging messaging].remoteMessageDelegate= self;
    
    if ([UNUserNotificationCenter class] != nil) {
      // iOS 10 or later
      // For iOS 10 display notification (sent via APNS)
      [UNUserNotificationCenter currentNotificationCenter].delegate = self;
      UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
          UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
      [[UNUserNotificationCenter currentNotificationCenter]
          requestAuthorizationWithOptions:authOptions
          completionHandler:^(BOOL granted, NSError * _Nullable error) {
            // ...
          }];
    } else {
      // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
      UIUserNotificationType allNotificationTypes =
      (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
      UIUserNotificationSettings *settings =
      [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
      [application registerUserNotificationSettings:settings];
    }

    [application registerForRemoteNotifications];
    
    [FIRApp configure];
    
    NSString *token = [[FIRInstanceID instanceID] token];
    _FCMTOKEN = token;  //passing FCMtoken to DirekSQLite
    NSLog(@"FCMToken: %@", token);

基本上就完成了,最重要是取得FCM Token,其他偵測說明可以參考google firebase的線上說明

CENTOS 7.X 安裝PPTP VPN

首先安裝yum第三方EPEL套件庫

yum install epel-release -y

更新套件

yum update -y

安裝pptpd

yum install ppp pptpd -y

備份設定檔

cp /etc/pptpd.conf /etc/pptpd.conf.bak

將pptpd連接的網址寫上設定檔(放在最下面即可)

localip 192.168.10.1
remoteip 192.168.10.2-254

備份option設定檔

cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak

搜尋ms-dns,將前面#去掉如下,設定dns

ms-dns 8.8.8.8
ms-dns 8.8.4.4

備份系統設定

cp /etc/sysctl.conf /etc/sysctl.conf.bak

將下面的資料填入該系統設定檔sysctl.conf

3
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.ip_forward = 1

設定防火牆

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i eth0 -p tcp --dport 1723 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.10.0/24 -o eth0 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
firewall-cmd --reload

注意,eth0是公網的乙太網路,如果有不一樣需要修改。

設定登入帳號密碼,/etc/ppp/chap-secrets

#帐号    服务器    密码    IP地址
"user1"    pptpd    "123456"  *

注意:帳號密碼必須要加上雙引號。

啟動pptp

systemct restart pptpd

如果有任何問題,要查看日誌則去看/var/log/messages

Ubuntu CLI 操作Google Drive雲端硬碟

  1. 必須安裝Go程式,有關安裝方式可以參考這個網頁
  2. 設置Google存取權限(credentials),這裡可以設定自有的Google credential
    1. Google API Console
    2. 建立新的專案 (Create a new project)
    3. 啟動Google Drive API
    4. 設置Consent Screen
    5. 選擇OAtu client ID建立存取權限
  3. 下載與安裝gdrive程式並設置存取權限
    go get github.com/prasmussen/gdrive
  4. 下載之後,會存放在 $GOPATH/src/github.com/prasmussen/gdrive 文件夾,到這文件夾,可以找到一份設定檔案為 handlers_drive.go ,請打開這個文件,並修改第17/18行,將前面在Google Drive API設定的存取權限的Client ID與ClientSecret填入如下
    const ClientId = "367116221053-7n0v**.apps.googleusercontent.com"
    const ClientSecret = "1qsNodXN*****jUjmvhoO"
    
  5. 將專案建立起來
    $go build
  6. 建立之後,執行go env檢查環境參數,應該會有一個如下顯示的資料:
    $env:GOOS = "linux"
  7. 將建立的程式複製到可執行的地方,例如 /usr/sbin
    sudo mv gdrive /usr/sbin/gdrive
  8. 執行 gdrive list指令,會出現類似下面的畫面:
    這時,將https://accounts.google.com…整段網址複製再貼到瀏覽器,登入您的google帳號
  9. 選擇您的Google Drive的帳號讓這gdrive可以存取
  10. 將權限授予此應用程式,即可獲取驗證碼(verification code)
  11. 再將驗證碼貼到剛剛gdrive程式執行所需填入的verification code,完成後會出現您在Google Drive的檔案與文件夾資料。
  12. 測試上傳功能,
     # 上傳到Google Drive根目錄
    gdrive upload test.zip
    
    # 上傳到Google Drive的特定目錄。特定目錄的代碼,可透過網頁google drive上進行查看
    gdrive upload --parent 1dYSp4NcaRTykSebFt-UoAadszRhMQciX test.zip