
OWASP Top 10-2017 개념을 가르치기위한 심각한 결함이있는 Java 프로젝트.
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
모든 것이 순조롭게 진행되면 명령을 발행하고 다음과 같이 결과를 볼 수 있습니다.

마지막으로, Payara 서버 (다음 단계)에서 빈 암호를 허용하지 않으므로 root 비밀번호를 123456 으로 변경하십시오. 비밀번호 자체와 비밀번호 변경을위한 다음 방법은 완전히 불안합니다 .
mysqladmin --user=root password "123456"
MySQL 커넥터/j뿐만 아니라 Payara 서버를 다운로드하여 추출하십시오. 후자를 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 웹 콘솔을 열고 Resources → JDBC → JDBC Connection Pools 이동하십시오. New Buttton을 클릭하십시오.

1 단계의 경우 다음과 같이 정보를 정확하게 작성하십시오.

2 단계의 경우 Additional Properties 표시 될 때까지 아래로 스크롤하십시오.

다음 속성을 설정해야합니다 (알파벳순으로 정렬) :
allowPublicKeyRetrieval - 클라이언트가 서버에서 공개 키를 자동으로 요청할 수 있는지 여부. true 로 설정하십시오. (생산 환경에서는 권장되지 않음)DatabaseName - 연결하려는 데이터베이스의 이름입니다. 이 경우 testdb .Password : 지정된 사용자의 비밀번호. 여기에는 123456 입니다.ServerName : MySQL 서버의 위치. 이 경우 localhost .sslMode : SSL이 MySQL 서버에 연결하는 데 사용되는지 여부. DISABLED 로 설정하십시오. (생산 환경에서는 권장되지 않음)URL 및 Url : JDBC 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 아이디어가 자동으로 서버를 시작하기 때문에 이루어집니다.
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 템플릿이 있습니다. 그러나 각 프로젝트마다 고갈되도록 "아티팩트"를 구성해야합니다. 이를 위해 왼쪽 상단에서 + 클릭하고 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 Logs를보고 무엇이 잘못되었는지 확인해야 할 수도 있습니다.

그건 그렇고, Grep Console 플러그인을 사용하여 로그를보다 쉽게 분석합니다.