
一个严重缺陷的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控制台插件来更容易地分析日志。