๐ Professional security auditing plugin for Discourse - Comprehensive vulnerability assessment and security analysis
- Vulnerability Scanner: Detects known security vulnerabilities
- Plugin Scanner: Analyzes installed plugins for security issues
- Theme Scanner: Scans themes for potential security risks
- User Scanner: Audits user permissions and access controls
- Endpoint Scanner: Tests API endpoints for vulnerabilities
- Config Scanner: Reviews configuration settings for security
- Database Scanner: Analyzes database security configurations
- File Scanner: Scans files for malicious content
- Network Scanner: Performs network security assessments
- Multi-format Reports: PDF, JSON, CSV export options
- Risk Assessment: Automated risk scoring and categorization
- Compliance Checking: Security compliance verification
- Detailed Analysis: In-depth vulnerability descriptions
- Recommendations: Actionable security improvement suggestions
- Real-time Scanning: Live scan progress monitoring
- Interactive Dashboard: Modern, responsive admin panel
- Scan History: Complete audit trail of all scans
- Modular Selection: Choose specific scan modules
- Target Configuration: Flexible target URL settings
- Discourse 2.7.0 or higher
- Ruby 2.7+ / 3.0+
- Admin access to Discourse installation
-
Clone the plugin:
cd /var/discourse/containers/app/plugins git clone https://github.com/ibrahmsql/discoursemap-plugin.git -
Rebuild Discourse:
cd /var/discourse ./launcher rebuild app -
Enable the plugin:
- Go to Admin โ Settings โ Plugins
- Find "DiscourseMap" and enable it
- Configure the
discoursemap_enabledsetting
Navigate to Admin โ Settings โ Plugins โ DiscourseMap:
discoursemap_enabled: Enable/disable the plugin- Configure scan modules and security thresholds
- Set up automated scanning schedules
Access DiscourseMap at:
https://your-discourse-site.com/admin/plugins/discoursemap
-
Navigate to Admin Panel:
- Go to Admin โ Plugins โ DiscourseMap
-
Configure Scan Settings:
- Enter target URL (your Discourse site)
- Select scan modules to run
- Choose scan intensity level
-
Run the Scan:
- Click "Start Security Scan"
- Monitor real-time progress
- View results as they appear
- ๐ด Critical: Immediate action required
- ๐ High: Address within 24 hours
- ๐ก Medium: Address within a week
- ๐ข Low: Monitor and address when convenient
- โน๏ธ Info: Informational findings
| Module | Description | Risk Focus |
|---|---|---|
| Vulnerability | Known CVEs and security flaws | Critical |
| Plugin | Third-party plugin security | High |
| Theme | Theme code vulnerabilities | Medium |
| User | Access control issues | High |
| Endpoint | API security testing | Medium |
| Config | Configuration hardening | Medium |
| Database | Database security | High |
| File | Malicious file detection | Critical |
| Network | Network security assessment | Medium |
- PDF Report: Comprehensive executive summary
- JSON Export: Machine-readable detailed results
- CSV Export: Spreadsheet-compatible vulnerability list
discoursemap/
โโโ plugin.rb # Main plugin file
โโโ app/
โ โโโ controllers/
โ โ โโโ admin/
โ โ โโโ discoursemap_controller.rb
โ โโโ jobs/
โ โโโ scheduled/
โโโ assets/
โ โโโ javascripts/
โ โ โโโ discourse/
โ โ โโโ controllers/
โ โ โโโ templates/
โ โโโ stylesheets/
โโโ config/
โ โโโ locales/ # Internationalization
โ โโโ settings.yml # Plugin settings
โโโ lib/ # Core scanning modules
โโโ discoursemap_scanner.rb
โโโ vulnerability_scanner.rb
โโโ network_scanner.rb
โโโ ...
-
Create a new scanner in
lib/:module DiscourseMap class CustomScanner include ActiveModel::Serialization def initialize(target_url, options = {}) @target_url = target_url @options = options end def scan # Your scanning logic here end end end
-
Register in
lib/discoursemap_scanner.rb -
Add to admin interface
# Run plugin tests
cd /var/discourse
bundle exec rake plugin:spec[discourse-discoursemap]Supported languages:
- ๐บ๐ธ English (en)
- ๐น๐ท Turkish (tr)
To add a new language:
- Create locale files in
config/locales/ - Follow existing translation structure
- Submit a pull request
We welcome contributions! Please see our Contributing Guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
- Follow Ruby style guide
- Use meaningful variable names
- Add comments for complex logic
- Write tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
- Discourse team for the excellent platform
- Security research community
- All contributors and testers
- Scan Modules: 9 comprehensive modules
- Vulnerability Database: 1000+ known issues
- Report Formats: 3 export options
- Languages: 2 supported languages
Made with โค๏ธ by ฤฐbrahimsql
Securing Discourse communities, one scan at a time.