diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 0000000000..947816433d --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2019 Blackrock Digital LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..21cd606b2c --- /dev/null +++ b/docs/README.md @@ -0,0 +1,20 @@ +# WebGoat landing page + +This serves the Github pages for the landing page of WebGoat. + +# Running locally + +``` +docker run -t --rm -v "$PWD":/usr/src/app -p "4000:4000" starefossen/github-pages +``` + +And then browse to http://localhost:4000/docs + +# Thanks to + +[Freelancer](http://startbootstrap.com/template-overviews/freelancer/) is a one page freelancer portfolio theme for [Bootstrap](http://getbootstrap.com/) created by [Start Bootstrap](http://startbootstrap.com/). This theme features several content sections, a responsive portfolio grid with hover effects, full page portfolio item modals, and a working PHP contact form. + +## Copyright and License + +Copyright 2013-2018 Blackrock Digital LLC. Code released under the [MIT](https://github.com/BlackrockDigital/startbootstrap-freelancer/blob/gh-pages/LICENSE) license. + diff --git a/docs/css/freelancer.css b/docs/css/freelancer.css new file mode 100644 index 0000000000..1907d9ff67 --- /dev/null +++ b/docs/css/freelancer.css @@ -0,0 +1,380 @@ +body { + font-family: 'Lato'; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 700; + font-family: 'Montserrat'; +} + +hr.star-light, +hr.star-dark { + max-width: 15rem; + padding: 0; + text-align: center; + border: none; + border-top: solid 0.25rem; + margin-top: 2.5rem; + margin-bottom: 2.5rem; +} + +hr.star-light:after, +hr.star-dark:after { + position: relative; + top: -.8em; + display: inline-block; + padding: 0 0.25em; + content: '\f005'; + font-family: FontAwesome; + font-size: 2em; +} + +hr.star-light { + border-color: #fff; +} + +hr.star-light:after { + color: #fff; + background-color: #18BC9C; +} + +hr.star-dark { + border-color: #2C3E50; +} + +hr.star-dark:after { + color: #2C3E50; + background-color: white; +} + +section { + padding: 6rem 0; +} + +section h2 { + font-size: 2.25rem; + line-height: 2rem; +} + +@media (min-width: 992px) { + section h2 { + font-size: 3rem; + line-height: 2.5rem; + } +} + +.btn-xl { + padding: 1rem 1.75rem; + font-size: 1.25rem; +} + +.btn-social { + width: 3.25rem; + height: 3.25rem; + font-size: 1.25rem; + line-height: 2rem; +} + +.scroll-to-top { + z-index: 1042; + right: 1rem; + bottom: 1rem; + display: none; +} + +.scroll-to-top a { + width: 3.5rem; + height: 3.5rem; + background-color: rgba(33, 37, 41, 0.5); + line-height: 3.1rem; +} + +#mainNav { + padding-top: 1rem; + padding-bottom: 1rem; + font-weight: 700; + font-family: 'Montserrat'; +} + +#mainNav .navbar-brand { + color: #fff; +} + +#mainNav .navbar-nav { + margin-top: 1rem; + letter-spacing: 0.0625rem; +} + +#mainNav .navbar-nav li.nav-item a.nav-link { + color: #fff; +} + +#mainNav .navbar-nav li.nav-item a.nav-link:hover { + color: #18BC9C; +} + +#mainNav .navbar-nav li.nav-item a.nav-link:active, #mainNav .navbar-nav li.nav-item a.nav-link:focus { + color: #fff; +} + +#mainNav .navbar-nav li.nav-item a.nav-link.active { + color: #18BC9C; +} + +#mainNav .navbar-toggler { + font-size: 80%; + padding: 0.8rem; +} + +@media (min-width: 992px) { + #mainNav { + padding-top: 1.5rem; + padding-bottom: 1.5rem; + -webkit-transition: padding-top 0.3s, padding-bottom 0.3s; + -moz-transition: padding-top 0.3s, padding-bottom 0.3s; + transition: padding-top 0.3s, padding-bottom 0.3s; + } + #mainNav .navbar-brand { + font-size: 2em; + -webkit-transition: font-size 0.3s; + -moz-transition: font-size 0.3s; + transition: font-size 0.3s; + } + #mainNav .navbar-nav { + margin-top: 0; + } + #mainNav .navbar-nav > li.nav-item > a.nav-link.active { + color: #fff; + background: #18BC9C; + } + #mainNav .navbar-nav > li.nav-item > a.nav-link.active:active, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover { + color: #fff; + background: #18BC9C; + } + #mainNav.navbar-shrink { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } + #mainNav.navbar-shrink .navbar-brand { + font-size: 1.5em; + } +} + +header.masthead { + padding-top: calc(6rem + 72px); + padding-bottom: 6rem; +} + +header.masthead h1 { + font-size: 3rem; + line-height: 3rem; +} + +header.masthead h2 { + font-size: 1.3rem; + font-family: 'Lato'; +} + +@media (min-width: 992px) { + header.masthead { + padding-top: calc(6rem + 106px); + padding-bottom: 6rem; + } + header.masthead h1 { + font-size: 4.75em; + line-height: 4rem; + } + header.masthead h2 { + font-size: 1.75em; + } +} + +.portfolio { + margin-bottom: -15px; +} + +.portfolio .portfolio-item { + position: relative; + display: block; + max-width: 25rem; + margin-bottom: 15px; +} + +.portfolio .portfolio-item .portfolio-item-caption { + -webkit-transition: all ease 0.5s; + -moz-transition: all ease 0.5s; + transition: all ease 0.5s; + opacity: 0; + background-color: rgba(24, 188, 156, 0.9); +} + +.portfolio .portfolio-item .portfolio-item-caption:hover { + opacity: 1; +} + +.portfolio .portfolio-item .portfolio-item-caption .portfolio-item-caption-content { + font-size: 1.5rem; +} + +@media (min-width: 576px) { + .portfolio { + margin-bottom: -30px; + } + .portfolio .portfolio-item { + margin-bottom: 30px; + } +} + +.portfolio-modal .portfolio-modal-dialog { + padding: 3rem 1rem; + min-height: calc(100vh - 2rem); + margin: 1rem calc(1rem - 8px); + position: relative; + z-index: 2; + -moz-box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); + box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); +} + +.portfolio-modal .portfolio-modal-dialog .close-button { + position: absolute; + top: 2rem; + right: 2rem; +} + +.portfolio-modal .portfolio-modal-dialog .close-button i { + line-height: 38px; +} + +.portfolio-modal .portfolio-modal-dialog h2 { + font-size: 2rem; +} + +@media (min-width: 768px) { + .portfolio-modal .portfolio-modal-dialog { + min-height: 100vh; + padding: 5rem; + margin: 3rem calc(3rem - 8px); + } + .portfolio-modal .portfolio-modal-dialog h2 { + font-size: 3rem; + } +} + +.floating-label-form-group { + position: relative; + border-bottom: 1px solid #e9ecef; +} + +.floating-label-form-group input, +.floating-label-form-group textarea { + font-size: 1.5em; + position: relative; + z-index: 1; + padding-right: 0; + padding-left: 0; + resize: none; + border: none; + border-radius: 0; + background: none; + box-shadow: none !important; +} + +.floating-label-form-group label { + font-size: 0.85em; + line-height: 1.764705882em; + position: relative; + z-index: 0; + top: 2em; + display: block; + margin: 0; + -webkit-transition: top 0.3s ease, opacity 0.3s ease; + -moz-transition: top 0.3s ease, opacity 0.3s ease; + -ms-transition: top 0.3s ease, opacity 0.3s ease; + transition: top 0.3s ease, opacity 0.3s ease; + vertical-align: middle; + vertical-align: baseline; + opacity: 0; +} + +.floating-label-form-group:not(:first-child) { + padding-left: 14px; + border-left: 1px solid #e9ecef; +} + +.floating-label-form-group-with-value label { + top: 0; + opacity: 1; +} + +.floating-label-form-group-with-focus label { + color: #18BC9C; +} + +form .row:first-child .floating-label-form-group { + border-top: 1px solid #e9ecef; +} + +.footer { + padding-top: 5rem; + padding-bottom: 5rem; + background-color: #2C3E50; + color: #fff; +} + +.copyright { + background-color: #1a252f; +} + +a { + color: #18BC9C; +} + +a:focus, a:hover, a:active { + color: #128f76; +} + +.btn { + border-width: 2px; +} + +.bg-primary { + background-color: #18BC9C !important; +} + +.bg-secondary { + background-color: #2C3E50 !important; +} + +.text-primary { + color: #18BC9C !important; +} + +.text-secondary { + color: #2C3E50 !important; +} + +.btn-primary { + background-color: #18BC9C; + border-color: #18BC9C; +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active { + background-color: #128f76; + border-color: #128f76; +} + +.btn-secondary { + background-color: #2C3E50; + border-color: #2C3E50; +} + +.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active { + background-color: #1a252f; + border-color: #1a252f; +} diff --git a/docs/css/freelancer.min.css b/docs/css/freelancer.min.css new file mode 100644 index 0000000000..5b33ee4c90 --- /dev/null +++ b/docs/css/freelancer.min.css @@ -0,0 +1 @@ +body{font-family:Lato}h1,h2,h3,h4,h5,h6{font-weight:700;font-family:Montserrat}hr.star-dark,hr.star-light{max-width:15rem;padding:0;text-align:center;border:none;border-top:solid .25rem;margin-top:2.5rem;margin-bottom:2.5rem}hr.star-dark:after,hr.star-light:after{position:relative;top:-.8em;display:inline-block;padding:0 .25em;content:'\f005';font-family:FontAwesome;font-size:2em}hr.star-light{border-color:#fff}hr.star-light:after{color:#fff;background-color:#18bc9c}hr.star-dark{border-color:#2c3e50}hr.star-dark:after{color:#2c3e50;background-color:#fff}section{padding:6rem 0}section h2{font-size:2.25rem;line-height:2rem}@media (min-width:992px){section h2{font-size:3rem;line-height:2.5rem}}.btn-xl{padding:1rem 1.75rem;font-size:1.25rem}.btn-social{width:3.25rem;height:3.25rem;font-size:1.25rem;line-height:2rem}.scroll-to-top{z-index:1042;right:1rem;bottom:1rem;display:none}.scroll-to-top a{width:3.5rem;height:3.5rem;background-color:rgba(33,37,41,.5);line-height:3.1rem}#mainNav{padding-top:1rem;padding-bottom:1rem;font-weight:700;font-family:Montserrat}#mainNav .navbar-brand{color:#fff}#mainNav .navbar-nav{margin-top:1rem;letter-spacing:.0625rem}#mainNav .navbar-nav li.nav-item a.nav-link{color:#fff}#mainNav .navbar-nav li.nav-item a.nav-link:hover{color:#18bc9c}#mainNav .navbar-nav li.nav-item a.nav-link:active,#mainNav .navbar-nav li.nav-item a.nav-link:focus{color:#fff}#mainNav .navbar-nav li.nav-item a.nav-link.active{color:#18bc9c}#mainNav .navbar-toggler{font-size:80%;padding:.8rem}@media (min-width:992px){#mainNav{padding-top:1.5rem;padding-bottom:1.5rem;-webkit-transition:padding-top .3s,padding-bottom .3s;-moz-transition:padding-top .3s,padding-bottom .3s;transition:padding-top .3s,padding-bottom .3s}#mainNav .navbar-brand{font-size:2em;-webkit-transition:font-size .3s;-moz-transition:font-size .3s;transition:font-size .3s}#mainNav .navbar-nav{margin-top:0}#mainNav .navbar-nav>li.nav-item>a.nav-link.active{color:#fff;background:#18bc9c}#mainNav .navbar-nav>li.nav-item>a.nav-link.active:active,#mainNav .navbar-nav>li.nav-item>a.nav-link.active:focus,#mainNav .navbar-nav>li.nav-item>a.nav-link.active:hover{color:#fff;background:#18bc9c}#mainNav.navbar-shrink{padding-top:.5rem;padding-bottom:.5rem}#mainNav.navbar-shrink .navbar-brand{font-size:1.5em}}header.masthead{padding-top:calc(6rem + 72px);padding-bottom:6rem}header.masthead h1{font-size:3rem;line-height:3rem}header.masthead h2{font-size:1.3rem;font-family:Lato}@media (min-width:992px){header.masthead{padding-top:calc(6rem + 106px);padding-bottom:6rem}header.masthead h1{font-size:4.75em;line-height:4rem}header.masthead h2{font-size:1.75em}}.portfolio{margin-bottom:-15px}.portfolio .portfolio-item{position:relative;display:block;max-width:25rem;margin-bottom:15px}.portfolio .portfolio-item .portfolio-item-caption{-webkit-transition:all ease .5s;-moz-transition:all ease .5s;transition:all ease .5s;opacity:0;background-color:rgba(24,188,156,.9)}.portfolio .portfolio-item .portfolio-item-caption:hover{opacity:1}.portfolio .portfolio-item .portfolio-item-caption .portfolio-item-caption-content{font-size:1.5rem}@media (min-width:576px){.portfolio{margin-bottom:-30px}.portfolio .portfolio-item{margin-bottom:30px}}.portfolio-modal .portfolio-modal-dialog{padding:3rem 1rem;min-height:calc(100vh - 2rem);margin:1rem calc(1rem - 8px);position:relative;z-index:2;-moz-box-shadow:0 0 3rem 1rem rgba(0,0,0,.5);-webkit-box-shadow:0 0 3rem 1rem rgba(0,0,0,.5);box-shadow:0 0 3rem 1rem rgba(0,0,0,.5)}.portfolio-modal .portfolio-modal-dialog .close-button{position:absolute;top:2rem;right:2rem}.portfolio-modal .portfolio-modal-dialog .close-button i{line-height:38px}.portfolio-modal .portfolio-modal-dialog h2{font-size:2rem}@media (min-width:768px){.portfolio-modal .portfolio-modal-dialog{min-height:100vh;padding:5rem;margin:3rem calc(3rem - 8px)}.portfolio-modal .portfolio-modal-dialog h2{font-size:3rem}}.floating-label-form-group{position:relative;border-bottom:1px solid #e9ecef}.floating-label-form-group input,.floating-label-form-group textarea{font-size:1.5em;position:relative;z-index:1;padding-right:0;padding-left:0;resize:none;border:none;border-radius:0;background:0 0;box-shadow:none!important}.floating-label-form-group label{font-size:.85em;line-height:1.764705882em;position:relative;z-index:0;top:2em;display:block;margin:0;-webkit-transition:top .3s ease,opacity .3s ease;-moz-transition:top .3s ease,opacity .3s ease;-ms-transition:top .3s ease,opacity .3s ease;transition:top .3s ease,opacity .3s ease;vertical-align:middle;vertical-align:baseline;opacity:0}.floating-label-form-group:not(:first-child){padding-left:14px;border-left:1px solid #e9ecef}.floating-label-form-group-with-value label{top:0;opacity:1}.floating-label-form-group-with-focus label{color:#18bc9c}form .row:first-child .floating-label-form-group{border-top:1px solid #e9ecef}.footer{padding-top:5rem;padding-bottom:5rem;background-color:#2c3e50;color:#fff}.copyright{background-color:#1a252f}a{color:#18bc9c}a:active,a:focus,a:hover{color:#128f76}.btn{border-width:2px}.bg-primary{background-color:#18bc9c!important}.bg-secondary{background-color:#2c3e50!important}.text-primary{color:#18bc9c!important}.text-secondary{color:#2c3e50!important}.btn-primary{background-color:#18bc9c;border-color:#18bc9c}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#128f76;border-color:#128f76}.btn-secondary{background-color:#2c3e50;border-color:#2c3e50}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background-color:#1a252f;border-color:#1a252f} \ No newline at end of file diff --git a/docs/gulpfile.js b/docs/gulpfile.js new file mode 100644 index 0000000000..941496a6b7 --- /dev/null +++ b/docs/gulpfile.js @@ -0,0 +1,137 @@ +// Load plugins +const autoprefixer = require("gulp-autoprefixer"); +const browsersync = require("browser-sync").create(); +const cleanCSS = require("gulp-clean-css"); +const gulp = require("gulp"); +const header = require("gulp-header"); +const plumber = require("gulp-plumber"); +const rename = require("gulp-rename"); +const sass = require("gulp-sass"); +const uglify = require("gulp-uglify"); +const pkg = require('./package.json'); + +// Set the banner content +const banner = ['/*!\n', + ' * Start Bootstrap - <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n', + ' * Copyright 2013-' + (new Date()).getFullYear(), ' <%= pkg.author %>\n', + ' * Licensed under <%= pkg.license %> (https://github.com/BlackrockDigital/<%= pkg.name %>/blob/master/LICENSE)\n', + ' */\n', + '\n' +].join(''); + +// Copy third party libraries from /node_modules into /vendor +gulp.task('vendor', function(cb) { + + // Bootstrap + gulp.src([ + './node_modules/bootstrap/dist/**/*', + '!./node_modules/bootstrap/dist/css/bootstrap-grid*', + '!./node_modules/bootstrap/dist/css/bootstrap-reboot*' + ]) + .pipe(gulp.dest('./vendor/bootstrap')) + + // Font Awesome + gulp.src([ + './node_modules/@fortawesome/**/*', + ]) + .pipe(gulp.dest('./vendor')) + + // jQuery + gulp.src([ + './node_modules/jquery/dist/*', + '!./node_modules/jquery/dist/core.js' + ]) + .pipe(gulp.dest('./vendor/jquery')) + + // jQuery Easing + gulp.src([ + './node_modules/jquery.easing/*.js' + ]) + .pipe(gulp.dest('./vendor/jquery-easing')) + + // Magnific Popup + gulp.src([ + './node_modules/magnific-popup/dist/*' + ]) + .pipe(gulp.dest('./vendor/magnific-popup')) + + cb(); + +}); + +// CSS task +function css() { + return gulp + .src("./scss/*.scss") + .pipe(plumber()) + .pipe(sass({ + outputStyle: "expanded" + })) + .on("error", sass.logError) + .pipe(autoprefixer({ + browsers: ['last 2 versions'], + cascade: false + })) + .pipe(header(banner, { + pkg: pkg + })) + .pipe(gulp.dest("./css")) + .pipe(rename({ + suffix: ".min" + })) + .pipe(cleanCSS()) + .pipe(gulp.dest("./css")) + .pipe(browsersync.stream()); +} + +// JS task +function js() { + return gulp + .src([ + './js/*.js', + '!./js/*.min.js', + '!./js/contact_me.js', + '!./js/jqBootstrapValidation.js' + ]) + .pipe(uglify()) + .pipe(header(banner, { + pkg: pkg + })) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest('./js')) + .pipe(browsersync.stream()); +} + +// Tasks +gulp.task("css", css); +gulp.task("js", js); + +// BrowserSync +function browserSync(done) { + browsersync.init({ + server: { + baseDir: "./" + } + }); + done(); +} + +// BrowserSync Reload +function browserSyncReload(done) { + browsersync.reload(); + done(); +} + +// Watch files +function watchFiles() { + gulp.watch("./scss/**/*", css); + gulp.watch(["./js/**/*.js", "!./js/*.min.js"], js); + gulp.watch("./**/*.html", browserSyncReload); +} + +gulp.task("default", gulp.parallel('vendor', css, js)); + +// dev task +gulp.task("dev", gulp.parallel(watchFiles, browserSync)); diff --git a/docs/img/GotGoat.jpg b/docs/img/GotGoat.jpg new file mode 100644 index 0000000000..479e54b1fb Binary files /dev/null and b/docs/img/GotGoat.jpg differ diff --git a/docs/img/portfolio/assignment-example.png b/docs/img/portfolio/assignment-example.png new file mode 100644 index 0000000000..296760d002 Binary files /dev/null and b/docs/img/portfolio/assignment-example.png differ diff --git a/docs/img/portfolio/assignment.png b/docs/img/portfolio/assignment.png new file mode 100644 index 0000000000..23e758176e Binary files /dev/null and b/docs/img/portfolio/assignment.png differ diff --git a/docs/img/portfolio/cabin.png b/docs/img/portfolio/cabin.png new file mode 100644 index 0000000000..c64c59ea79 Binary files /dev/null and b/docs/img/portfolio/cabin.png differ diff --git a/docs/img/portfolio/cake.png b/docs/img/portfolio/cake.png new file mode 100644 index 0000000000..a16c3fe72e Binary files /dev/null and b/docs/img/portfolio/cake.png differ diff --git a/docs/img/portfolio/circus.png b/docs/img/portfolio/circus.png new file mode 100644 index 0000000000..b3f5142e84 Binary files /dev/null and b/docs/img/portfolio/circus.png differ diff --git a/docs/img/portfolio/game.png b/docs/img/portfolio/game.png new file mode 100644 index 0000000000..85420e8bbc Binary files /dev/null and b/docs/img/portfolio/game.png differ diff --git a/docs/img/portfolio/lesson.png b/docs/img/portfolio/lesson.png new file mode 100644 index 0000000000..9754d99aa8 Binary files /dev/null and b/docs/img/portfolio/lesson.png differ diff --git a/docs/img/portfolio/mitigation-example.png b/docs/img/portfolio/mitigation-example.png new file mode 100644 index 0000000000..2d0655dc26 Binary files /dev/null and b/docs/img/portfolio/mitigation-example.png differ diff --git a/docs/img/portfolio/mitigation.png b/docs/img/portfolio/mitigation.png new file mode 100644 index 0000000000..99ecfb2b64 Binary files /dev/null and b/docs/img/portfolio/mitigation.png differ diff --git a/docs/img/portfolio/safe.png b/docs/img/portfolio/safe.png new file mode 100644 index 0000000000..445942c707 Binary files /dev/null and b/docs/img/portfolio/safe.png differ diff --git a/docs/img/portfolio/submarine.png b/docs/img/portfolio/submarine.png new file mode 100644 index 0000000000..6711d6ec7b Binary files /dev/null and b/docs/img/portfolio/submarine.png differ diff --git a/docs/img/portfolio/teach.png b/docs/img/portfolio/teach.png new file mode 100644 index 0000000000..2afb65831a Binary files /dev/null and b/docs/img/portfolio/teach.png differ diff --git a/docs/img/profile.png b/docs/img/profile.png new file mode 100644 index 0000000000..dcf0e03986 Binary files /dev/null and b/docs/img/profile.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000000..0ceead19ee --- /dev/null +++ b/docs/index.html @@ -0,0 +1,290 @@ + + + +
+ + + + + + +WebGoat is a deliberately insecure application that allows interested developers just like you to test vulnerabilities + commonly found in Java-based applications that use common and popular open source components.
++ Web application security is difficult to learn and practice. Not many people have full blown web applications like online book + stores or online banks that can be used to scan for vulnerabilities. In addition, security professionals frequently need to test + tools against a platform known to be vulnerable to ensure that they perform as advertised. All of this needs to happen in a safe + and legal environment. + +
+Even if your intentions are good, we believe you should never attempt to find vulnerabilities without + permission. The primary goal of the WebGoat project is simple: create a de-facto interactive teaching environment for web application security. + In the future, the project team hopes to extend WebGoat into becoming a security benchmarking platform and a Java-based Web site Honeypot. +
+For more information about running WebGoat / FAQ see our wiki pages. +
+Interested in contributing to WebGoat, take a look at our issues.
+ +`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `