Security Scan: setup and help
Quick start
- Upload the Security Scan ZIP in Modules > Module Manager > Upload a module and install it.
- Open Security Scan > Settings > Configuration.
- Review Confirm exposure by self-checking public URLs and Deep scan (code & malware heuristics), both initially on, then click Save settings.
- Open Security Scan > Scan & Report and click Run scan now.
- Read Critical and High findings, inspect the affected items and follow the relevant manual fix steps.
- Click Re-scan now after corrections and confirm the new date, report and History summary.
Requires PrestaShop 1.7 or later and PHP 7.1 or later.
AFL-3.0.
Setup manual
Install Security Scan
Requirements
Requires PrestaShop 1.7 or later and PHP 7.1 or later.
Security Scan is licensed under AFL-3.0. Install the release ZIP through Modules > Module Manager > Upload a module. Open Security Scan > Scan & Report. The module adds History and Settings, including Configuration and System Check.
The scanner detects issues and supplies manual fix steps. It does not block requests, patch shop files, change security settings or remove malware. Running a scan saves its report and summary in the module's database table.
Configure the scan
Open Security Scan > Settings > Configuration.
| Setting | Default | When to change it |
|---|---|---|
| Confirm exposure by self-checking public URLs | On | Keep it on to let exposure checks request your shop's public URLs. Turn it off when you need a local-only scan or your hosting blocks self-requests. |
| Deep scan (code & malware heuristics) | On | Keep it on for the larger file sample. Turn it off to reduce scan work. The current engine still runs the code and malware checks with smaller file limits. |
Click Save settings, then Back to scan.
The static-code sample limit is 1,200 PHP files with deep scan on and 300 with it off. The malware sample limit is 2,500 files with deep scan on and 600 with it off. These are bounded scans, not complete inspections of every file.
Run and read a report
First scan
- Open Security Scan > Scan & Report.
- Click Run scan now.
- Review the score, date, scan duration and findings.
- Read Critical and High findings first, then Medium and Low.
- Inspect each affected item and follow the applicable manual fix steps.
- Click Re-scan now after making corrections.
The report is grouped as follows:
| Group | What to review |
|---|---|
| Version & known vulnerabilities | PrestaShop and PHP versions, plus installed modules covered by the bundled advisory data. |
| Exposed files & endpoints | Version-control files, backup files, install folders, diagnostic files, directory listings, configuration exposure, permissions and related server protection indicators. |
| Code-level static scan | Bounded pattern checks for potentially unsafe SQL input in module PHP files. Inspect the surrounding code before treating a match as a vulnerability. |
| Malware & file integrity | PHP in image/upload locations and the bundled obfuscated-loader signature. The report also states that core hash comparison needs an official release manifest. |
| Hardening & configuration | SSL, cookie flags, admin-folder protection, token and login-lockout signals, abandoned modules and recent admin-account indicators. |
The scanner does not compare all core files against official release hashes. Its malware patterns and code checks can miss issues and can flag legitimate code. A clean result means these checks found no problem of the kinds they look for.
Score and history
The score starts at 100. Findings subtract their assigned weights, with the result limited to 0 through 100.
| Grade | Score |
|---|---|
| A | 90 to 100 |
| B | 75 to 89 |
| C | 60 to 74 |
| D | 40 to 59 |
| F | Below 40 |
Open Security Scan > History to compare the latest 30 stored summaries. Each row shows its date, score, grade, issue counts and trigger. History is a summary list; the scan page displays the latest report.
Use the score to decide what to review first. It does not certify that the shop is secure, and it is not a penetration test or an incident-response report. If you suspect an active compromise, preserve evidence and arrange an incident investigation before removing files.
Privacy and optional fleet connection
Local operation
The normal scan reads local files, configuration and database data through a read-only query guard. It stores its results locally. When public URL checks are enabled, it also makes guarded requests to the shop itself. The local scan path does not upload its report to mypresta.rocks.
Managed fleet
Fleet enrollment is optional and is not needed for local scans. The Fleet Connector controller exists but is hidden from the sidebar menu. Open it through the connection link supplied by your fleet workflow.
On that screen, enter Hub URL and Enrollment token from your Security Revolution hub, then click Connect this shop. After enrollment, use Poll hub now to check the connection and review Connector status, Last poll and Last error.
Enrollment connects the shop to a remote reporting workflow and allows signed, consented scan requests. Findings shared through that workflow are outside the local-only operation described above. Protect the enrollment and polling tokens.
Run from automation
There is no bundled scanner CLI command or automatic scan schedule in the module. If you manage the server, you can bootstrap the intended shop and call the service from your own PHP script:
require '/var/www/html/config/config.inc.php';
require _PS_MODULE_DIR_ . 'mprsecurityscan/vendor/autoload.php';
$run = \MPRSecurityScan\Service\ScanRunner::runAndStore('cron', null, [
'allow_network' => false,
'deep_scan' => true,
]);
echo 'Scan #' . (int) $run['id_scan'] . ' stored' . PHP_EOL;
Replace the bootstrap path with your shop's actual path. Run it with an account that can read the shop files and access its database. The cron argument labels the saved trigger; it does not create a scheduled task.
Verify and troubleshoot
Confirm the first run
Check that the report date changes, a score appears and History gains a row. Review any reported check errors as well as findings. After a manual fix, run another scan and compare the affected check.
Common problems
- Exposure checks show no result. Check the Confirm exposure by self-checking public URLs switch, the shop domain and whether the server can reach its own public address. With that switch off, the scan cannot tell whether a file is reachable from outside.
- The scan takes too long. Turn off Deep scan (code & malware heuristics) and retry. Review the hosting execution limit and file access if it still fails.
- A code or malware warning looks wrong. Compare the listed file with a known-clean source. A pattern match alone does not justify deleting it.
- No history or module table error. Open Security Scan > Settings > System Check and inspect the module infrastructure result.
Uninstall
Save any reports you need before uninstalling through Module Manager. Uninstall removes the module menu, its declared tables, including scan history and connector records, and its configuration. Reinstalling does not restore that history.
Questions
1
What is the difference between Security Scan and Security Revolution?
Security Scan is detection-only: it reports findings, a score from 0 to 100 and manual fix steps. Security Revolution adds active protection and monitoring, including a firewall, admin security, file-integrity checks and fleet management.
Known Issues
5
Latest scan cannot be displayed
Vulnerability checks miss findings or flag unaffected versions
Safe settings and patched versions are flagged
Security hardening
Remote command count is incorrect
Feature Requests
3
Implemented
Local security scanning
Central security connection
Security check help
Changelog
v1.1.1
- Addedthe signed Security Fleet connector used by explicit, consent-based fleet workflows.
- Hardened the scan runner's read-only database guard so local checks cannot execute write SQL.
- ImprovedBack Office report persistence and history data for repeated scan comparisons.
- Refreshed package metadata, documentation links and release content for the free mypresta.rocks product page.
Older releases
v1.1.0
- Addedthe Back Office Scan & Report dashboard with a clear 0-100 score and A-F grade.
- Addedscan history so merchants can compare scores after manual fixes.
- Addedoptional deep-scan mode for slower static code and malware heuristics.
- Addedpublic-URL exposure confirmation for shops that allow same-domain self-check requests.
- Addedstandard MPR admin pages for configuration, support, update, license and integrity checks.
v1.0.0
- Initialfree Security Scan release for PrestaShop.
- Addedlocal detection for PrestaShop/PHP/module version risk and curated CVE indicators.
- Addedexposed file and endpoint checks for git folders, backups, install remnants, phpinfo files and readable configuration paths.
- Addedhardening checks for SSL, cookie flags, debug mode and common production-safety settings.
- Addedheuristic code and malware indicators with manual fix guidance for every finding.
Demo
Test the full module
- Ready demo shop Explore a ready demo shop in your browser.
- No registration No account, email or store domain needed.
By opening this demo you accept the demo terms and the privacy policy.