
一個嚴重缺陷的Java項目,用於教OWASP TOP 10-2017概念。
DO NOT USE ANY PART OF THIS CODE IN PRODUCTION.
這些說明將使您在本地計算機上啟動並運行該項目的副本,以開發和測試目的。
您需要:
安裝JDK,並正確配置環境變量JAVA_HOME和PATH正確。此Stackoverflow帖子中提供了一些準則。
打開命令提示符,並確保一切正常工作:

解開Mysql,然後轉到bin目錄。執行以下命令(不建議用於生產環境):
mysqld --initialize-insecure
此命令初始化數據目錄,並使用空密碼創建一個'root'@'localhost'超級用戶帳戶。
要在Windows機器上安裝服務,請運行:
mysqld --install
最後,要啟動服務,運行:
sc start mysql
要檢查安裝是否成功,請發出命令mysql -uroot : 
鍵入exit ,然後按Enter脫離MySQL控制台。
我們需要創建示例數據庫,並用示例數據填充它。 SQL文件稱為testDB.sql。將其下載到MySQL bin目錄,然後從那裡執行以下命令:
mysql -uroot < testdb.sql
如果一切順利,您可以發出命令並查看結果,如下所示:

最後,將root密碼更改為123456 ,因為Payara服務器(下一步)不會接受空密碼。請注意,密碼本身以及更改密碼的以下方法完全不安全:
mysqladmin --user=root password "123456"
下載並提取Payara服務器以及MySQL連接器/J。我將後者提取到C:tmpmysql-connector-java-8.0.18.jar 。
確保遵循安裝和配置JDK-11的說明。使用以下命令啟動Payara服務器:
asadmin start-domain
接下來,安裝mySQL連接器/J:
asadmin add-library C:tmpmysql-connector-java-8.0.18.jar
這是事物的樣子的快照:

打開Payara Web控制台,然後導航到Resources → JDBC → JDBC Connection Pools 。單擊New野蠻人。

對於第1步,請完全填寫信息如下:

對於步驟2,向下滾動直到看到Additional Properties :

您必須設置以下屬性(按字母順序排序):
allowPublicKeyRetrieval - 是否允許客戶端自動從服務器請求公鑰。設置為true 。 (不建議在生產環境中)DatabaseName - 您要連接到的數據庫的名稱。在這種情況下, testdb 。Password :指定用戶的密碼。在這裡,是123456 。ServerName :MySQL Server的位置。在這種情況下, localhost 。sslMode :是否使用SSL用於連接到MySQL Server。將其設置為DISABLED 。 (不建議在生產環境中)URL和Url :使用的JDBC URL。在這裡,將其設置為jdbc:mysql://localhost:3306/testdb 。User :連接到數據庫的用戶名。在這裡,這是root 。點擊Finish按鈕。單擊新創建的連接池。在General選項卡中,單擊Ping按鈕。如果一切順利,您應該看到以下內容:

同樣,創建另一個稱為MySQL_readonly_Pool的連接池。步驟1與以前的連接池相同。對於第2步,設置Additional Properties如下:
allowPublicKeyRetrieval: true 。DatabaseName: testdb 。Password: MyVeryLongPassphrase 。ServerName: localhost 。sslMode: DISABLED 。URL: jdbc:mysql://localhost:3306/testdb 。Url: jdbc:mysql://localhost:3306/testdb 。User: readonly 。我們需要設置JDBC資源。轉到Resources → JDBC → JDBC Resources ,然後單擊New 。填寫表格如下:
JNDI Name: jdbc/MySQL_root_DataSourceConnection Pool: MySQL_root_Pool
同樣,對於第二個連接池執行此操作:
JNDI Name: jdbc/MySQL_readonly_DataSourceConnection Pool: MySQL_readonly_Pool最後,發布以下命令以停止Payara服務器。
asadmin stop-domain
這是因為Intellij Idea自動啟動服務器,因此可以完成此操作。
在Intellij Idea中打開項目。它通知您Web framework is detected :

單擊Configure打開Setup Frameworks窗口。然後,只需單擊確定:

選擇Run → Edit Configurations...打開Templates → GlassFish Server → Local 。單擊Configure :

選擇GlassFish Home 。如果正確選擇,Intellij將自動檢測GlassFish Version :

單擊OK 。從Server Domain下拉框中,選擇domain1 。

點擊Apply 。現在,您有一個適當的玻璃魚模板,您可以在多個項目中使用該模板。但是對於每個項目,您需要配置要刪除的“偽像”。為此,請單擊左上角的+ ,然後選擇GlassFish Server → Local :

在底部,Intellij警告您No artifacts configured 。只需單擊Fix按鈕。

然後,在Artifacts窗口中,單擊+符號,然後選擇Web Application Exploded → From Modules

選擇唯一可用的模塊,即, OWASP-JAVA ,然後單擊“確定”。

單擊確定以返回Run/Debug Configurations 。在底部,您會看到另外一個警告: Debug settings are invalid or not suitable for local debugging 。單擊Fix按鈕,Intellij將為您處理。

您現在可以運行該項目。 Intellij會自動打開您的默認瀏覽器,並導航到http://localhost:8080/OWASP_Java_war_exploded/ ::

輸入以下憑據:
kambiz1如果一切正常,您將被重定向到用戶主頁:

否則,您可能需要查看Intellij報告的Glassfish日誌,以查看出了什麼問題。

順便說一句,我使用GREP控制台插件來更容易地分析日誌。