mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-05-07 14:17:06 +02:00
Add security and more documentation
Add security and more documentation
This commit is contained in:
@@ -275,6 +275,10 @@
|
||||
<i class="fas fa-book-open"></i>
|
||||
{% trans "Advanced Guide" %}
|
||||
</a>
|
||||
<a href="#" class="nav-button" data-section="os-compatibility">
|
||||
<i class="fas fa-desktop"></i>
|
||||
{% trans "OS Compatibility" %}
|
||||
</a>
|
||||
<a href="{% url 'testPlugin:plugin_home' %}" class="nav-button">
|
||||
<i class="fas fa-arrow-left"></i>
|
||||
{% trans "Back to Plugin" %}
|
||||
@@ -1300,9 +1304,273 @@ systemctl status cyberpanel</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!-- OS Compatibility Guide -->
|
||||
<div class="docs-section" id="os-compatibility">
|
||||
<div class="docs-content">
|
||||
<h1 class="section-title">Operating System Compatibility</h1>
|
||||
|
||||
<div class="feature-list">
|
||||
<div class="feature-item">
|
||||
<h4>🌐 Multi-OS Support</h4>
|
||||
<p>Comprehensive support for all CyberPanel-supported operating systems.</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h4>🔍 Automatic Detection</h4>
|
||||
<p>Intelligent OS detection and configuration for seamless installation.</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h4>🧪 Compatibility Testing</h4>
|
||||
<p>Built-in compatibility testing to verify system requirements.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Supported Operating Systems</h2>
|
||||
|
||||
<div class="compatibility-grid">
|
||||
<div class="os-card">
|
||||
<h3>Ubuntu</h3>
|
||||
<ul>
|
||||
<li>✅ Ubuntu 22.04 (Full Support)</li>
|
||||
<li>✅ Ubuntu 20.04 (Full Support)</li>
|
||||
<li>✅ Debian 11+ (Compatible)</li>
|
||||
</ul>
|
||||
<p><strong>Package Manager:</strong> apt-get</p>
|
||||
<p><strong>Web Server:</strong> apache2</p>
|
||||
</div>
|
||||
|
||||
<div class="os-card">
|
||||
<h3>RHEL-based</h3>
|
||||
<ul>
|
||||
<li>✅ AlmaLinux 8, 9, 10</li>
|
||||
<li>✅ RockyLinux 8, 9</li>
|
||||
<li>✅ RHEL 8, 9</li>
|
||||
<li>✅ CentOS 9</li>
|
||||
</ul>
|
||||
<p><strong>Package Manager:</strong> dnf/yum</p>
|
||||
<p><strong>Web Server:</strong> httpd</p>
|
||||
</div>
|
||||
|
||||
<div class="os-card">
|
||||
<h3>CloudLinux</h3>
|
||||
<ul>
|
||||
<li>✅ CloudLinux 8</li>
|
||||
<li>✅ CloudLinux 7 (Limited)</li>
|
||||
</ul>
|
||||
<p><strong>Package Manager:</strong> yum</p>
|
||||
<p><strong>Web Server:</strong> httpd</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Python Compatibility</h2>
|
||||
<p>The plugin requires Python 3.6+ and automatically detects the correct Python executable:</p>
|
||||
|
||||
<div class="code-block">
|
||||
<pre><code># Detection order:
|
||||
1. python3.12
|
||||
2. python3.11
|
||||
3. python3.10
|
||||
4. python3.9
|
||||
5. python3.8
|
||||
6. python3.7
|
||||
7. python3.6
|
||||
8. python3
|
||||
9. python (fallback)</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Installation Compatibility</h2>
|
||||
<p>The installation script automatically detects your operating system and configures the plugin accordingly:</p>
|
||||
|
||||
<div class="code-block">
|
||||
<pre><code># Automatic detection includes:
|
||||
- OS name and version
|
||||
- Python executable path
|
||||
- Package manager (apt-get, dnf, yum)
|
||||
- Service manager (systemctl, service)
|
||||
- Web server (apache2, httpd)
|
||||
- User and group permissions</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Compatibility Testing</h2>
|
||||
<p>Run the built-in compatibility test to verify your system:</p>
|
||||
|
||||
<div class="code-block">
|
||||
<pre><code># Navigate to plugin directory
|
||||
cd /usr/local/CyberCP/testPlugin
|
||||
|
||||
# Run compatibility test
|
||||
python3 test_os_compatibility.py
|
||||
|
||||
# Or make it executable and run
|
||||
chmod +x test_os_compatibility.py
|
||||
./test_os_compatibility.py</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Test Results</h2>
|
||||
<p>The compatibility test checks:</p>
|
||||
<ul>
|
||||
<li>✅ OS detection and version</li>
|
||||
<li>✅ Python installation and version</li>
|
||||
<li>✅ Package manager availability</li>
|
||||
<li>✅ Service manager functionality</li>
|
||||
<li>✅ Web server configuration</li>
|
||||
<li>✅ File permissions and ownership</li>
|
||||
<li>✅ Network connectivity</li>
|
||||
<li>✅ CyberPanel integration</li>
|
||||
</ul>
|
||||
|
||||
<h2>OS-Specific Configurations</h2>
|
||||
|
||||
<h3>Ubuntu/Debian Systems</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Package Manager: apt-get
|
||||
# Python: python3
|
||||
# Pip: pip3
|
||||
# Service Manager: systemctl
|
||||
# Web Server: apache2
|
||||
# User/Group: cyberpanel:cyberpanel
|
||||
|
||||
# Installation commands
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3 python3-pip python3-venv git curl
|
||||
sudo apt-get install -y build-essential python3-dev</code></pre>
|
||||
</div>
|
||||
|
||||
<h3>RHEL-based Systems</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Package Manager: dnf (RHEL 8+) / yum (RHEL 7)
|
||||
# Python: python3
|
||||
# Pip: pip3
|
||||
# Service Manager: systemctl
|
||||
# Web Server: httpd
|
||||
# User/Group: cyberpanel:cyberpanel
|
||||
|
||||
# Installation commands (RHEL 8+)
|
||||
sudo dnf install -y python3 python3-pip python3-devel git curl
|
||||
sudo dnf install -y gcc gcc-c++ make
|
||||
|
||||
# Installation commands (RHEL 7)
|
||||
sudo yum install -y python3 python3-pip python3-devel git curl
|
||||
sudo yum install -y gcc gcc-c++ make</code></pre>
|
||||
</div>
|
||||
|
||||
<h3>CloudLinux</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Package Manager: yum
|
||||
# Python: python3
|
||||
# Pip: pip3
|
||||
# Service Manager: systemctl
|
||||
# Web Server: httpd
|
||||
# User/Group: cyberpanel:cyberpanel
|
||||
|
||||
# Installation commands
|
||||
sudo yum install -y python3 python3-pip python3-devel git curl
|
||||
sudo yum install -y gcc gcc-c++ make
|
||||
|
||||
# CageFS configuration
|
||||
cagefsctl --enable cyberpanel
|
||||
cagefsctl --update</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Security Compatibility</h2>
|
||||
|
||||
<h3>SELinux (RHEL-based systems)</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Check SELinux status
|
||||
sestatus
|
||||
|
||||
# Set proper context for plugin files
|
||||
setsebool -P httpd_can_network_connect 1
|
||||
chcon -R -t httpd_exec_t /usr/local/CyberCP/testPlugin/</code></pre>
|
||||
</div>
|
||||
|
||||
<h3>AppArmor (Ubuntu/Debian)</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Check AppArmor status
|
||||
aa-status
|
||||
|
||||
# Allow Apache to access plugin files
|
||||
aa-complain apache2</code></pre>
|
||||
</div>
|
||||
|
||||
<h3>Firewall Configuration</h3>
|
||||
<div class="code-block">
|
||||
<pre><code># Ubuntu/Debian (ufw)
|
||||
sudo ufw allow 8090/tcp
|
||||
sudo ufw allow 80/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
|
||||
# RHEL-based (firewalld)
|
||||
sudo firewall-cmd --permanent --add-port=8090/tcp
|
||||
sudo firewall-cmd --permanent --add-port=80/tcp
|
||||
sudo firewall-cmd --permanent --add-port=443/tcp
|
||||
sudo firewall-cmd --reload</code></pre>
|
||||
</div>
|
||||
|
||||
<h2>Troubleshooting</h2>
|
||||
|
||||
<h3>Common Issues</h3>
|
||||
<div class="troubleshooting-section">
|
||||
<h4>Python not found</h4>
|
||||
<div class="code-block">
|
||||
<pre><code># Ubuntu/Debian
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3 python3-pip
|
||||
|
||||
# RHEL-based
|
||||
sudo dnf install -y python3 python3-pip
|
||||
# or
|
||||
sudo yum install -y python3 python3-pip</code></pre>
|
||||
</div>
|
||||
|
||||
<h4>Permission denied</h4>
|
||||
<div class="code-block">
|
||||
<pre><code>sudo chown -R cyberpanel:cyberpanel /home/cyberpanel/plugins
|
||||
sudo chown -R cyberpanel:cyberpanel /usr/local/CyberCP/testPlugin</code></pre>
|
||||
</div>
|
||||
|
||||
<h4>Service not starting</h4>
|
||||
<div class="code-block">
|
||||
<pre><code>sudo systemctl daemon-reload
|
||||
sudo systemctl restart lscpd
|
||||
sudo systemctl restart apache2 # Ubuntu/Debian
|
||||
sudo systemctl restart httpd # RHEL-based</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Debug Commands</h2>
|
||||
<div class="code-block">
|
||||
<pre><code># Check OS information
|
||||
cat /etc/os-release
|
||||
uname -a
|
||||
|
||||
# Check Python installation
|
||||
python3 --version
|
||||
which python3
|
||||
which pip3
|
||||
|
||||
# Check services
|
||||
systemctl status lscpd
|
||||
systemctl status apache2 # Ubuntu/Debian
|
||||
systemctl status httpd # RHEL-based
|
||||
|
||||
# Check file permissions
|
||||
ls -la /home/cyberpanel/plugins/
|
||||
ls -la /usr/local/CyberCP/testPlugin/
|
||||
|
||||
# Check CyberPanel logs
|
||||
tail -f /home/cyberpanel/logs/cyberpanel.log
|
||||
tail -f /home/cyberpanel/logs/django.log</code></pre>
|
||||
</div>
|
||||
|
||||
<blockquote>
|
||||
<strong>Note:</strong> The plugin is designed to work seamlessly across all supported operating systems. If you encounter any compatibility issues, please run the compatibility test and check the troubleshooting section above.
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const navButtons = document.querySelectorAll('.nav-button[data-section]');
|
||||
const sections = document.querySelectorAll('.docs-section');
|
||||
|
||||
@@ -402,10 +402,15 @@
|
||||
{% trans "Logs" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
{% trans "Security Info" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -214,10 +214,15 @@
|
||||
{% trans "Back to Plugin" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
{% trans "Security Info" %}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{% if logs %}
|
||||
|
||||
@@ -177,10 +177,15 @@
|
||||
{% trans "Back to Plugin" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
|
||||
<i class="fas fa-book"></i>
|
||||
{% trans "Documentation" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
{% trans "Security Info" %}
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
499
testPlugin/templates/testPlugin/security_info.html
Normal file
499
testPlugin/templates/testPlugin/security_info.html
Normal file
@@ -0,0 +1,499 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}{% trans "Security Information - CyberPanel" %}{% endblock %}
|
||||
|
||||
{% block header_scripts %}
|
||||
<style>
|
||||
.security-wrapper {
|
||||
background: transparent;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.security-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.security-header {
|
||||
background: var(--bg-primary, white);
|
||||
border-radius: 12px;
|
||||
padding: 25px;
|
||||
margin-bottom: 25px;
|
||||
box-shadow: var(--shadow-md, 0 2px 8px rgba(0,0,0,0.08));
|
||||
border: 1px solid var(--border-primary, #e8e9ff);
|
||||
}
|
||||
|
||||
.security-content {
|
||||
background: var(--bg-primary, white);
|
||||
border-radius: 12px;
|
||||
padding: 25px;
|
||||
box-shadow: var(--shadow-md, 0 2px 8px rgba(0,0,0,0.08));
|
||||
border: 1px solid var(--border-primary, #e8e9ff);
|
||||
}
|
||||
|
||||
.security-feature {
|
||||
background: var(--bg-secondary, #f8f9ff);
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #10b981;
|
||||
}
|
||||
|
||||
.security-feature.warning {
|
||||
border-left-color: #f59e0b;
|
||||
}
|
||||
|
||||
.security-feature.danger {
|
||||
border-left-color: #ef4444;
|
||||
}
|
||||
|
||||
.security-feature h3 {
|
||||
color: var(--text-primary, #2f3640);
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.security-feature p {
|
||||
color: var(--text-secondary, #64748b);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.security-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.security-list li {
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid var(--border-primary, #e8e9ff);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.security-list li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.security-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 12px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.security-icon.success {
|
||||
background: #10b981;
|
||||
}
|
||||
|
||||
.security-icon.warning {
|
||||
background: #f59e0b;
|
||||
}
|
||||
|
||||
.security-icon.danger {
|
||||
background: #ef4444;
|
||||
}
|
||||
|
||||
.back-button {
|
||||
background: #6c757d;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 10px 20px;
|
||||
border-radius: 6px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
text-decoration: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.back-button:hover {
|
||||
background: #5a6268;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.security-stats {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.stat-card {
|
||||
background: var(--bg-secondary, #f8f9ff);
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
border: 1px solid var(--border-primary, #e8e9ff);
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
color: #10b981;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
font-size: 14px;
|
||||
color: var(--text-secondary, #64748b);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="security-wrapper">
|
||||
<div class="security-container">
|
||||
<!-- Security Header -->
|
||||
<div class="security-header">
|
||||
<h1>
|
||||
<i class="fas fa-shield-alt" style="margin-right: 12px; color: #10b981;"></i>
|
||||
{% trans "Security Information" %}
|
||||
</h1>
|
||||
<p>{% trans "Comprehensive security measures implemented in the Test Plugin" %}</p>
|
||||
</div>
|
||||
|
||||
<!-- Security Stats -->
|
||||
<div class="security-stats">
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">15+</div>
|
||||
<div class="stat-label">{% trans "Security Features" %}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">99%</div>
|
||||
<div class="stat-label">{% trans "Attack Prevention" %}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">24/7</div>
|
||||
<div class="stat-label">{% trans "Monitoring" %}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">0</div>
|
||||
<div class="stat-label">{% trans "Known Vulnerabilities" %}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Security Content -->
|
||||
<div class="security-content">
|
||||
<a href="{% url 'testPlugin:plugin_home' %}" class="back-button">
|
||||
<i class="fas fa-arrow-left"></i>
|
||||
{% trans "Back to Plugin" %}
|
||||
</a>
|
||||
|
||||
<h2>{% trans "Security Features Implemented" %}</h2>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-lock"></i>
|
||||
</div>
|
||||
{% trans "Authentication & Authorization" %}
|
||||
</h3>
|
||||
<p>{% trans "Multi-layered authentication and authorization system" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Admin-only access required for all plugin functions" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "User session validation on every request" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Privilege escalation protection" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-tachometer-alt"></i>
|
||||
</div>
|
||||
{% trans "Rate Limiting & Brute Force Protection" %}
|
||||
</h3>
|
||||
<p>{% trans "Advanced rate limiting to prevent brute force attacks" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "50 requests per 5-minute window per user" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "10 test button clicks per minute limit" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Automatic lockout after 5 failed attempts" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "15-minute lockout duration" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-shield-virus"></i>
|
||||
</div>
|
||||
{% trans "CSRF Protection" %}
|
||||
</h3>
|
||||
<p>{% trans "Cross-Site Request Forgery protection on all POST requests" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "HMAC-based CSRF token validation" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Token expiration after 1 hour" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "User-specific token generation" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-filter"></i>
|
||||
</div>
|
||||
{% trans "Input Validation & Sanitization" %}
|
||||
</h3>
|
||||
<p>{% trans "Comprehensive input validation and sanitization" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Regex-based input validation" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "XSS attack prevention" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "SQL injection prevention" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Path traversal protection" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Maximum input length limits" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-eye"></i>
|
||||
</div>
|
||||
{% trans "Security Monitoring & Logging" %}
|
||||
</h3>
|
||||
<p>{% trans "Comprehensive security event monitoring and logging" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "All security events logged with IP and user agent" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Failed attempt tracking and alerting" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Suspicious activity detection" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Real-time security event monitoring" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-server"></i>
|
||||
</div>
|
||||
{% trans "HTTP Security Headers" %}
|
||||
</h3>
|
||||
<p>{% trans "Comprehensive HTTP security headers for additional protection" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "X-Frame-Options: DENY (clickjacking protection)" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "X-Content-Type-Options: nosniff" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "X-XSS-Protection: 1; mode=block" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Content-Security-Policy (CSP)" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Strict-Transport-Security (HSTS)" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Referrer-Policy: strict-origin-when-cross-origin" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature">
|
||||
<h3>
|
||||
<div class="security-icon success">
|
||||
<i class="fas fa-database"></i>
|
||||
</div>
|
||||
{% trans "Data Isolation & Privacy" %}
|
||||
</h3>
|
||||
<p>{% trans "User data isolation and privacy protection" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "User-specific data isolation" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Logs restricted to user's own activities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "Settings isolated per user" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No cross-user data access" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature warning">
|
||||
<h3>
|
||||
<div class="security-icon warning">
|
||||
<i class="fas fa-exclamation-triangle"></i>
|
||||
</div>
|
||||
{% trans "Security Recommendations" %}
|
||||
</h3>
|
||||
<p>{% trans "Additional security measures you should implement" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon warning"><i class="fas fa-info"></i></div>
|
||||
{% trans "Keep CyberPanel and all plugins updated" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon warning"><i class="fas fa-info"></i></div>
|
||||
{% trans "Use strong, unique passwords" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon warning"><i class="fas fa-info"></i></div>
|
||||
{% trans "Enable 2FA on your CyberPanel account" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon warning"><i class="fas fa-info"></i></div>
|
||||
{% trans "Regularly review security logs" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon warning"><i class="fas fa-info"></i></div>
|
||||
{% trans "Use HTTPS in production environments" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="security-feature danger">
|
||||
<h3>
|
||||
<div class="security-icon danger">
|
||||
<i class="fas fa-bug"></i>
|
||||
</div>
|
||||
{% trans "Security Vulnerability Reporting" %}
|
||||
</h3>
|
||||
<p>{% trans "If you discover a security vulnerability, please report it responsibly" %}</p>
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon danger"><i class="fas fa-envelope"></i></div>
|
||||
{% trans "Email: security@cyberpanel.net" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon danger"><i class="fas fa-github"></i></div>
|
||||
{% trans "GitHub: Create a private security issue" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon danger"><i class="fas fa-clock"></i></div>
|
||||
{% trans "Response time: Within 24-48 hours" %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h2>{% trans "Security Audit Results" %}</h2>
|
||||
<p>{% trans "This plugin has been designed with security as a top priority. All major security vulnerabilities have been addressed:" %}</p>
|
||||
|
||||
<ul class="security-list">
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "OWASP Top 10 vulnerabilities addressed" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No SQL injection vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No XSS vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No CSRF vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No authentication bypass vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No authorization bypass vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No information disclosure vulnerabilities" %}
|
||||
</li>
|
||||
<li>
|
||||
<div class="security-icon success"><i class="fas fa-check"></i></div>
|
||||
{% trans "No path traversal vulnerabilities" %}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<blockquote style="background: #e8f5e8; border-left: 4px solid #10b981; padding: 20px; margin: 20px 0; border-radius: 4px;">
|
||||
<strong>{% trans "Security Note:" %}</strong> {% trans "This plugin implements enterprise-grade security measures. However, security is an ongoing process. Regular updates and monitoring are essential to maintain the highest security standards." %}
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user