Weil Jimmer's BlogWeil Jimmer's Blog


Category:Experience

Found 53 records. At Page 5 / 11.

好用VPS推薦Linode-架設網站

No Comments
-
更新於 2017-05-04 20:31:40

作為長久以來的網站架設與經營者,我做個簡短的介紹各種網站服務的型態,以及為何選用VPS架設自己的網站。

架設網站通常有很多種形式,尤其是Web Shared Hosting,這種服務通常是沒有自己的硬體資源,而且還必須和其他帳號共用資源,例如CPU、RAM,如果太高可能導致帳號被停用。另外就是IP也是共享的,除非加付錢買獨立IP,不然通常是同一個IP架設很多個網站對應不同的域名,這是最便宜的網站架設方案,一個月可能只有一美金至十幾美金,也是我最不推薦的一種。

第二類就是Dedicated Web Hosting,擁有自己的空間流量、包刮CPU、RAM、IP…等,差不多等於一台伺服器就只架設一個網站,但代價就是價格非常的高,一個月會花上幾十美金至上百美金。

接著還有所謂的Cloud Hosting,和Web Shared Hosting是很類似的,只是它比較穩定,而且是由多台伺服器在一起,價格也不會特別昂貴。缺點是更新了網站資料要同步更新到很多台電腦上面。

最後,就是VPS(Virtual Private Server)了,將一台機器的設備切割成很多分不同的部分,不過,每個使用者是有自己的RAM、CPU、甚至是獨立IP,並且大多數的供應商都會提供ROOT權限(最高權限),所以,同一台設備上其他用戶怎麼操作都不會消耗到你自己的硬體資源!相對於上面所提到的各種服務,這算是比較折衷的方案,而且也比較深入系統,可以運行的程式不單單是WebServer,想架什麼就有可以架什麼,整個系統都是自己的,通常是要有一定Linux操作經驗,當然也有賣Windows系統的VPS。

我個人是偏好Linux,覺得比較好,沒有用太多資源,導致自己的資源變少的問題,價格又不會太高昂。除非買配備更高級的方案,價格從幾美金到上百美金都有。

VPS供應商很多個,現在有幾個很熱門的VPS,如:DigitalOcean、Linode、AWS,我個人是推薦Linode拉,覺得穩定,速度也還不錯。性價比感覺比較高。目前用了接近一年,網站上線率算高的,雖然"偶爾"(每幾個月)可能會被DDOS,導致下線,但也是極少數發生的情況,而且這是所有服務供應者的通病。

Linode的方案:超連結

DigitalOcean的方案:超連結

以十美金的方案來比,還是Linode勝出!價格相同,記憶體多1GB。

推Linode:https://www.linode.com/

有網友有其他意見,歡迎留言。

By Weil Jimmer


This entry was posted in General, Experience, The Internet, Note, WebHosting By Weil Jimmer.

Taskbar Progress 工作列 進度條 C# .NET

No Comments
-
更新於 2017-03-14 14:08:38

如上圖所示,工作列可以有進度條。本方法需要較底層,所以必須調用外部API。

請先下載參考:WindowsAPICodePack

載點一:
https://sites.google.com/site/1456wbff/home/WindowsAPI.7z?attredirects=0&d=1
載點二:
https://mega.nz/#!0J9BSbYB!4svqcg8liM6fRGDc9Zk-D_NjNzdMF5GEHY6vzLt13rY
載點三:
http://cht.tw/h/nrkw9

下載完畢後匯入參考,並使用代碼:

public void set_status_taskbar ( int value_, int max_ ) {
    if ( Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.IsPlatformSupported ) {
        var taskbarInstance = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.Instance;
		taskbarInstance.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Normal);
        taskbarInstance.SetProgressValue(value_, max_);
    }
}

public void set_status_finish () {
    if ( Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.IsPlatformSupported ) {
        var taskbarInstance = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.Instance;
        taskbarInstance.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.NoProgress);
    }
}

僅此作為筆記。


This entry was posted in C#, General, Experience, Note By Weil Jimmer.

淺談 HTTP、HTTPS、HSTS 安全 MITM、SSLStrip

No Comments
-
更新於 2017-10-17 22:29:26

眾所皆知要監聽帳號密碼已經不是難事,如上圖所示已經取得了"非HTTPS"加密連線的帳號密碼。最近研究少有成果,來寫篇文章留個紀念,當作我已經懂了原理。若有錯還請各位高手指正。

正常HTTP連線是不會有任何駭客可以侵入,例如手機網路(不談破譯基站或偽造基站)、非共用的私人網段。

一旦在區域網路上有他人的存在,就可能造成資安漏洞被MiTM(中間人)攻擊,竊聽信用卡、帳密…等資訊,例如:公用電腦、公用WiFi。所以很多重要網站(如:Google、FB)都有透過加密連線。如下圖所示,綠色鎖頭 https。

HTTPS的誕生就是預防被竊聽,它的加密現在有兩種形式,一個是RSA、另一個是ECC,都是利用數學難題作為基礎來加密資訊。

由上圖可知,每台電腦在出廠時,都會有"證書"存在自己電腦,不需要經過網路傳輸。也就是 CA Root 。所有證書的簽發都是一層一層向下簽,CA簽發給CA下的單位如DV、OV、EV證書驗證機構,再簽發給域名。而瀏覽器默認信任CA Root,由於來源可靠,故此域名就跟著被一塊信任。

當攻擊者想要竊聽 HTTPS 時會造成問題,因為攻擊者沒有私鑰,無法解密訊息,導致此監聽就無意義了,故只能偽造證書。但是偽造證書會出現一個問題,瀏覽器會警告用戶此證書不可信任(域名錯誤、來源不可信…等)!

所以攻擊者需要監聽HTTPS的辦法就是,想辦法讓瀏覽器不要透過HTTPS連線,利用SSLStrip可以達到此目的,假設此伺服器是強制HTTPS的情況,就會變成駭客與伺服器做安全連線,而真實用戶與駭客間採用HTTP連線。

因為這種情況的發生,所以進而加入一個新功能HSTS,嚴格HTTPS連線,一旦連上了HTTPS,就會發送HSTS頭部訊息,瀏覽器接收後,此後不管任何到此域名的連線都會變強制在本地端做307導向。使攻擊者只能接受並原封不動的傳送此連線資訊,而無法被監聽。

但不少用戶在瀏覽器網址框都是直接打 域名 或是 打 http:// 而不是 https:// ,所以普遍用戶都是 301 轉跳到 HTTPS,在第一次連接時的頭部訊息,如果發動了攻擊,就可以偽造後續所有連線,所以…SSLStrip還是略勝一籌阿。

基於此緣故,現行網際網路又推行了一個新東西:HSTS preload,顧名思義,預先載入,各網站的擁有者可以登入自己的域名到 preload list,等日後瀏覽器更新時,就會把這些網站列表編譯進瀏覽器內。此後瀏覽器,不用透過 301 轉向,直接查詢網站是否在清單裡,如果存在,則直接強制HTTPS連線,就算用戶輸入 http:// 開頭,還是一樣強制307轉跳到https連線。

這已經是終極預防措施,不過,經過我去查網路上某資訊得知,這個清單在Chrome瀏覽器中並非靜態,造成可以利用Delorean時間竄改工具(參考),攻擊瀏覽器,使之 preload 清單的 域名 過期,回到原本 先訪問 HTTP 再 轉跳 HTTPS 的模式,造就了 駭客再次入侵。SSLStrip 還是贏了……防不勝防!上網時要注意看是不是綠色鎖頭喔~


This entry was posted in General, Experience, The Internet, Note, WebHosting, Wi-Fi By Weil Jimmer.

不用寄信 檢查 Email 是否 真實 存在 PHP

No Comments
-
更新於 2016-08-04 20:48:17

最近很常研究 Email,由於是自己架設伺服器,比較麻煩,所以更深入研究了一下下。

今天想到就寫一篇,真實檢查 Email 的方法,因為這個不是驗證 Email 格式與否,而是直接驗證 此Email是否存在,並且無須寄信即可以檢查。

首先先查詢 Email @後域名的MX紀錄,再查此IP,得到 IP 後即可透過 TCP 連線至該 SMTP 伺服器驗證以確立此 Email 確實存在,而不是亂打的。

//Check email is exist
var_dump(check_is_email_real_exist("test@example.com"));

function check_is_email_real_exist($email_address){
	if ((!filter_var($email_address, FILTER_VALIDATE_EMAIL)===false) and strlen($email_address)<=254){
		$emailxx=explode('@',$email_address);
		$dns_lookup_result=dns_get_record($emailxx[1],DNS_MX);
		if (count($dns_lookup_result)==0){
			return false;
		}else{
			$address=gethostbyname($dns_lookup_result[0]['target']);
			if ($address!=''){
				$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
				if ($socket === false) {
					echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
					return false;
				}
				$result = socket_connect($socket, $address, 25);
				if ($result === false) {
					echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
					return false;
				}
				$in = "HELO hi\r\n";
				socket_write($socket, $in, strlen($in));
				if(substr(socket_read($socket, 2048),0,3)=='220'){
					$in = "MAIL FROM:<thisistest@gmail.com>\r\n";
					socket_write($socket, $in, strlen($in));
					if(substr(socket_read($socket, 2048),0,3)=='250'){
						$in = "RCPT TO:<$email_address>\r\n";
						socket_write($socket, $in, strlen($in));
						if(substr(socket_read($socket, 2048),0,3)=='250'){
							$in = "QUIT\r\n";
							socket_write($socket, $in, strlen($in));
							if(substr(socket_read($socket, 2048),0,3)=='250'){
								return true;
							}else{
								return false;
							}
						}else{
							return false;
						}
					}else{
						return false;
					}
				}else{
					return false;
				}
			}else{
				return false;
			}
		}
	}else{
		return false;
	}
}

代碼醜陋,請各位看官不要介意。


This entry was posted in General, Experience, Functions, PHP By Weil Jimmer.

Bash 自動備份網站與異地備份

No Comments
-
更新於 2016-07-25 17:48:02

這是我現在所用的方法,直接分享出來,備份壓縮網站資料與資料庫十日,自動刪除近十日之外的檔案。

建立一個 backup.sh 檔案,內容如下:(FTP地址帳密、網站路徑、資料庫密碼…要自己修改一下)

#!/bin/sh

THESITE="example.com"
THEDATE=$(date +%Y-%m-%d_%H_%M_%S)

mysqldump --defaults-file=/home/user/secret.cnf --user=root --host=localhost --all-databases | gzip > /var/www/$THESITE/backup/db_$THEDATE.sql.gz

tar czf /var/www/$THESITE/backup/site_${THEDATE}.tar /var/www/$THESITE/public_html/
gzip /var/www/$THESITE/backup/site_${THEDATE}.tar

find /var/www/$THESITE/backup/site* -mtime +10 -exec rm {} \;
find /var/www/$THESITE/backup/db* -mtime +10 -exec rm {} \;

echo "OK"

ftp -n 31.170.xxx.xxx <<End-Of-Session
user USERNAME "PASSWORD"
binary
cd /public_html/backup/secret_path
put "/var/www/$THESITE/backup/db_$THEDATE.sql.gz" "db_backup.sql.gz"
put "/var/www/$THESITE/backup/site_${THEDATE}.tar.gz" "site_backup.tar.gz"
bye
End-Of-Session

wget http://backupsite.com/ -O /tmp/keep_online
rm /tmp/keep_online

創一個文檔在 /home/user/secret.cnf (或你喜歡的地方),然後設定權限 400 或 600 內容填入如下。

[client]
password="MYSQL_PASSWORD"

最後 在終端機 打指令

crontab -e

在最下面加入:(設定定時任務,零時零分自動備份網站並透過FTP外寄出去)

0 0 * * * sh /the_path_you_want/backup.sh

這樣就可以完成幾乎全自動的備份。


This entry was posted in Bash, General, Experience, Functions, Note, WebHosting By Weil Jimmer.

最前頁 上一頁  1 2 3 4 5 6 7 8 9 10 11 /11 頁)下一頁 最終頁

Visitor Count

pop
nonenonenone

Note

台灣假新聞橫行,沒一家霉體能信的,網軍側翼到處洗風向,堪憂。

政府根本不怕你拿法律當武器,只怕你放下法律拿起武器

不要和愚蠢的人發生爭執。

支持網路中立性.
Support Net Neutrality.

飽暖思淫欲,
饑寒起盜心。

朱門酒肉臭,
路有凍死骨。

支持臺灣實施
無條件基本收入

歡迎前來本站。

Words Quiz


Search

Music

Blogging Journey

4558days

since our first blog post.

Quotes

The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Facebook is EATING the Internet

Facebook

Categories

Android (7)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (53)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (62)

Git (3)

HTML (7)

Java (13)

JS (7)

Mood (24)

NAS (2)

Note (33)

Office (1)

OpenWrt (6)

PHP (9)

Privacy (4)

Product (12)

Python (4)

Software (11)

The Internet (26)

Tools (16)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)