2022年4月28日 星期四

OWASP ZAP 網站安全性測試工具介紹

OWASP ZAP 網站安全性測試工具介紹

What is OWASP

開放網路軟體安全計畫,簡稱OWASP (Open Web Application Security Project)是一個開放社群、非營利性組織,其主要目標是研議協助解決網路軟體安全之標準、工具與技術文件,長期致力於協助政府或企業瞭解並改善應用程式的安全性。 目前OWASP全球擁有220個分部近六萬名會員,共同推動了安全標準、安全測試工具、安全指導手冊等應用安全技術的發展。

美國聯邦貿易委員會(FTC)更強烈建議所有企業務必遵循OWASP所發佈的十大網路弱點防護守則,美國國防部亦將此守則列為最佳實務,就連國際信用卡資料安全技術PCI標準更將其列為必要元件。

OWASP 頒布並且定期維護更新的web安全漏洞TOP 10,也成為了web安全性領域的權威指導標準,同時也是IBM APPSCAN、HP WEBINSPECT等掃描器漏洞參考的主要標準。


What is ZAP

OWASP ZAP,全稱:OWASP Zed Attack Proxy是全世界最受歡迎的免費網站安全性測試工具之一。 於2010年9月從Open Web Application Security Project (OWASP) 開發。


ZAP的工作原理

在安全性測試領域,安全性測試主要可以由以下幾種測試策略來覆蓋:
漏洞分析  -  對系統進行掃描來發現其安全性隱患
滲透測試  -  對系統進行模擬攻擊和分析來確定其安全性漏洞
運行時測試 -  終端用戶對系統進行分析和安全性測試(手工安全性測試分析)
代碼審計  -  通過代碼審計分析評估安全性風險(靜態測試,評審)

ZAP主要是用於應用上述的第二種測試,即滲透性測試。

ZAP以架設代理(proxy)的形式來實現滲透性測試,類似於fiddler抓包機制。他將自己置於用戶瀏覽器和服務器中間,充當一個中間人的角色,瀏覽器所有與服務器的交互都要經過ZAP,這樣ZAP就可以獲得所有這些交互的信息,並且可以對他們進行分析、掃描,甚至是改包再發送。


ZAP有以下重要功能
  • 本地代理
  • 主動掃描
  • 被動掃描
  • 模糊測試
  • 暴力破解


安裝與設定OWSAP ZAP

依照自己的作業系統來下載安裝檔並執行安裝。
Windows和Linux版本需要執行Java 8或更高版本JDK,MacOS安裝程式包括Java 8;

安裝完成後剛打開會出現以下對話框,詢問是否要保持ZAP session。

*保存進程(Session)則可以讓你的操作得到保留,下次只要打開歷史進程就可以取到之前掃描過的站點以及測試結果等。



調整預設的Port(預設為8080常會被其他的程式占用,所以就先調整一下為8880。)
進入工具 / 選項 /  本地代理(local proxies)






設定瀏覽器Proxy

FireFox
設定 / 網路設定 / 手動設定Proxy
將【埠號】設定成跟ZAP設定的一樣就可以了。


更新套件

點選下圖圖示查看是否需要安裝或是更新套件。



ZAP Marketplace(市場)
Marketplace為套件市場,是選擇性安裝的套件。主要分為一下3類的套件:


release:為經過長期驗證比較成熟的
beta:為正在測試測試中的件,可能會出現問題
alpha:比beta更加低的測試版
建議release和beta版的可選擇性安裝!


取得憑證

ZAP取得憑證(工具>選項>Dynamic SSL Certificates)
1.先點選【生成】產生憑證。
2. 點選【保存】儲存憑證。

匯入憑證

firefox
設定 > 隱私權與安全性 > 憑證 > 檢視憑證 > 憑證機構 
1.按下【匯入】選擇剛剛儲存的認證檔(owasp_zap_ca.cer)。
2.勾選識別憑證機構的用途(全部勾選)後按下確定。
3.到瀏覽器去某個https網站沒有出現警告就表示匯入憑證成功。瀏覽器的兩旁會出現如圖所示的工具列就表示ZAP已在執行中了。



匯入憑證OWASP ZAP 掃描模式

安全模式 :已比較安全的方式去掃描網站,不會對網站做任何破壞性的操作。
保護模式(Protected Mode):只對指定的網站做一些危險性的掃瞄。
標準模式:會有一些危險的掃描動作,有可能對目標站點做一些破壞,但破壞不會很大。
攻擊模式:能掃描多少掃多少,能有多猛就多猛。

OWASP ZAP滲透測試(自動掃描)

ZAP提供自動掃瞄功能,用戶只需要輸入要測試的地址(URL),ZAP Spider便會將整個網站內的分頁進行掃瞄,如掃瞄出有問題的分頁,ZAP會顯示出不同階級的警告。
在快速攻擊過程中,ZAP做了以下幾件事:
.使用爬蟲抓取被測站點的所有頁面。
.在頁面抓取的過程中被動掃描所有獲得的頁面。
.抓取完畢後用主動掃描的方式分析頁面,功能和參數。
點選【Automated Scan】> 輸入預備攻擊的網址(URL to Attacl) > 點選【攻擊】> 爬蟲就會開始掃描



掃瞄完畢後,檢測到這網頁可能有潛在的漏洞(安全性風險項),不同階級的警告會顯示出來:




人工瀏覽

         使用『Manual Explore』開啟瀏覽器去,去執行網站的每一個頁面像是用人工去爬行頁面一樣。執行過的頁面都會被ZAP記錄下來。

之後也是可以選擇某個網址來做主動掃描(Active Scan)並加上個策略。




模糊測試(Fuzz)

Fuzz測試也叫做模糊測試,是一種挖掘程式安全漏洞檢測程式健壯性的黑盒測試,它通過向程式輸入非法的字段,然後觀測被測試程式是否異常而實現。也有人稱這個為暴力破解。

ZAP Fuzz功能選項入口

從站點選擇某個需要登入的站台按滑鼠右鍵出現選單展開『攻擊』選單點選Fuzz...選項

利用內建字典來做暴力破解

找到要替換的參數,選擇內建的字典。




利用內建字典來做SQL Injection

與上面做法差不多。選擇好參數後打開選單後選擇File Fuzzers 打開jbrofuzz 選擇SQL Injection。




通過 REST API 以程式設計方式與 ZAP 進行互動

隨著Web服務和微服務的增加,安全性從未如此重要。 ZAP 有一個定義和 文件 都非常好的 API,它可以通過各種工具,平臺或自定義指令碼以程式設計方式輕易的訪問。ZAP API 可以直接通過瀏覽器或使用諸如Java,Python,Node JS,.NET,PHP和Go等程式語言使用。ZAP UI 可通過 http://zap 從瀏覽器中訪問或通過 http://localhost:port  從代理中訪問。ZAP官網有提供一些資訊或是套件可以參考網址:


設定Postman通過ZAP掃描REST API

ZAP已經有設定好代理服務器(Proxy),這樣Postman就可以設定通過ZAP代理服務器發出Request請求。
postman打開上方菜單『選項』或是從Preferrence打開『選項』。選擇Proxy頁籤來設定。
1.勾選Add a custom proxy configuration
2.設定Proxy Server的位置跟埠號(要跟ZAP設定的一樣)




3.然後可以去執行Postman之前設定過的API
4.這樣ZAP就會去捕捉到postman執行的紀錄,就可以判斷此API的是否安全。

用了ZAP就安全了嗎?

雖然ZAP的自動掃描功能非常強大,但對於OWASP Top 10(https://owasp.org/Top10/zh_TW/)中的某些項或者Top 10以外的一些安全漏洞,想要通過ZAP掃描檢測出來是非常困難的,比如Top 10中的A5 「Security Misconfiguration」 就很難通過掃描檢測出來,所以ZAP所能掃描到的安全漏洞只是OWASP Top 10的一個子集。

如果我們在軟體已經編碼完成之後再引入安全檢查和測試,那麼軟體的安全質量已經確定,後期的修復只能解決已經發現的安全漏洞,不能讓軟體更加安全,而且對於這些安全缺陷,發現得越晚,修復的成本就會越高。

微軟提出的SDL(Security Development Lifecycle)提出了很多軟體開發過程中非常好的的安全活動,其核心理念就是將軟體安全的考慮集成在軟體開發的每一個階段,從需求,設計,編碼,測試,到最後的發布整個過程中。



可靠的安全測試只能避免安全漏洞造成更大的危害和影響,並不能打造安全的產品,真正的安全產品必定需要整個軟體開發過程中每個環節的保障,需要從業務分析階段就將安全作為重要的考慮因素,將安全實踐融入到整個軟體開發過程中,所有角色共同參與,這樣才能做到真正的內建安全。

參考:
https://www.tpisoftware.com/tpu/articleDetails/2161(網頁安全性測試:OWASP ZAP使用入門)
https://www.zaproxy.org/docs/desktop/start/ OWASP Zed Attack Proxy (ZAP) Desktop User Guide.
https://read01.com/5QnNME.html 用了 ZAP,你的軟體就安全了嗎?
https://www.mxp.tw/9267/ ([WordPress] 通過 OWASP ZAP 黑箱安全性檢測的幾個要點)
https://hitcon.org/2017/CMT/slide-files/d2_s3_r4.pdf
https://www.bilibili.com/s/video/BV1Y54y127Jp OWASP ZAP漏洞扫描实战指南(四)Web渗透攻防演练-Web漏洞扫描-OWASP ZAP模糊测试-编码解码
https://www.bilibili.com/video/BV1U4411A7Yh  OWASP_ZAP 截断代理、主动、被动扫描
https://www.modb.pro/db/394192  阿萨聊测试 ZAP4:如何用ZAP 做Fuzz测试?

https://www.796t.com/content/1542194773.html 【應用安全】微軟的安全開發生命週期(SDL)

https://www.xuehua.us/a/5ebb5b6886ec4d2e7e8052e3?lang=zh-hk Kali Linux Web滲透測試手冊(第二版) - 8.3 - 使用OWASP ZAP進行掃描漏洞



2020年10月29日 星期四

Laravel & Google BigQuery

 

因為最近要從Firebase Cloud Message發出訊息通知,並要將發送的結果撈出,所以做了點筆記。免得以後忘記。

安裝官方版套件:
  • 安裝:
            在Laravel 安裝 官方版BigQuery套件 composer require google/cloud-bigquery
    
  • 認證方式: 
      有兩種方式可以設定認證方式
      use Google\Cloud\BigQuery\BigQueryClient;

      // Authenticating with keyfile data.
        $bigquery= new BigQueryClient([
        'keyFile' => json_decode(file_get_contents('/path/to/keyfile.json'), true)
        ]);

        // Authenticating with a keyfile path.
        $bigquery= new BigQueryClient([
        'keyFilePath' => '/path/to/keyfile.json'
        ]);

        另外還需要提供Google Cloud project ID才能往下做下去.
        // Providing the Google Cloud project ID.
        $bigquery= new BigQueryClient([
        'projectId' => 'myProject'
        ]);
    
  • 範例:
         public function run_query(){
            $bigQuery = new BigQueryClient([
                'keyFilePath' => "../".env('GOOGLE_APPLICATION_CREDENTIALS'),
                'projectId' => "project_id",
            ]);
        
            // 统计消息指向的非重复应用实例(instance)的数量
            $query = "SELECT COUNT(DISTINCT instance_id)
            FROM `project_id.firebase_messaging.data`
            WHERE
            _PARTITIONTIME = TIMESTAMP('2020-10-27')
            AND event = 'MESSAGE_ACCEPTED';";
        
            $queryJobConfig = $bigQuery->query($query);
            
            $queryResults = $bigQuery->runQuery($queryJobConfig);
        
            foreach ($queryResults as $row) {
                print_r($row);
            }
        }

將內容抓出後可能會看到一些欄位與相關的單詞,可以參考下面的表格內容:
_PARTITIONTIME时间戳此伪代码列包含数据加载当天的起始的时间戳(采用世界协调时间 (UTC))。对于 YYYYMMDD 分区的情况,此伪代码列包含值 TIMESTAMP('YYYY-MM-DD')。
event_timestamp时间戳服务器记录的事件时间戳
project_numberINTEGER发送消息的项目的唯一编号
message_idSTRING消息 ID 用于标识消息。消息 ID 根据应用 ID 和时间戳生成,在某些情况下可能不是全局唯一的。
instance_idSTRING消息发送到的应用的实例 ID(如有)
message_typeSTRING消息的类型。可以是通知消息或数据消息。主题用于标识主题或广告系列发送的原始消息;后续消息则为通知消息或数据消息。
sdk_platformSTRING接收消息的应用所在的平台
app_nameSTRINGAndroid 应用的软件包名称或 iOS 应用的软件包 ID
collapse_keySTRING标识一组可折叠消息的折叠键。若未连接设备,则仅具有给定折叠键的最后一条消息将排队等待最终传送。
优先级INTEGER消息的优先级。有效值包括“normal”(普通)和“high”(高)。在 iOS 中,这些值相当于 APNs 优先级中的 5 和 10
ttlINTEGER此参数指定设备离线后消息在 FCM 存储中保留的时长(以秒为单位)
topicSTRING消息发送到主题的名称(如适用)
bulk_idINTEGER标识一组相关消息(例如向某个特定主题发送的一组消息)的批量 ID
事件STRING事件的类型。可能的值包括:MESSAGE_ACCEPTED:FCM 服务器收到消息,且请求有效;
MESSAGE_DELIVERED:消息已发送到设备上的应用的 FCM SDK。默认情况下,此字段不会被传播。要启用此功能,请按照 [`setDeliveryMetricsExportToBigQuery(boolean)`](https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#public-void-setdeliverymetricsexporttobigquery-boolean-enable)) 中的说明进行操作。

MISSING_REGISTRATIONS:由于注册缺失,请求被拒绝;
UNAUTHORIZED_REGISTRATION:消息被拒绝,因为发送者无权向注册发送消息;
MESSAGE_RECEIVED_INTERNAL_ERROR:处理消息请求时发生不明错误;
MISMATCH_SENDER_ID:由于发送消息的发送者 ID 与声明的端点 ID 消息不匹配,发送消息的请求被拒绝;
QUOTA_EXCEEDED:由于配额不足,发送消息的请求被拒绝;
INVALID_REGISTRATION:由于注册无效,发送消息的请求被拒绝;
INVALID_PACKAGE_NAME:由于软件包的名称无效,发送消息的请求被拒绝;
INVALID_APNS_CREDENTIAL:由于 APNS 证书无效,发送消息的请求被拒绝;
INVALID_PARAMETERS:由于参数无效,发送消息的请求被拒绝;
PAYLOAD_TOO_LARGE:由于负载超出限制,发送消息的请求被拒绝;
AUTHENTICATION_ERROR:由于出现身份验证错误,发送消息的请求被拒绝(请检查用于发送消息的 API 密钥);
INVALID_TTL:由于 TTL 无效,发送消息的请求被拒绝。
analytics_label字符串借助 HTTP v1 API 时,可以在发送消息时设置分析标签,以便标记消息以供分析之用
  • 參考網址:

2017年6月1日 星期四

composer install or update package in the Bitbucket

修改會用到此package的專案下的composer.json
1.在"require"或是"require-dev"裡新增一筆要安裝的套件資訊.其中如果這個套件還在開發中的話請填寫bitbucket對應的branch.branch如果是master的話請在前面加上『dev-』變成dev-master。
例如:
"require" : {
        "php" : ">=5.6.4",
        "bitbucket_account/packagename": "dev-master"
    },

2.如果這套件沒有註冊到Packagist上所示私有套件,我們需要在下方多加一段repositories資訊
例如:
"repositories": [
        {
            "type": "package",
            "package": {
                "name": "bitbucket_accoun/packagename",
                "version": "master",
                "source": {
                    "type": "git",
                    "url": "https://bitbucket_account@bitbucket.org/bitbucket_account/packagename.git",
                    "reference": "master"
                },
                "autoload": {
                    "psr-4": {
                        "package_namespace" : "src/"
                    }
                }
            }
        }
    ],

上面的version與reference皆是對應到bitbucket對應的branch.
psr-4下的package_namespace 裡的斜線要寫成\\。如"psr-4":{"Ace\\King\\":src/"}


composer.json的說明可以看這裡(官方說明文件)

2017年5月23日 星期二

Laravel5+Docker Windows開發環境安裝

開發環境:WINDOWS 10 ,Ecplise(Neon.3 Release 4.6.3),PHP 5.6,Laravel 5.3
執行環境:WAMP,Docker, AWS EC2,AWS RDS


1.先在windows下載安裝composer(可以參考這裡)

2.接著安裝Laravel5

composer global require "laravel/installer"
安裝完後要記得確定把 ~/.composer/vendor/bin 路徑放置於你的 PATH 或是 開發專案 裡,這樣 laravel 執行檔就會存在於你的系統之中。

3.開啟一個新專案
     3.1 進入命令提示字元( 開始→執行  cmd )
     3.2 進入專案上層路徑( 例如 cd  c:/wamp64/www )
     3.3 輸入 composer create-project laravel/laravel laravel_test 按下enter 系統就會去建立專案所需的檔案。最後看到Application key [base64:~~~~~~~~~~~] set successfully.就表示專案已經建立完成了!

      
     3.4 測試一下local 連結http://localhost/laravel_test/public/ 會出現下圖


     
4.將此開發環境放到Docker裡去
   因為公司之後要上線的環境會以Docker的方式在AWS ECS上執行,所以就先將此專案開發環境變成一個Docker Container。
   4.1 進入Windows PowerShell只要下這個指令:
       docker run -idt --name 專案名稱 -p 8100:80 -v /你的.aws位置/.aws/:/root/.aws/ -v /你的local專案路徑/:/var/www/html/專案名稱/資料卷名稱
如 docker run -idt --name laravel_test -p 8080:80 -v C:\Users\Asus\.aws:/root/.aws/ -v  c:/wamp64/www/laravel_test/:/var/www/html/laravel_test php:5.6.30-apache
就會將此環境對應到docker container裡去。
    
     4.2 測試一下輸入local docker網址:http://localhost:8100/laravel_test/public/ 會出現跟之前一樣的畫面


     
這樣就完成了Laravel5環境的安裝了!!!

2017年5月4日 星期四

簡易Docker指令

    最近公司使用AWS ECS+Docker來開發專案.所以在這裡把一些會用到的Docker指令記錄下來。



  • 要直接在Local端Docker可以這樣下
$ docker run -idt --name container名稱 -p 7000:80 -v /你的.aws位置/.aws/:/root/.aws/ -v /你的開發專案路徑/:/var/www/html/專案名稱  要使用的資料卷名稱

資料卷可以使用自己之前就建立好的docker image或是去https://hub.docker.com/下載自己喜歡的image

  • 察看有多少container:

docker ps

  • 進入Docker操作

docker exec -ti [CONTAINER ID] bash

  • 查看有多少container image

docker image ls

  • 啟動docker container

docker start <container id>

  • 停止docker container

docker stop <container id>

  • 刪除docker container

docker rm <container id>

  • build docker container image
1.先cd到專案下有Dockerfile的路徑下
2.執行 docker build .
3.成功後會有一個image id

如果你要做出可以識別的container image的話你可以這樣改下這樣的指令
docker build . -t name:tag

name:通常是倉庫名稱 username/repository
tag:想要識別的標籤

  • 將docker container image放到一個可執行的container的環境裡

docker run -idt --name <container name> -p 7788:80 <docker container image  id>
例:docker run -idt --name Exhibition2 -p 7788:80 362cf48f3511

  • 從docker 檔案出來到local環境

docker cp <container id>:<path in container> <local file path >

  • 從local環境copy檔案到docker container裡去

docker cp <local file path>  <container id>:<path in container> 



  • 將Container Image轉存到本機端檔案
docker save container image repository >  xxxxxxx.tar





2017年2月6日 星期一

隱私權保護政策

隱私權保護政策的內容

本隱私權政策說明 WuHome Studio (以下說明將以"我們"或"我們的"簡稱)通過我們的應用程式(APP)及網站收集到的資訊,以及我們將如何使用這些資訊。我們非常重視您的隱私權。請您閱讀以下有關隱私權保護政策的更多內容。

我們使用您個人資料的方式

本政策涵蓋的內容包括:WuHome Studio 如何處理蒐集或收到的個人資料 。個人資料是指得以識別您的身分且未公開的資料,如姓名、地址、電子郵件地址或電話號碼。
本隱私權保護政策只適用於 WuHome Studio。

資料蒐集及使用原則

我們收集資訊是為了向所有使用者提供更優質的服務;這些資訊可協助我們判斷基本設定 (例如您使用的語言),甚至分析更複雜的內容 (例如對您最實用的廣告),蒐集您與我們或我們的商業夥伴交易的資料,包括您使用我們所提供服務的相關資料,這些資料將提供內部及外部客戶不載有個人資料之市場分析或業務報告。若需使用個人資料我們只會在徵得您的同意時,才與WuHome Studio以外的其他公司、機構或個人分享個人資訊。分享任何敏感的個人資訊前,我們都會先徵求您的同意。

我們會審查收集、儲存、處理資訊的做法 (包括採取實體安全措施),保護系統不致發生未經授權的存取,我們僅允許為了代表我們處理個人資訊而需要知悉該等資訊的WuHome Studio員工、承包商和代理人存取資訊。且相關人員均須遵守嚴格的契約保密義務,一旦未遵守義務便將受到懲戒或解約處分。

其他技術收集資訊細節

➤ 軟硬體相關資訊
我們會收集裝置專屬資訊 (例如您的硬體型號、作業系統版本、裝置唯一的識別碼,以及包括電話號碼在內的行動網路資訊)。
➤ 地理位置資訊
當您使用APP服務時,我們會收集並處理您實際所在位置的相關資訊。我們會使用各種技術判斷您的所在位置,包括 IP 位址、GPS 和其他感應器 (例如能夠為APP提供附近裝置、Wi-Fi 存取點和手機基地台相關資訊的感應器)。
➤ 專屬應用程式編號
某些服務所附的專屬應用程式編號;當您安裝或解除安裝這類服務,或是這類服務定期與我們的伺服器連線 (例如進行自動更新) 時,系統就會將這個編號以及安裝資訊 (例如作業系統類型和應用程式版本號碼) 傳送給WuHome Studio。
➤ 本機存放區
我們會運用瀏覽器網路存放區 (包括 HTML 5) 和應用程式資料快取等機制,收集資訊 (包括個人資訊) 並將其儲存在您的裝置本機中。
➤ Cookie 和匿名識別碼
當您使用我們的服務時,我們以及我們的合作夥伴會使用各種技術收集並儲存某些特定的資訊,包括將一個或多個 Cookie 或匿名識別碼傳送至您的裝置。此外,當您與我們為合作夥伴提供的服務 (例如其他網站顯示的廣告服務或功能) 產生互動時,我們也會使用 Cookie 和匿名識別碼。我們會使用 Google Analytics (分析) 產品收集您的使用資訊及應用程式的流量。搭配廣告服務 (例如採用 DoubleClick Cookie 的服務) 使用時,系統會藉由相關技術,將 Google Analytics (分析) 的資料與多個網站的瀏覽數據相互連結。

兒童線上隱私保護法案

我們的所有兒童類APP及網站產品皆遵守兒童線上隱私保護條款the Children’s Online Privacy Protection Act (“COPPA”),我們不會收集任何未滿13歲兒童的個人資訊,如檢測到年齡小於13歲的相關資訊,我們將及時刪除,不會予以保留或儲存。

隱私政策修改與主管機關的配合

我們會與當地的資料保護機構等適當主管機關合作,並且定期自我審查是否遵守"隱私權政策"。我們也會恪守幾項自律架構。我們收到正式的書面申訴後,會與申訴人聯絡,處理後續事宜。
我們的"隱私權政策"會不時變更。我們不會在未經您明確同意的情況下,即縮減本"隱私權政策"賦予您的權利。隱私權政策變更時一律會在本頁發佈。

第三方網站連結

我們可能會提供從我們網站連結或連結到第三方網站的服務,但對第三方網站的隱私權做法或內容,我們不予以干涉及負責。另外誠懇的提醒使用者在使用第三方服務時一定確認自己的隱私權相關訊息。

2015年11月11日 星期三

Drupal 上傳檔案到AWS S3上的方法(Upload File to AWS S3 From Drupal)

1.先在Drupal 安裝兩個Modules

     1.S3 File System (https://www.drupal.org/project/s3fs)
     2.Libraries API (https://www.drupal.org/project/libraries)

2.安裝AWS SDK for PHP 2.x library

     1.下載AWS SDK for PHP 2.x library的zip檔 (不能下載3.x版本會有問題)
     下載參考網址:https://github.com/aws/aws-sdk-php/releases
     目前是下載Version 2.8.23版的zip檔(aws.zip)

     2.解壓縮aws.zip檔到drupal的sites/all/libraries/awssdk2的路徑下。
          *可以先在local環境解壓縮再上傳。也可以將zip檔上傳後用命令模式(如ssh)去解壓縮(使用tar) 。例如 tar xvf filename.tar

3.設定S3 File System


     1.到「設定(setting)」/ 「媒體(media)」/ S3 File System來設定與AWS S3連線的設定。如圖:


    2.進入S3 File System後先設定 「S3 Bucket Name」與「S3 Region」。然後展開「 顯示AMAZON WEB SERVICES CREDENTIALS」來設定 「Amazon Web Services Access Key」,「Amazon Web Services Secret Key」。如圖:


4.設定drupal內容類型的圖片或是檔案欄位 上載目的地為s3 file system

如下圖所示
















設定完後就可以測試啦!!!

測試結果:





Drupal版本7.37