Security Scan: setup and help

Quick start

  1. Upload the Security Scan ZIP in Modules > Module Manager > Upload a module and install it.
  2. Open Security Scan > Settings > Configuration.
  3. Review Confirm exposure by self-checking public URLs and Deep scan (code & malware heuristics), both initially on, then click Save settings.
  4. Open Security Scan > Scan & Report and click Run scan now.
  5. Read Critical and High findings, inspect the affected items and follow the relevant manual fix steps.
  6. 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

  1. Open Security Scan > Scan & Report.
  2. Click Run scan now.
  3. Review the score, date, scan duration and findings.
  4. Read Critical and High findings first, then Medium and Low.
  5. Inspect each affected item and follow the applicable manual fix steps.
  6. 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

ResolvedUpdated:
Fixed in: 1.1.10
The dashboard could fail to load the latest scan because its lookup failed.

Vulnerability checks miss findings or flag unaffected versions

ResolvedUpdated:
Fixed in: 1.1.7
Some advisory checks could miss affected PrestaShop versions or incorrectly flag unaffected versions.

Safe settings and patched versions are flagged

ResolvedUpdated:
Fixed in: 1.1.3
Security scans could report false warnings for cookie protection, patched checkout modules and PrestaShop versions outside an advisory range.

Security hardening

ResolvedUpdated:
Fixed in: 1.1.3
Security hardening.

Remote command count is incorrect

ResolvedUpdated:
Fixed in: 1.1.2
Checking for remote scan requests could show an incorrect command count.

Feature Requests

3

Implemented

Local security scanning

Implemented
Scan the shop locally and review a security score, findings, manual fix guidance and scan history.

Central security connection

Implemented
Enroll the shop in a central security overview and accept remote scan requests.

Security check help

Implemented
Read explanations of security check groups, scoring and scan limitations inside the module.

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.

Loading...
Back to top