Python 的 Repository 將搬到 GitHub 上

Python 宣佈將會搬到 GitHub 上:「[core-workflow] We will be moving to GitHub」,而目前應該是在 Mercurial 架的「Python.org Mercurial repositories index」上。

看討論有很多反對意見啊...

AWS 推出的 aws-shell

AWS 推出的 aws-shell 透過大量的 auto completion 幫助你管理 AWS 的各種資源,可以從官方說明看出是 AWS Command Line Interface (aws-cli) 的延伸:

An integrated shell for working with the AWS CLI.

程式是用 Python 寫的,可以透過 pip 直接安裝到自己的目錄下,官方說明支援 2.6.5+、2.7+、3.3+、3.4+,所以應該是不會有太多問題:

$ pip install aws-shell

第一次執行的時候放著讓他背景建立 index 會比較順。

e95d85da-a328-11e5-8b8d-67566eccf9e3

3648b4fc-a32c-11e5-8e18-92f028eb1cee

可以看到功能相當強,甚至可以連到 AWS 上取得資料。

建議 GitHub 上的首頁說明部份都先看完,然後裝起來先測試玩看看,對於真的要用的時候會方便很多。

另外他執行時真的丟到 shell 去跑,所以你可以 pipe 出去處理,像是這樣:

ec2 describe-instances | jq .

AWS Lambda 大躍進

AWS Lambda 丟出了一卡車超級基本的功能 (所以超級實用):「AWS Lambda Update – Python, VPC, Increased Function Duration, Scheduling, and More」。

首先是 AWS Lambda 可以跑在 VPC 裡了,這使得 Lambda 可以呼叫內部的 HTTP API 而不需要對 internet 打洞再用其他方式保護。

再來是 AWS Lambda 支援 Python 2.7 了,什麼?你問為什麼不是支援 Python 3?(頭轉過去)

然後可以跑 Cron 了!可以跑 Cron 了!可以跑 Cron 了!(很重要所以要說三次)

Cisco 釋出偵測是否有被植入後門的程式

前幾天在「在 Cisco Router 上被植入的後門」這邊提到了 Cisco 的 router 被植入後門,剛剛在 Zite 上看到 Cisco 放出檢查程式:「Cisco released a tool to scan for SYNful_Knock implants」。

程式是用 Python 寫的,可以在「Talos Intel - Synful Knock Scanner」這邊取得,但這個網站沒有用 HTTPS 保護,網站上提供的 Hash 簽名也沒有 PGP 簽名的資訊,從無信任起...

找了一下 Cisco 官方的資訊,在「SYNful Knock Scanner」這邊也有提供 Hash,請用這邊的值確認吧,這是目前能做到最好的確認了。

Amazon Redshift 支援用 Python 寫 UDF

Amazon Redshift 剛剛公佈可以使用 Python 寫 UDF:「Introduction to Python UDFs in Amazon Redshift」。

Redshift 是先編成 byte code 後再跑,所以不會有 C 或是 C++ 那麼快:

The Python execution in Amazon Redshift is also run as compiled byte code. Although this still won’t be as fast as the native C++ that runs your SQL, it will still be much faster than running through a Python interpreter.

不過因為彈性增加,以前必須用多個 SQL 甚至透過 temporily table 多次運算才能組出來的計算,現在用 UDF 應該會快很多。

Periscope 的人則馬上放出來一份他門所撰寫的版本:「Redshift User Defined Functions in Python」,程式可以在 GitHub 上的「Redshift UDF Harness」這邊取得。

可以用 UDF 變得方便很多啊,權重計算之類的好做不少...

PHP 5.5 的 Generators

在「Save memory by switching to generators」這邊提到了 PHP 5.5 開始提供的 Generators...

由於其他的程式語言有 Generators 的觀念,其實不會太難了解...

不過比較大的問題是,資料庫的查詢操作用 Generators 會把效能壓力壓回資料庫:因為資料庫需要把結果 buffering 在資料庫端,如果不趕快吐出去就是要找記憶體放... 也因此,比較常見到的解法是不要用 Generators。(因為 web 與 application 端相較於資料庫端,比較容易 scale)

後來用 Generators 比較多的印象中還是 filter 類的應用吧,Python 這邊的東西有陣子沒看了 :o

Facebook 的「Augmented Traffic Control」模擬網路環境

Facebook 推出 Augmented Traffic Control,模擬網路環境:「Augmented Traffic Control: A tool to simulate network conditions」。

可以測這五種變數:

  • bandwidth
  • latency
  • packet loss
  • corrupted packets
  • packets ordering

Facebook 的成果是 Python + Django 寫的前端管理界面,實際運作還是透過 Linuxiptables

也有提供 Vagrant 的操作方式讓人「試用」,主要是讓人在本機上就可以用吧?

XSScrapy:自動化 XSS 攻擊

也是不知道在哪邊看到的,反正容易安裝就裝起來玩玩看:「XSScrapy: fast, thorough XSS vulnerability spider」。XSScrapy 是一套自動化攻擊軟體,是目前這類測試軟體裡用起來最簡單的版本。

直接 clone 下來就可以執行了,如果有遇到 dependency 的問題,可以透過 pip 安裝:

pip install -r requirements.txt

執行的方法就這樣:

./xsscrapy.py -u http://example.com

上面這個方法是在訪客模式下慢慢跑,你也可以給他一組帳號密碼讓他填 form,他會試著登入後不斷打下去:

./xsscrapy.py -u http://example.com/login_page -l loginname -p pa$$word

也可以用 HTTP Basic Authentication:

./xsscrapy.py -u http://example.com/login_page -l loginname -p pa$$word --basic

然後發現的問題會寫到 XSS-vulnerable.txt 裡面:

XSS vulnerabilities are reported in XSS-vulnerable.txt

用法就這樣而已... XD

Python Practice Book

Python Practice Book 這份資料對於學過 Python 又不常用而導致常常忘記的人還蠻好用的,算是復健用的書?

裡面的範例都是以 Python 2 為主 (因為我拿 Python 3 測試,發現 print 用法不一樣了),不過還是不錯啦... 大量的範例程式碼可以看。