目錄

在 Docker 中為 PHP 部署 AcuSensor

在 Docker 中部署 AcuSensor 最簡單的方法是將 AcuSensor 分配到您已經存在的容器上。這篇教學將示範如何將 AcuSensor 與 Web 網站一起部署。

在 Acunetix 中建立您要掃描的目標

在這個範例中,將要掃描的目標假定為「http://acunetixexample.com:60000」,使用此 URL 創建一個目標,啟用 AcuSensor,下載 PHP 專用的 AcuSensor 代理文件,預設檔名會是「acusensor.php」,保存此文件以供後續使用。

定義 Web Application image

通過以下文件結構來建構一個簡單的 Web application:

/testphp-docker/
/testphp-docker/Dockerfile
/testphp-docker/websrc/
/testphp-docker/websrc/index.php
/testphp-docker/websrc/test.php

新建立一個名為「/testphp-docker/Dockerfile」的文件,內容如下:

FROM php:7.3.28-apache

#setup the web pages
COPY --chown=www-data:www-data websrc/ /var/www/html

新建立一個名為「/testphp-docker/websrc/index.php」的文件,內容如下:

<?php
    echo "<h1>Test PHP Site Example for Docker Deployment</h1>";
    echo "<br>";
    echo "Welcome to the main page.";
    echo "<br>";
    echo "<a href='test.php'>Go to the test page.</a>";
?>

新建立一個名為「/testphp-docker/websrc/test.php」的文件,內容如下:

<?php
    echo "<h1>Test PHP Site Example for Docker Deployment</h1>";
    echo "<br>";
    echo "Welcome to the test page.";
    echo "<br>";
?>

最後,使用以下命令建置 image:

cd /testphp-docker
docker build -t testphp-docker .

定義 AcuSensor layer image

透過以下文件結構來建構 AcuSensor layer:

/testphp-docker-acusensor/
/testphp-docker-acusensor/Dockerfile
/testphp-docker-acusensor/acusensor.php

將您在第一步中儲存的 acusonsor.php 文件複製到 docker 主機的 /testphp-docker-acusensor 目錄中。
新建立一個名為「/testphp-docker-acusensor/Dockerfile」的文件,內容如下:

FROM testphp-docker

# assumes the web application is in /var/www/html

# setup AcuSensor
RUN mkdir /acusensor
WORKDIR /acusensor
COPY acusensor.php .

# add .htaccess file for AcuSensor
RUN printf "\nphp_value auto_prepend_file /acusensor/acusensor.php\n" > /var/www/html/.htaccess \
  && chown www-data:www-data /var/www/html/.htaccess

用以下指令建造並執行您的 image

cd /testphp-docker-acusensor
docker build -t testphp-docker-acusensor .
docker run -d -p 60000:80 --name mytestphp testphp-docker-acusensor

測試並掃描您的 Web

開啟瀏覽器並瀏覽您剛建立的 Web 網站,以此篇教學為例則是以瀏覽器開啟 http://acunetixexample.com:6000 這個網址以確定它按預期運行;您將看到以下畫面:
確認網頁有無如預期運行
最後,對這個目標進行掃描;活動面板將顯示 AcuSensor 已被偵測到並用於此次掃描。
AcuSensor 將被偵測到並用於此次掃描