2017年11月8日 星期三
WordPress Metadata Value format
但仔細看又不是JSON, 內容大概如下.
a:3:{s:4:"side";s:101:".......";} 這樣,
查了一下, 原來是把PHP物件序列化, 參考 Stack Overflow 說明
2017年10月7日 星期六
防止我公司的 MAIL 不會被設定為 垃圾郵件(SPAM)
參考網站:https://vovo2000.com/phpbb2/viewtopic-336398.html
公司的業務和主管向你抱怨,
Mail 寄出給國外客戶和廠商都收不到(跑倒垃圾信件匣)
甚至被當成垃圾郵件退回來?!
這一篇是寫給公司 IT/MIS 人員參考
1. 維護好公司的 smtp relay 安全
1.1 假設貴公司開放 SMTP ports 讓外部可以透過 smtp 發信
則要做好權限控管,沒有透過認證者 or IP 不再安全清單一律不許使用 SMTP 發信。
(也可考慮 VPN)
1.2 定期檢查使用者是否濫用 SMTP 寄送非公司相關信件
1.3 定期檢查使用者電腦是否中毒、中木馬成為發送廣告信的跳板
1.4 教育使用者足夠的資訊安全概念
1.5 請主要客戶、廠商幫忙,設定從公司來的郵件為「非垃圾郵件」
e.g.
Google Gmail 篩選器 (Filter) -> 不要將它傳送到垃圾郵件
http://mail.google.com/support/bin/answer.py?hl=b5&answer=6579
Yahoo奇摩 信箱的 「自動分類」
http://tw.promo.yahoo.com/tutorial/mail20/cg_filter1.html
Microsoft Outlook 的 「安全的收件者」
http://office.microsoft.com/zh-tw/outlook/HP052433571028.aspx
1.6 安裝相關的 Antivirus Mail Gateway or Mail-Server AntiVirus
1.7 定期檢查 Delivery Failures 的信件,
看看是否有定期寄給客戶、廠商的 mail address 已經失效,sent failed
請聯絡他們更換 address,減少 send/deliver failures。
2. 設定 DNS SPF TXT (Sender Policy Framework)記錄
詳細請看官網 http://www.openspf.org/
2.1 如何檢查 SPF TXT 記錄?
=> 使用 SPF 官網提供的 Tools
http://www.openspf.org/Why
http://www.kitterman.com/spf/validate.html
=> 或者用 dig 來查詢 Google & Hinet's public DNS
代碼:
dig @8.8.8.8 -t TXT your-company-org-school.com
dig @168.95.1.1 -t TXT your-company-org-school.com
2.2 或者寄送一封信到 spf-test@openspf.org
然後一分鐘內,你就會收到一個退信,
裡面有 Result="pass" 表示通過 SPF 測試驗證
如果是 Result="none" 那就表示 SPF 還沒有設定完成
2.3 如果你是使用 Google Apps 應用服務 (Google 代管郵件)
你的 SPF 應該長得是這樣子,都在同一行! 有 "double quote"
然後 all 前面是 ~ 波浪符號
代碼:
"v=spf1 include:aspmx.googlemail.com ~all"
2.4 另外記住 TXT 也是 DNS entries 的一部分,DNS 生效需要 24~48 小時。
2.5 舉例,成功的設定 SPF 會讓 Google Mail Gmail 更不會誤判垃圾信件
Example BEFORE-SET-SPF-TXT "NEUTRAL"
未設定之前,判定為「中立」
代碼:
Received-SPF: neutral (google.com: 74.125.82.52 is neither permitted nor denied by domain of XXXXXXXX) client-ip=74.125.82.52;
Authentication-Results: mx.google.com; spf=neutral (google.com: 74.125.82.52 is neither permitted nor denied by domain of XXXXXXXXX) smtp.mail=XXXXXXXXX
Example AFTER-SET-SPF-TXT "PASS"
設定之後,判定為「認證通過」
代碼:
Received-SPF: pass (google.com: domain of XXXXXXXXX designates 74.125.82.52 as permitted sender) client-ip=74.125.82.52;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of XXXXXXXXX designates 74.125.82.52 as permitted sender) smtp.mail=XXXXXXXXXXX
3. 設定反查
相較於正查: Host Name / Domanin --> IP Address
所謂的反查就是 IP Address --> Host Name / Domain Name
有一些 Mail server 會透過檢查反查來判定 SPAM 的分數。
設定反查在某些狀況可以降低被誤判的機率。
如果公司自己有自己的 DNS server,就自己改
(記得 ns1, ns2, ns3 ... 所有 ns 都要改)
如果是請 IDC/ISP 代管,
大部分的 IDC/ISP (Hinet/Seednet) 都可以請工程師幫忙設定反查,應該也免費;
有 IDC/ISP 的和上述 TXT 一樣,提供 DNS manager 介面提供可設定。
4. 減少強制附加「智財權聲明」簽名檔
有一些公司,在 outbound 的 mail 會強制附上
類似下面這種「智財、版權」聲明稿。
英文叫做
legal statement signature
legal declaration signature
copyright statement signature ...
而這個動作,
導致「郵件本文」有時候比「聲明簽名檔」還要小...
如果某一些舊機器判定的公式有這一條,
可能會增加被誤判的機率。
建議:
換成適當大小的圖片、減少字數、或者選擇適當的顏色、適當的字體(例如避免,白底白字)。
引言回覆:
本郵件之資訊可能含有受機密或特殊管制之資訊,僅供指定之收件人使用。若您並非指定之收件人,切勿轉寄、散佈、複製或公開本通訊內容之任何部份,並請即通知寄件人並完全刪除本郵件。
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. Please consider the environment before printing this email.
5. 時常查詢是否貴公司已經在黑名單
SPAM Black List or Block List Query
http://www.spamhaus.org/
http://www.spamhaus.org/lookup.lasso (SBL, XBL PBL)
http://www.dnsstuff.com/tools
http://www.openrbl.org/
時常檢查,或者寫一個簡單的 script 照三餐檢查。
6. 避免公布貴公司的 Mail,防止 SPOOF
避免 SPAM/Spoof Address Spider
6.1 有 Contact 需求請盡量用 Contact Web-Form or Skype or 電話號碼
6.2 如果真要公布請用 E-Mail 圖片 (e-mail address 用圖片展示)
6.3 盡量減少公布可以 group mail 的 address
7. 考慮使用 DKIM or Domainkey 金鑰簽署郵件
e.g.
使用 Google Apps 提供的 DKIM 功能,
一樣是 DNS TXT FIELD
代碼:
google._domainkey v=DKIM1; k=rsa; p=ABCDEFG.....
DKIM/DomainKeys 參考網址
http://www.dkim.org/
http://support.google.com/a/bin/answer.py?hl=zh-Hant&answer=174124
http://support.google.com/a/bin/answer.py?hl=zh-Hant&answer=180504&topic=2752442&ctx=topic
實作如下圖,多了一個「金鑰簽署者欄位」
2017年10月6日 星期五
SA / SD / RD / PG / PM / DBA / MIS
SA(SA: System Analyst) 系統分析師:
在軟體開發團隊中,屬於中高階的基層管理者與領導者。
他們除了須具備優秀的文字、語言溝通能力之外,還要有良好的分析、組織、邏輯思考能力。
當然也需要有良好的人際關係,以及深厚的技術背景與知識。
系統分析師的工作內容,依階段劃分大致可分為下述幾個階段:
系統分析:分析現行系統:確定系統的功能需求;確定系統的資源:保護及績效需求,
發展系統架構確定使用單位將面臨的環境及組織變遷。
初步設計:劃分作業子系統.擬定子系統的輸入、輸出、介面及作業處理流程:
子系統人工作業規格:邏輯質料庫設計:開列系統軟、硬體規格。
細步設計:設計實體資料庫:設計人工作業程序;設計文件表格及輸出、入格式;
擬訂程式規格及細步流程:確定公用常式與共用程式。
系統測試:根據分析階段所訂定的各種功能.加以測試,錯誤資料收集與分析。
資料轉換:整理及彙編文件.指派工作人員及進行訓練.進行資料轉換。
系統維護:更正系統內潛伏的錯誤:因適應環境的改變而做適度的調整
SD(System Designer)系統設計師:
系統設計師與 SA 所不同的是,
SA 所建構的是屬於偏向於領域的概念模型;而 SD 則是根據領域模型,
再配合實體的平台,考量其效能、穩定、分散與安全性等,所建構而得的軟體規格模型。
SD 的主要產出,仍包括了類別圖、循序圖以及 Database Schema,
而這些產出,都會與實體的平台相依。
而系統內部的分析與設計,是交由 SA 與 SD 來負責的,而 SA 與 SD 的界限,
可以以是否有與實體的平台相依來界定。
我們也可以以兩句話來說明分析與設計的關係:
“Do the right thing (分析)”and “Do the thing right (設計)”。
RD("R"esearch and "D"evelopment engineer)
研發設計工程師,簡稱研發工程師:
RD的分類:
一般有可能會遇到二種RD:一種是會不斷發問的RD. 一種是都沒有問題的RD.
然而,常問問題的人大多數是Key man. 是公司重要的人物.
會問問題代表著學習心強. 表達能力良好。
RD在公司的地位:
RD部門在公司是重要的單位. 但不代表有地位.
只要企劃, 業務或者是老闆有了想法,
不管有理無理, RD就要想辦法把他們的想法具體的實現出來.
採購, 倉管,工程每天追著RD要求配合,
生產線的媽媽,大姐們更是得罪不得,
她們會為了一顆電容擺放位置不好焊來跟你吵半天. 更別提客服部門的抱怨.
PG(Programming)程式設計師:
小主覺得programmer 較貼切
從每一個資訊的專業職位來看,程式設計師的定義都有一點差異,
但基本上你必須要具備幾項基本的資訊技術,
才得以勝任多數的資訊工作職位,以下的建議提供參考:
1. 必須至少專精一種程式語言.C,C++,Java都可以.
2. 必須至少專精一種作業系統.Windows,Linux.(可以管理與架設伺服器)
3. 瞭解資料庫.
4. 熟悉網路架構.
5. 要能讀懂英文的技術文件.
PM (Project Manager) 專案經理:
一般而言,比較大的公司才會有專案管理部 (Project Management Department)。
負責解決新機種生產、還有新產品研發過程中所有的問題。
PM專案管理師隸屬於專案管理部,通稱「專案經理」,簡稱 PM (Project Manager),
另外依功能不同,又可稱為「產品經理」 (Product Manager)。
所以,作為一個好的PM,必須
1.熟悉該產業的生產製造流程;
2.有好的溝通協調、管理能力;
3.良好的外語能力(英、日語為主)
要了解工廠內各部門(製造部、工程部、測試工程部、產品線、
開發採購、倉儲、物流處、關務...等等)的運作,
還有研發中心各部門(包括EE、ME、Layout、安規、EMI)的訴求和考量。
DBA (Database Administrator) 資料庫設計與管理人員:
資料庫設計與管理人員,最好本身也有寫程式的能力,這樣在管理上會如虎添翼,
就這部份的準備方式跟系統平台類似,熱門的SQL、Oracle、Sybase...等,
要能有一樣是最擅長的,其他的多少都要懂一點,有很多公司都是從SQL開始,
到後來轉成Oracle,所以如果跟不上企業的轉變,會是很大的缺憾。
MIS (Management Information System)管理資訊系統,即網管人員:
MIS依管理決策之需要,應用資料庫將一個機構之資訊整合處理分析,
以便即時提供各階層管理者使用。
2017年10月5日 星期四
Ubuntu Install Oracle Java8
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java8-installer
$ cat >> /etc/environment <<EOL JAVA_HOME=/usr/lib/jvm/java-8-oracle JRE_HOME=/usr/lib/jvm/java-8-oracle/jre EOL
2017年9月21日 星期四
Ubuntu 安裝MYSQL 後,無法由外部連線
第一次使用Ubuntu 16, 郤發現無法又外部連入,已確認帳號設定沒問題,
找了很久,原來是因為 在mysql.config 中限制了只有127.0.0.1 可以連線,
參考內容如下:
一台ubuntu伺服器上3306埠運行MySQL服務,使用SQL-Front連接,失敗。
處理:
1.防火牆
登錄ubuntu伺服器,查看iptable或者ufw,確認不是防火牆的問題。
2.netstat -an|grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
發現mysql只監聽在本地127.0.0.1,3306埠就沒對外開放,外部當然無法訪問。
修改也很簡單, 進入到mysql的設定檔所在目錄(/etc/mysql/my.cnf)下,找到檔中的如下內容:
bind-address = 127.0.0.1
將bind-address注釋掉。
再次netstat查看:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
3.還是無法訪問。接著查看資料庫連接帳戶的許可權。
>mysql -u root -p //root登錄
>select * from mysql.users;
%代表接受任意主機的連接。
修改:
GRANT ALL PRIVILEGES ON *.* TO 'use'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
4.重啟mysql服務/etc/init.d/mysql restart
2017年8月1日 星期二
notepad++ 駝峰式命名處理(CamelCase)
model.set_method_name
要改為 model.setMethodName
之前會用 UltraEdit 用find and replace, 26個字母都掃過一次。
後來文字編輯器全面改用NOTEPAD++, 相對的解決更簡單
find [_]{1,1}([a-z])
and replace to \U$1
記得要勾選規則運算式.
Ads
