876955fff1
Complete UI overhaul bringing RailsGoat into 2024 with a professional, modern interface while maintaining all security vulnerabilities for educational purposes. ## Design System - Modern color palette with CSS variables - Primary: #e63946 (red), Secondary: #457b9d (blue) - Professional sans-serif typography - Consistent spacing and shadows - Bootstrap Icons for modern iconography - Responsive design with mobile-first approach ## Layout Changes - Fixed header with clean navigation (60px height) - Dark sidebar with modern icons and section headers (250px width) - Proper spacing and padding throughout - Responsive breakpoints for mobile/tablet/desktop - Modern card-based content areas ## Header Modernization - Clean white header with subtle shadow - RailsGoat branding with shield icon - Modern dropdown user menu with avatar - Improved font size controls - Better button styling and spacing - Modal-based credentials display (Bootstrap 5) ## Sidebar Improvements - Dark navy background (#1d3557) - Bootstrap Icons instead of custom fonts - Section headers (Admin, Employee) - Active state highlighting - Smooth hover transitions - Version info in footer ## Login Page Redesign - Beautiful gradient background - Centered card with shadow - Modern form inputs with icons - Clear call-to-action buttons - Security training notice banner - Responsive design ## Components Updated - Modern alerts with icons and proper dismiss buttons - Footer with OWASP links and copyright - Scroll-to-top button (vanilla JS, no jQuery) - Form controls with proper Bootstrap 5 classes ## Technical Improvements - Bootstrap 5.3 properly implemented (not just CDN reference) - Bootstrap Icons 1.11.1 for modern iconography - Removed jQuery dependencies where possible - Modern JavaScript (vanilla, no jQuery for new features) - Proper Bootstrap 5 data attributes (data-bs-*) - Semantic HTML5 structure ## Security Vulnerabilities Preserved - XSS via html_safe in user welcome (header) - XSS via cookie font-size (application layout) - XSS via URL hash parameter (login page) - Missing SRI on CDN assets (A03:2025) - All educational vulnerabilities intact ## Files Modified - app/views/layouts/application.html.erb - Complete redesign with CSS variables - app/views/layouts/shared/_header.html.erb - Modern navigation - app/views/layouts/shared/_sidebar.html.erb - Dark sidebar with icons - app/views/layouts/shared/_footer.html.erb - Modern footer with links - app/views/layouts/shared/_messages.html.erb - Bootstrap 5 alerts - app/views/sessions/new.html.erb - Beautiful login page This modernization makes RailsGoat visually appealing and professional while maintaining its core educational purpose. The application now looks like a modern web app security professionals want to use. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
57 lines
1.8 KiB
Plaintext
Executable File
57 lines
1.8 KiB
Plaintext
Executable File
<% if current_user %>
|
|
<footer class="border-top mt-5 py-4 text-center text-muted bg-white">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<p class="mb-1">
|
|
<i class="bi bi-shield-check"></i>
|
|
© <%= Date.current.year %> The Open Worldwide Application Security Project - OWASP
|
|
</p>
|
|
<p class="small mb-0">
|
|
<a href="https://owasp.org" target="_blank" class="text-decoration-none me-3">
|
|
<i class="bi bi-globe"></i> OWASP.org
|
|
</a>
|
|
<a href="https://github.com/OWASP/railsgoat" target="_blank" class="text-decoration-none me-3">
|
|
<i class="bi bi-github"></i> GitHub
|
|
</a>
|
|
<a href="https://github.com/OWASP/railsgoat/wiki" target="_blank" class="text-decoration-none">
|
|
<i class="bi bi-book"></i> Documentation
|
|
</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<% end %>
|
|
|
|
<!-- Scroll to Top Button -->
|
|
<button id="scrollTopBtn" class="btn btn-primary rounded-circle position-fixed bottom-0 end-0 m-4" style="width: 48px; height: 48px; display: none; z-index: 1000;" title="Scroll to top">
|
|
<i class="bi bi-arrow-up"></i>
|
|
</button>
|
|
|
|
<script>
|
|
// Modern scroll-to-top without jQuery
|
|
(function() {
|
|
const scrollBtn = document.getElementById('scrollTopBtn');
|
|
|
|
if (scrollBtn) {
|
|
// Show/hide button based on scroll position
|
|
window.addEventListener('scroll', function() {
|
|
if (window.pageYOffset > 300) {
|
|
scrollBtn.style.display = 'block';
|
|
} else {
|
|
scrollBtn.style.display = 'none';
|
|
}
|
|
});
|
|
|
|
// Scroll to top on click
|
|
scrollBtn.addEventListener('click', function() {
|
|
window.scrollTo({
|
|
top: 0,
|
|
behavior: 'smooth'
|
|
});
|
|
});
|
|
}
|
|
})();
|
|
</script>
|