Changeset 3461467
- Timestamp:
- 02/14/2026 06:31:38 PM (6 weeks ago)
- Location:
- security-ninja
- Files:
-
- 772 added
- 4 deleted
- 18 edited
-
tags/5.267 (added)
-
tags/5.267/class-wf-sn-tests.php (added)
-
tags/5.267/css (added)
-
tags/5.267/css/images (added)
-
tags/5.267/css/images/ajax-loader.gif (added)
-
tags/5.267/css/images/dots32.gif (added)
-
tags/5.267/css/images/index.php (added)
-
tags/5.267/css/index.php (added)
-
tags/5.267/css/min (added)
-
tags/5.267/css/min/index.php (added)
-
tags/5.267/css/min/sn-style-pro__premium_only-min.css (added)
-
tags/5.267/css/min/sn-style.css (added)
-
tags/5.267/css/sn-style.scss (added)
-
tags/5.267/images (added)
-
tags/5.267/images/ajax-loader.gif (added)
-
tags/5.267/images/core-scanner.jpg (added)
-
tags/5.267/images/event-log.jpg (added)
-
tags/5.267/images/firewall.jpg (added)
-
tags/5.267/images/index.php (added)
-
tags/5.267/images/malware-scanner.jpg (added)
-
tags/5.267/images/plugin-icon.png (added)
-
tags/5.267/images/scheduler.jpg (added)
-
tags/5.267/images/security-ninja-logo.png (added)
-
tags/5.267/images/sn-logo.svg (added)
-
tags/5.267/images/whitelabel.jpg (added)
-
tags/5.267/includes (added)
-
tags/5.267/includes/10k-most-common.txt (added)
-
tags/5.267/includes/brute-force-dictionary.txt (added)
-
tags/5.267/includes/class-wf-sn-crypto.php (added)
-
tags/5.267/includes/class-wf-sn-free-render.php (added)
-
tags/5.267/includes/class-wf-sn-utils.php (added)
-
tags/5.267/includes/country-codes.php (added)
-
tags/5.267/includes/index.php (added)
-
tags/5.267/includes/sidebar.php (added)
-
tags/5.267/index.php (added)
-
tags/5.267/js (added)
-
tags/5.267/js/index.php (added)
-
tags/5.267/js/min (added)
-
tags/5.267/js/min/index.php (added)
-
tags/5.267/js/min/manual-vuln-scan-min.js (added)
-
tags/5.267/js/min/sn-common-min.js (added)
-
tags/5.267/js/min/sn-common-min.js.map (added)
-
tags/5.267/js/min/sn-global-min.js (added)
-
tags/5.267/js/min/sn-jquery-plugins-min.js (added)
-
tags/5.267/js/sn-common-min.js (added)
-
tags/5.267/js/sn-global.js (added)
-
tags/5.267/js/sn-jquery-plugins-min.js (added)
-
tags/5.267/js/sn-jquery-plugins.js (added)
-
tags/5.267/languages (added)
-
tags/5.267/languages/index.php (added)
-
tags/5.267/languages/security-ninja.pot (added)
-
tags/5.267/modules (added)
-
tags/5.267/modules/cloud-firewall (added)
-
tags/5.267/modules/cloud-firewall/admin (added)
-
tags/5.267/modules/cloud-firewall/admin/templates (added)
-
tags/5.267/modules/cloud-firewall/class-sn-geolite-integration.php (added)
-
tags/5.267/modules/cloud-firewall/class-sn-geolocation.php (added)
-
tags/5.267/modules/cloud-firewall/class-wf-sn-cf-utils.php (added)
-
tags/5.267/modules/cloud-firewall/class-wf-sn-security-utils.php (added)
-
tags/5.267/modules/cloud-firewall/cloud-firewall.php (added)
-
tags/5.267/modules/cloud-firewall/css (added)
-
tags/5.267/modules/cloud-firewall/css/index.php (added)
-
tags/5.267/modules/cloud-firewall/css/wf-sn-cf-min.css (added)
-
tags/5.267/modules/cloud-firewall/css/wf-sn-cf.css (added)
-
tags/5.267/modules/cloud-firewall/index.php (added)
-
tags/5.267/modules/cloud-firewall/js (added)
-
tags/5.267/modules/cloud-firewall/js/index.php (added)
-
tags/5.267/modules/cloud-firewall/js/wf-sn-cf-min.js (added)
-
tags/5.267/modules/cloud-firewall/js/wf-sn-cf.js (added)
-
tags/5.267/modules/cloud-firewall/select2 (added)
-
tags/5.267/modules/cloud-firewall/select2/.editorconfig (added)
-
tags/5.267/modules/cloud-firewall/select2/.github (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/CONTRIBUTING.md (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/FUNDING.yml (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/ISSUE_TEMPLATE.md (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/PULL_REQUEST_TEMPLATE.md (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/stale.yml (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/workflows (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/workflows/docs-deploy.yml (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/workflows/main.yml (added)
-
tags/5.267/modules/cloud-firewall/select2/.github/workflows/package-deploy.yml (added)
-
tags/5.267/modules/cloud-firewall/select2/.gitignore (added)
-
tags/5.267/modules/cloud-firewall/select2/.jshintignore (added)
-
tags/5.267/modules/cloud-firewall/select2/.jshintrc (added)
-
tags/5.267/modules/cloud-firewall/select2/css (added)
-
tags/5.267/modules/cloud-firewall/select2/css/select2.css (added)
-
tags/5.267/modules/cloud-firewall/select2/css/select2.min.css (added)
-
tags/5.267/modules/cloud-firewall/select2/js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/af.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ar.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/az.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/bg.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/bn.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/bs.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ca.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/cs.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/da.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/de.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/dsb.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/el.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/en.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/es.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/et.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/eu.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/fa.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/fi.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/fr.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/gl.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/he.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/hi.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/hr.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/hsb.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/hu.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/hy.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/id.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/is.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/it.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ja.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ka.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/km.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ko.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/lt.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/lv.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/mk.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ms.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/nb.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ne.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/nl.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/pl.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ps.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/pt-BR.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/pt.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ro.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/ru.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sk.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sl.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sq.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sr-Cyrl.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sr.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/sv.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/th.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/tk.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/tr.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/uk.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/vi.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/zh-CN.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/i18n/zh-TW.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/select2.full.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/select2.full.min.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/select2.js (added)
-
tags/5.267/modules/cloud-firewall/select2/js/select2.min.js (added)
-
tags/5.267/modules/cloud-firewall/tabs (added)
-
tags/5.267/modules/cloud-firewall/tabs/index.php (added)
-
tags/5.267/modules/cloud-firewall/tabs/login-protection.php (added)
-
tags/5.267/modules/cloud-firewall/tabs/settings.php (added)
-
tags/5.267/modules/core-scanner (added)
-
tags/5.267/modules/core-scanner/core-scanner.php (added)
-
tags/5.267/modules/core-scanner/css (added)
-
tags/5.267/modules/core-scanner/css/index.php (added)
-
tags/5.267/modules/core-scanner/css/wf-sn-core.css (added)
-
tags/5.267/modules/core-scanner/index.php (added)
-
tags/5.267/modules/core-scanner/js (added)
-
tags/5.267/modules/core-scanner/js/index.php (added)
-
tags/5.267/modules/core-scanner/js/wf-sn-core.js (added)
-
tags/5.267/modules/dashboard-widget (added)
-
tags/5.267/modules/dashboard-widget/class-wf-sn-dashboard-widget.php (added)
-
tags/5.267/modules/dashboard-widget/css (added)
-
tags/5.267/modules/dashboard-widget/css/dashboard-widget.css (added)
-
tags/5.267/modules/dashboard-widget/css/index.php (added)
-
tags/5.267/modules/dashboard-widget/css/min (added)
-
tags/5.267/modules/dashboard-widget/css/min/dashboard-widget-min.css (added)
-
tags/5.267/modules/dashboard-widget/css/min/index.php (added)
-
tags/5.267/modules/dashboard-widget/index.php (added)
-
tags/5.267/modules/events-logger (added)
-
tags/5.267/modules/events-logger/css (added)
-
tags/5.267/modules/events-logger/css/dataTables.jqueryui.min.css (added)
-
tags/5.267/modules/events-logger/css/index.php (added)
-
tags/5.267/modules/events-logger/css/jquery.dataTables.min.css (added)
-
tags/5.267/modules/events-logger/css/wf-sn-el.css (added)
-
tags/5.267/modules/events-logger/events-logger.php (added)
-
tags/5.267/modules/events-logger/images (added)
-
tags/5.267/modules/events-logger/images/back_disabled.png (added)
-
tags/5.267/modules/events-logger/images/back_enabled.png (added)
-
tags/5.267/modules/events-logger/images/back_enabled_hover.png (added)
-
tags/5.267/modules/events-logger/images/forward_disabled.png (added)
-
tags/5.267/modules/events-logger/images/forward_enabled.png (added)
-
tags/5.267/modules/events-logger/images/forward_enabled_hover.png (added)
-
tags/5.267/modules/events-logger/images/index.php (added)
-
tags/5.267/modules/events-logger/images/sort_asc.png (added)
-
tags/5.267/modules/events-logger/images/sort_asc_disabled.png (added)
-
tags/5.267/modules/events-logger/images/sort_both.png (added)
-
tags/5.267/modules/events-logger/images/sort_desc.png (added)
-
tags/5.267/modules/events-logger/images/sort_desc_disabled.png (added)
-
tags/5.267/modules/events-logger/index.php (added)
-
tags/5.267/modules/events-logger/js (added)
-
tags/5.267/modules/events-logger/js/index.php (added)
-
tags/5.267/modules/events-logger/js/jquery.dataTables.min.js (added)
-
tags/5.267/modules/events-logger/js/wf-sn-el-min.js (added)
-
tags/5.267/modules/events-logger/js/wf-sn-el.js (added)
-
tags/5.267/modules/events-logger/sn-el-modules.php (added)
-
tags/5.267/modules/file-viewer (added)
-
tags/5.267/modules/file-viewer/class-secnin-file-viewer.php (added)
-
tags/5.267/modules/file-viewer/index.php (added)
-
tags/5.267/modules/index.php (added)
-
tags/5.267/modules/login-protection (added)
-
tags/5.267/modules/overview (added)
-
tags/5.267/modules/overview/class-wf-sn-overview-tab.php (added)
-
tags/5.267/modules/overview/index.php (added)
-
tags/5.267/modules/settings (added)
-
tags/5.267/modules/settings/class-wf-sn-settings.php (added)
-
tags/5.267/modules/settings/index.php (added)
-
tags/5.267/modules/vulnerabilities (added)
-
tags/5.267/modules/vulnerabilities/class-wf-sn-vu.php (added)
-
tags/5.267/modules/vulnerabilities/index.php (added)
-
tags/5.267/modules/vulnerabilities/js (added)
-
tags/5.267/modules/vulnerabilities/js/index.php (added)
-
tags/5.267/modules/vulnerabilities/js/manual-vuln-scan.js (added)
-
tags/5.267/modules/vulnerabilities/js/min (added)
-
tags/5.267/modules/vulnerabilities/js/min/index.php (added)
-
tags/5.267/modules/vulnerabilities/js/min/manual-vuln-scan-min.js (added)
-
tags/5.267/readme.txt (added)
-
tags/5.267/security-ninja.php (added)
-
tags/5.267/sn-tests-description.php (added)
-
tags/5.267/vendor (added)
-
tags/5.267/vendor/autoload.php (added)
-
tags/5.267/vendor/bin (added)
-
tags/5.267/vendor/chillerlan (added)
-
tags/5.267/vendor/chillerlan/php-qrcode (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/LICENSE-ASL-2.0 (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/LICENSE-MIT (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/NOTICE (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/README.md (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/composer.json (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/BitBuffer.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/ECICharset.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/EccLevel.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/GDLuminanceSource.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/GF256.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/GenericGFPoly.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/IMagickLuminanceSource.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/LuminanceSourceAbstract.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/LuminanceSourceInterface.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/MaskPattern.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/Mode.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Common/Version.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/AlphaNum.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/Byte.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/ECI.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/Hanzi.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/Kanji.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/Number.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/QRCodeDataException.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/QRData.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/QRDataModeInterface.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/QRMatrix.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Data/ReedSolomonEncoder.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/Binarizer.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/BitMatrix.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/Decoder.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/DecoderResult.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/QRCodeDecoderException.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Decoder/ReedSolomonDecoder.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/AlignmentPattern.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/AlignmentPatternFinder.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/Detector.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/FinderPattern.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/FinderPatternFinder.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/GridSampler.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/PerspectiveTransform.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/QRCodeDetectorException.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Detector/ResultPoint.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QREps.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRFpdf.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImage.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImageBMP.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImageGIF.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImageJPEG.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImagePNG.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRGdImageWEBP.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRImage.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRImagick.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRMarkup.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRMarkupHTML.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRMarkupSVG.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QROutputInterface.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRString.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRStringJSON.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/Output/QRStringText.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/QRCode.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/QRCodeException.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/QROptions.php (added)
-
tags/5.267/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php (added)
-
tags/5.267/vendor/chillerlan/php-settings-container (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/LICENSE (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/README.md (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/composer.json (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/rules-magic-access.neon (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/src (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php (added)
-
tags/5.267/vendor/chillerlan/php-settings-container/src/SettingsContainerInterface.php (added)
-
tags/5.267/vendor/collizo4sky (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal/CHANGES.md (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal/README.md (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal/composer.json (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal/dismiss-notice.js (added)
-
tags/5.267/vendor/collizo4sky/persist-admin-notices-dismissal/persist-admin-notices-dismissal.php (added)
-
tags/5.267/vendor/composer (added)
-
tags/5.267/vendor/composer/ClassLoader.php (added)
-
tags/5.267/vendor/composer/InstalledVersions.php (added)
-
tags/5.267/vendor/composer/LICENSE (added)
-
tags/5.267/vendor/composer/autoload_classmap.php (added)
-
tags/5.267/vendor/composer/autoload_files.php (added)
-
tags/5.267/vendor/composer/autoload_namespaces.php (added)
-
tags/5.267/vendor/composer/autoload_psr4.php (added)
-
tags/5.267/vendor/composer/autoload_real.php (added)
-
tags/5.267/vendor/composer/autoload_static.php (added)
-
tags/5.267/vendor/composer/installed.json (added)
-
tags/5.267/vendor/composer/installed.php (added)
-
tags/5.267/vendor/composer/platform_check.php (added)
-
tags/5.267/vendor/dasprid (added)
-
tags/5.267/vendor/dasprid/enum (added)
-
tags/5.267/vendor/dasprid/enum/LICENSE (added)
-
tags/5.267/vendor/dasprid/enum/README.md (added)
-
tags/5.267/vendor/dasprid/enum/composer.json (added)
-
tags/5.267/vendor/dasprid/enum/src (added)
-
tags/5.267/vendor/dasprid/enum/src/AbstractEnum.php (added)
-
tags/5.267/vendor/dasprid/enum/src/EnumMap.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/ExceptionInterface.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/ExpectationException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/IllegalArgumentException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/MismatchException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/SerializeNotSupportedException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/Exception/UnserializeNotSupportedException.php (added)
-
tags/5.267/vendor/dasprid/enum/src/NullValue.php (added)
-
tags/5.267/vendor/freemius (added)
-
tags/5.267/vendor/freemius/wordpress-sdk (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/LICENSE.txt (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/account.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/add-ons.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/affiliation.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/checkout.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/clone-resolution.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/common.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/connect.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/debug.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/dialog-boxes.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/gdpr-optin-notice.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/optout.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/admin/plugins.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/customizer.css (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/css/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/img (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/img/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/img/plugin-icon.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/img/security-ninja.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/img/theme-icon.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/jquery.form.js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/nojquery.ba-postmessage.js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/postmessage.js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/14fb1bd5b7c41648488b06147f50a0dc.svg (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/178afa6030e76635dbe835e111d2c507.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/27b5a722a5553d9de0170325267fccec.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/45da596e2b512ffc3bb638baaf0fdc4e.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/a34e046aee1702a5690679750a7f4d0f.svg (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/b09d0b38b627c2fa564d050f79f2f064.svg (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/c03f665db27af43971565560adfba594.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/d65812c447b4523b42d59018e1c0bb53.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/f3aac72a8e63997d6bb888f816457e9b.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/fde48e4609a6ddc11d639fc2421f2afd.png (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js.LICENSE.txt (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/config.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-freemius-abstract.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-freemius.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-admin-notices.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-api.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-garbage-collector.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-hook-snapshot.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-lock.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-logger.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-options.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-security.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-storage.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/class-fs-user-lock.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/customizer (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-support-section.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/customizer/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/debug (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/debug/debug-bar-start.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/debug/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate-terms.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-billing.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-payment.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-info.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-license.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-plan.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-tag.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-pricing.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-scope-entity.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-site.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-subscription.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/class-fs-user.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/entities/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/fs-html-escaping-functions.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/l10n.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-notice-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-checkout-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-clone-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-contact-form-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-debug-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-gdpr-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-key-value-storage.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-license-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-permission-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plan-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plugin-manager.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/managers/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/Exception.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/OAuthException.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusBase.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/LICENSE.txt (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/sdk/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/supplements (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/supplements/fs-migration-2.5.1.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/includes/supplements/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-da_DK.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-de_DE.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-it_IT.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-ja.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-nl_NL.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-ru_RU.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-ta.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius-zh_CN.mo (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/freemius.pot (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/languages/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/require.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/start.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/billing.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/activate-license-button.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/addon.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/deactivate-license-button.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/disconnect-button.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/partials/site.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/account/payments.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/add-ons.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/add-trial-to-pricing.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/admin-notice.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/ajax-loader.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/api-connectivity-message-js.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/auto-installation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/checkout (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/checkout.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/checkout/frame.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/checkout/process-redirect.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/checkout/redirect.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/clone-resolution-js.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/connect (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/connect.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/connect/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/connect/permission.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/connect/permissions-group.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/contact.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug/api-calls.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug/logger.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug/plugins-themes-sync.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/debug/scheduled-crons.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/email.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/affiliation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/data-debug-mode.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/deactivation (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/deactivation/contact.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/deactivation/form.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/deactivation/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/deactivation/retry-skip.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/email-address-update.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/license-activation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/optout.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-handler.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-metadata.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/resend-key.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/subscription-cancellation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/trial-start.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/forms/user-change.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/gdpr-optin-js.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js/jquery.content-change.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js/open-license-activation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js/permissions.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/js/style-premium-theme.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/partials (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/partials/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/partials/network-activation.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-icon.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-info (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-info/description.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-info/features.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-info/index.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/plugin-info/screenshots.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/pricing.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/secure-https-header.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/sticky-admin-notice-js.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/tabs-capture-js.php (added)
-
tags/5.267/vendor/freemius/wordpress-sdk/templates/tabs.php (added)
-
tags/5.267/vendor/khanamiryan (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/.gitignore (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/LICENSE-ASL-2.0 (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/LICENSE-MIT (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/README.md (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/composer.json (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/ecs.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Binarizer.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/BinaryBitmap.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/ChecksumException.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/AbstractEnum.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/BitArray.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/BitMatrix.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/BitSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/CharacterSetECI.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/DecoderResult.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/DefaultGridSampler.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Detector (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Detector/MathUtils.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Detector/MonochromeRectangleDetector.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/DetectorResult.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/GlobalHistogramBinarizer.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/GridSampler.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/HybridBinarizer.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/PerspectiveTransform.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Reedsolomon (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Reedsolomon/GenericGF.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Reedsolomon/GenericGFPoly.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Reedsolomon/ReedSolomonDecoder.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/Reedsolomon/ReedSolomonException.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/customFunctions.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/FormatException.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/GDLuminanceSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/IMagickLuminanceSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/LuminanceSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/NotFoundException.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/PlanarYUVLuminanceSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/QrReader.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/BitMatrixParser.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/DataBlock.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/DataMask.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/DecodedBitStreamParser.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/Decoder.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/ErrorCorrectionLevel.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/FormatInformation.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/Mode.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/QRCodeDecoderMetaData.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Decoder/Version.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/AlignmentPattern.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/AlignmentPatternFinder.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/Detector.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/FinderPattern.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/FinderPatternFinder.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/Detector/FinderPatternInfo.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Qrcode/QRCodeReader.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/RGBLuminanceSource.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Reader.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/ReaderException.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/Result.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/lib/ResultPoint.php (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/phpunit.xml.dist (added)
-
tags/5.267/vendor/khanamiryan/qrcode-detector-decoder/rector.php (added)
-
tags/5.267/vendor/marc-mabe (added)
-
tags/5.267/vendor/marc-mabe/php-enum (added)
-
tags/5.267/vendor/marc-mabe/php-enum/LICENSE.txt (added)
-
tags/5.267/vendor/marc-mabe/php-enum/README.md (added)
-
tags/5.267/vendor/marc-mabe/php-enum/composer.json (added)
-
tags/5.267/vendor/marc-mabe/php-enum/src (added)
-
tags/5.267/vendor/marc-mabe/php-enum/src/Enum.php (added)
-
tags/5.267/vendor/marc-mabe/php-enum/src/EnumMap.php (added)
-
tags/5.267/vendor/marc-mabe/php-enum/src/EnumSerializableTrait.php (added)
-
tags/5.267/vendor/marc-mabe/php-enum/src/EnumSet.php (added)
-
tags/5.267/vendor/marc-mabe/php-enum/stubs (added)
-
tags/5.267/vendor/marc-mabe/php-enum/stubs/Stringable.php (added)
-
tags/5.267/vendor/paragonie (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/LICENSE.txt (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/README.md (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/composer.json (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base32.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base32Hex.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base64.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Binary.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Encoding.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/Hex.php (added)
-
tags/5.267/vendor/paragonie/constant_time_encoding/src/RFC4648.php (added)
-
tags/5.267/vendor/paragonie/random_compat (added)
-
tags/5.267/vendor/paragonie/random_compat/LICENSE (added)
-
tags/5.267/vendor/paragonie/random_compat/composer.json (added)
-
tags/5.267/vendor/paragonie/random_compat/dist (added)
-
tags/5.267/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey (added)
-
tags/5.267/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc (added)
-
tags/5.267/vendor/paragonie/random_compat/lib (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/byte_safe_strings.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/cast_to_int.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/error_polyfill.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php (added)
-
tags/5.267/vendor/paragonie/random_compat/lib/random_int.php (added)
-
tags/5.267/vendor/phpseclib (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/LICENSE.md (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/README.md (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/composer.json (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/lib (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/lib/bcmath.php (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/src (added)
-
tags/5.267/vendor/phpseclib/bcmath_compat/src/BCMath.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib (added)
-
tags/5.267/vendor/phpseclib/phpseclib/AUTHORS (added)
-
tags/5.267/vendor/phpseclib/phpseclib/BACKERS.md (added)
-
tags/5.267/vendor/phpseclib/phpseclib/LICENSE (added)
-
tags/5.267/vendor/phpseclib/phpseclib/README.md (added)
-
tags/5.267/vendor/phpseclib/phpseclib/SECURITY.md (added)
-
tags/5.267/vendor/phpseclib/phpseclib/appveyor.yml (added)
-
tags/5.267/vendor/phpseclib/phpseclib/composer.json (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File/ASN1 (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/File/X509.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Math (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/System (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/System/SSH (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php (added)
-
tags/5.267/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf (added)
-
tags/5.267/vendor/typisttech (added)
-
tags/5.267/vendor/typisttech/imposter (added)
-
tags/5.267/vendor/typisttech/imposter-plugin (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/LICENSE (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/README.md (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/composer.json (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/composer.lock (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/src (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/src/AutoloadMerger.php (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/src/ImposterPlugin.php (added)
-
tags/5.267/vendor/typisttech/imposter-plugin/src/Transformer.php (added)
-
tags/5.267/vendor/typisttech/imposter/LICENSE (added)
-
tags/5.267/vendor/typisttech/imposter/README.md (added)
-
tags/5.267/vendor/typisttech/imposter/composer.json (added)
-
tags/5.267/vendor/typisttech/imposter/composer.lock (added)
-
tags/5.267/vendor/typisttech/imposter/src (added)
-
tags/5.267/vendor/typisttech/imposter/src/ArrayUtil.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/Config.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ConfigCollection.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ConfigCollectionFactory.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ConfigCollectionInterface.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ConfigFactory.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ConfigInterface.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/Filesystem.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/FilesystemInterface.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/Imposter.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ImposterFactory.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ImposterInterface.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ProjectConfig.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/ProjectConfigInterface.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/StringUtil.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/Transformer.php (added)
-
tags/5.267/vendor/typisttech/imposter/src/TransformerInterface.php (added)
-
trunk/css/min/sn-style.css (modified) (2 diffs)
-
trunk/css/sn-style.scss (modified) (1 diff)
-
trunk/includes/sidebar.php (modified) (1 diff)
-
trunk/languages/security-ninja.pot (modified) (2 diffs)
-
trunk/modules/cloud-firewall/class-sn-geolocation.php (modified) (1 diff)
-
trunk/modules/cloud-firewall/class-wf-sn-cf-utils.php (added)
-
trunk/modules/cloud-firewall/cloud-firewall.php (modified) (16 diffs)
-
trunk/modules/cloud-firewall/tabs/login-protection.php (modified) (5 diffs)
-
trunk/modules/cloud-firewall/tabs/settings.php (modified) (1 diff)
-
trunk/modules/core-scanner/core-scanner.php (modified) (5 diffs)
-
trunk/modules/core-scanner/css/wf-sn-core-min.css (deleted)
-
trunk/modules/core-scanner/js/wf-sn-core-min.js (deleted)
-
trunk/modules/core-scanner/js/wf-sn-core-min.js.map (deleted)
-
trunk/modules/core-scanner/js/wf-sn-core.js (modified) (2 diffs)
-
trunk/modules/events-logger/css/wf-sn-el-min.css (deleted)
-
trunk/modules/events-logger/events-logger.php (modified) (1 diff)
-
trunk/modules/events-logger/js/wf-sn-el.js (modified) (1 diff)
-
trunk/modules/overview/class-wf-sn-overview-tab.php (modified) (7 diffs)
-
trunk/modules/vulnerabilities/class-wf-sn-vu.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/security-ninja.php (modified) (4 diffs)
-
trunk/sn-tests-description.php (modified) (6 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
security-ninja/trunk/css/min/sn-style.css
r3446591 r3461467 33 33 background-color: #047857; 34 34 color: #ffffff; 35 margin-right: 10px; 35 36 border: 1px solid #047857; 36 37 } … … 1386 1387 table-layout: fixed; 1387 1388 max-width: 1370px; 1388 margin: 0 auto;1389 1389 } 1390 1390 -
security-ninja/trunk/css/sn-style.scss
r3446591 r3461467 36 36 color: #ffffff; 37 37 border: 1px solid #047857; 38 margin-right: 10px; 38 39 } 39 40 -
security-ninja/trunk/includes/sidebar.php
r3451093 r3461467 243 243 ?> 244 244 <div class="sidebarsection feature upgradepro"> 245 <h3>Effortless Security for Your Site!</h3> 245 <h3><?php 246 esc_html_e( 'Effortless Security for Your Site!', 'security-ninja' ); 247 ?></h3> 246 248 <ul> 247 <li><strong>Easy Setup:</strong> Install in minutes, no technical skills required.</li> 248 <li><strong>Automatic Protection:</strong> Real-time firewall and automated scans.</li> 249 <li><strong>Spam & Bot Blocking:</strong> Keeps your site clean and visitors safe.</li> 250 <li><strong>Secure Logins:</strong> Protect your login page from attacks.</li> 249 <li><strong><?php 250 esc_html_e( 'Get set up in minutes', 'security-ninja' ); 251 ?></strong> — <?php 252 esc_html_e( 'Guided wizard, no technical skills needed.', 'security-ninja' ); 253 ?></li> 254 <li><strong><?php 255 esc_html_e( 'Stay protected 24/7', 'security-ninja' ); 256 ?></strong> — <?php 257 esc_html_e( 'Real-time firewall and automatic scans.', 'security-ninja' ); 258 ?></li> 259 <li><strong><?php 260 esc_html_e( 'Keep spam and bots out', 'security-ninja' ); 261 ?></strong> — <?php 262 esc_html_e( 'Cleaner site, safer visitors.', 'security-ninja' ); 263 ?></li> 264 <li><strong><?php 265 esc_html_e( 'Lock down logins', 'security-ninja' ); 266 ?></strong> — <?php 267 esc_html_e( 'Block brute force; add 2FA and hidden login URL.', 'security-ninja' ); 268 ?></li> 269 <li><strong><?php 270 esc_html_e( 'Find and fix issues fast', 'security-ninja' ); 271 ?></strong> — <?php 272 esc_html_e( 'Malware & core scans, one-click fixes.', 'security-ninja' ); 273 ?></li> 274 <li><strong><?php 275 esc_html_e( 'See who did what', 'security-ninja' ); 276 ?></strong> — <?php 277 esc_html_e( 'Simple audit log of changes.', 'security-ninja' ); 278 ?></li> 279 <li><strong><?php 280 esc_html_e( 'Run scans on your schedule', 'security-ninja' ); 281 ?></strong> — <?php 282 esc_html_e( 'Set it and forget it.', 'security-ninja' ); 283 ?></li> 284 <li><strong><?php 285 esc_html_e( 'Try risk-free', 'security-ninja' ); 286 ?></strong> — <?php 287 esc_html_e( '30-day money-back guarantee.', 'security-ninja' ); 288 ?></li> 251 289 </ul> 252 <p>253 <em>Upgrade to Pro and get effortless security today!</em>254 </p>255 256 290 <p style="margin-top: 10px;text-align: center;"> 257 <a href="https://wpsecurityninja.com/pricing/?utm_source=overview-tab&utm_medium=plugin&utm_content=explore-pro&utm_campaign=security_ninja_v5.235" class="" target="_blank">Get started now!</a><br><small>30-days money back guarantee</small> 291 <a href="https://wpsecurityninja.com/pricing/?utm_source=overview-tab&utm_medium=plugin&utm_content=explore-pro&utm_campaign=security_ninja_v5.235" class="" target="_blank" rel="noopener"><?php 292 esc_html_e( 'Read more', 'security-ninja' ); 293 ?></a> 258 294 </p> 259 295 </div> -
security-ninja/trunk/languages/security-ninja.pot
r3458434 r3461467 2006 2006 msgstr "" 2007 2007 2008 #: modules/auto-fixer/class-wf-sn-fixes.php:873 2009 msgid "LiteSpeed detected:" 2010 msgstr "" 2011 2012 #: modules/auto-fixer/class-wf-sn-fixes.php:873 2013 msgid "The PHP header interface may not work on LiteSpeed servers. If security headers do not appear in your response, add them directly to your .htaccess file (see the test descriptions for each header for examples)." 2014 msgstr "" 2015 2008 2016 #: modules/auto-fixer/class-wf-sn-fixes.php:1040 2009 2017 msgid "" … … 7758 7766 msgstr "" 7759 7767 7768 #: sn-tests-description.php:48 sn-tests-description.php:73 sn-tests-description.php:109 sn-tests-description.php:144 7769 #: sn-tests-description.php:170 sn-tests-description.php:202 7770 msgid "LiteSpeed servers:" 7771 msgstr "" 7772 7773 #: sn-tests-description.php:73 7774 msgid "The PHP header interface may not work correctly on LiteSpeed. If CSP headers are not appearing in your response, add the policy directly to your .htaccess file using the example below." 7775 msgstr "" 7776 7777 #: sn-tests-description.php:48 sn-tests-description.php:109 sn-tests-description.php:144 sn-tests-description.php:170 7778 #: sn-tests-description.php:202 7779 msgid "The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below." 7780 msgstr "" 7781 7760 7782 #: sn-tests-description.php:86 7761 7783 msgid "Read our guide to configuring Content Security Policy" -
security-ninja/trunk/modules/cloud-firewall/class-sn-geolocation.php
r3446591 r3461467 158 158 */ 159 159 public static function geolocate_ip( $ip_address = '', $fallback = false, $api_fallback = true ) { 160 // If GEOIP is enabled in CloudFlare, we can use that (Settings -> CloudFlare Settings -> Settings Overview). 161 if ( !empty( $_SERVER['HTTP_CF_IPCOUNTRY'] ) ) { 162 // WPCS: input var ok, CSRF ok. 163 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_IPCOUNTRY'] ) ) ); 164 // WPCS: input var ok, CSRF ok. 165 } elseif ( !empty( $_SERVER['GEOIP_COUNTRY_CODE'] ) ) { 166 // WPCS: input var ok, CSRF ok. 167 // WP.com VIP has a variable available. 168 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['GEOIP_COUNTRY_CODE'] ) ) ); 169 // WPCS: input var ok, CSRF ok. 170 } elseif ( !empty( $_SERVER['HTTP_X_COUNTRY_CODE'] ) ) { 171 // WPCS: input var ok, CSRF ok. 172 // VIP Go has a variable available also. 173 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_COUNTRY_CODE'] ) ) ); 174 // WPCS: input var ok, CSRF ok. 175 } 176 if ( isset( $_SERVER["HTTP_CF_CONNECTING_IP"] ) ) { 160 $country_code = ''; 161 // Only use request headers when geolocating the current request's IP (no explicit IP passed). 162 if ( empty( $ip_address ) ) { 163 // If GEOIP is enabled in CloudFlare, we can use that (Settings -> CloudFlare Settings -> Settings Overview). 164 if ( !empty( $_SERVER['HTTP_CF_IPCOUNTRY'] ) ) { 165 // WPCS: input var ok, CSRF ok. 166 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_IPCOUNTRY'] ) ) ); 167 // WPCS: input var ok, CSRF ok. 168 } elseif ( !empty( $_SERVER['GEOIP_COUNTRY_CODE'] ) ) { 169 // WPCS: input var ok, CSRF ok. 170 // WP.com VIP has a variable available. 171 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['GEOIP_COUNTRY_CODE'] ) ) ); 172 // WPCS: input var ok, CSRF ok. 173 } elseif ( !empty( $_SERVER['HTTP_X_COUNTRY_CODE'] ) ) { 174 // WPCS: input var ok, CSRF ok. 175 // VIP Go has a variable available also. 176 $country_code = strtoupper( sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_COUNTRY_CODE'] ) ) ); 177 // WPCS: input var ok, CSRF ok. 178 } 179 } 180 // Only use current request's IP from Cloudflare when we weren't given a specific IP to look up. 181 if ( empty( $ip_address ) && isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) { 177 182 $ip_address = sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ); 178 183 } -
security-ninja/trunk/modules/cloud-firewall/cloud-firewall.php
r3458434 r3461467 288 288 289 289 /** 290 * endsWith. - ref https://www.php.net/manual/en/function.str-ends-with.php291 *292 * @author javalc6 at gmail dot com293 * @since v0.0.1294 * @version v1.0.0 Monday, August 30th, 2021.295 * @param mixed $haystack296 * @param mixed $needle297 * @return mixed298 */299 private static function string_ends_with( $haystack, $needle ) {300 $length = strlen( $needle );301 return ( $length > 0 ? substr( $haystack, -$length ) === $needle : true );302 }303 304 /**305 290 * Validate a crawlers IP against the hostname 306 291 * … … 352 337 ); 353 338 foreach ( $valid_host_names as $valid_host ) { 354 if ( self::string_ends_with( $hostname, $valid_host ) ) {339 if ( Wf_sn_cf_Utils::string_ends_with( $hostname, $valid_host ) ) { 355 340 $returned_ip = gethostbyname( $hostname ); 356 341 if ( $returned_ip === $testip ) { … … 508 493 if ( strpos( $whitelist_item, '/' ) !== false ) { 509 494 // Use the proper CIDR matching function 510 if ( self::ipCIDRMatch( $current_user_ip, $whitelist_item ) ) {495 if ( Wf_sn_cf_Utils::ipCIDRMatch( $current_user_ip, $whitelist_item ) ) { 511 496 return true; 512 497 // IP is whitelisted … … 1125 1110 1126 1111 /** 1127 * Update local list of blocked IPs.1128 * First delete expired > 24 hours.1129 * Then download and bulk add entries1130 *1131 * @author Lars Koudal1132 * @since v0.0.11133 * @version v1.0.0 Sunday, May 30th, 2021.1134 * @version v1.0.1 Wednesday, June 9th, 2021.1135 * @access public static1136 * @global1137 * @param boolean $force Default: false1138 * @return void1139 */1140 public static function action_update_blocked_ips( $force = false ) {1141 $listips = self::get_network_listips();1142 // @todo - right place for it?1143 if ( !$listips ) {1144 wf_sn_el_modules::log_event( 'security_ninja', 'update_blocked_ips', 'Error getting blocked IPs from server' );1145 return false;1146 }1147 global $wpdb;1148 // Cleaning up1149 $table_name = $wpdb->prefix . 'wf_sn_cf_bl_ips';1150 $delquery = "DELETE FROM `{$table_name}` WHERE HOUR(TIMEDIFF(NOW(), tid))>24;";1151 $delres = $wpdb->query( $delquery );1152 if ( $delres ) {1153 wf_sn_el_modules::log_event(1154 'security_ninja',1155 'update_blocked_ips',1156 sprintf( esc_html__( 'Removed %1$s IPs from the Blocklist - older than 24 hours.', 'security-ninja' ), intval( $delres ) ),1157 ''1158 );1159 } else {1160 wf_sn_el_modules::log_event( 'security_ninja', 'update_blocked_ips', 'No old IPs needs to be removed.' );1161 }1162 $blockedips = json_decode( $listips, true );1163 if ( $blockedips && is_array( $blockedips ) && isset( $blockedips['ips'] ) && is_array( $blockedips['ips'] ) ) {1164 global $wpdb;1165 $current_count = 0;1166 $limit = 15;1167 $longquery = '';1168 $totalcount = 0;1169 $timenow = current_time( 'mysql' );1170 foreach ( $blockedips['ips'] as $ip ) {1171 if ( 0 === $current_count ) {1172 $longquery .= ' INSERT IGNORE INTO `' . $table_name . "` (`ip`) VALUES ('" . esc_sql( $ip ) . "')";1173 } else {1174 $longquery .= ",('" . esc_sql( $ip ) . "')";1175 }1176 $current_count++;1177 if ( $current_count > $limit ) {1178 $longquery .= ';';1179 // add ending semicolon before executing1180 $wpdb->query( $longquery );1181 $longquery = '';1182 $current_count = 0;1183 }1184 $totalcount++;1185 }1186 // Leftovers?1187 if ( $current_count > 0 ) {1188 $longquery .= ';';1189 // add ending semicolon before executing1190 $wpdb->query( $longquery );1191 $longquery = '';1192 $current_count = 0;1193 }1194 }1195 }1196 1197 /**1198 1112 * Prune events log table 1199 1113 * … … 1207 1121 public static function prune_visitor_log( $force = false ) { 1208 1122 global $wpdb; 1209 $trackvisits_howlong = intval( self::$options['trackvisits_howlong'] );1123 $trackvisits_howlong = absint( self::$options['trackvisits_howlong'] ); 1210 1124 if ( !$trackvisits_howlong ) { 1211 1125 $trackvisits_howlong = 2; … … 1213 1127 } 1214 1128 $table_name = $wpdb->prefix . 'wf_sn_cf_vl'; 1215 if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $table_name ) ) === $table_name ) {1216 $wpdb->query( 'DELETE FROM ' . $wpdb->prefix . 'wf_sn_cf_vl' . " WHERE timestamp < DATE_SUB(NOW(), INTERVAL {$trackvisits_howlong} DAY);");1129 if ( $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $table_name ) ) === $table_name ) { 1130 $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'wf_sn_cf_vl WHERE timestamp < DATE_SUB(NOW(), INTERVAL %d DAY)', $trackvisits_howlong ) ); 1217 1131 $max_records = 5000; 1218 1132 // Sane limit for visitor log entries … … 1296 1210 */ 1297 1211 public static function schedule_cron_jobs() { 1298 // Update GEOIP database - once a month1299 if ( !wp_next_scheduled( 'secnin_update_geoip' ) ) {1300 wp_schedule_event( time() + 30, 'weekly', 'secnin_update_geoip' );1301 }1302 // Update cloud IPs1303 if ( !wp_next_scheduled( 'secnin_update_cloud_firewall' ) ) {1304 wp_schedule_event( time() + 15, 'twicedaily', 'secnin_update_cloud_firewall' );1305 }1306 // Prune local banned IPs (hourly; migrate existing twicedaily to hourly)1307 $next_prune = wp_next_scheduled( 'secnin_prune_banned' );1308 if ( $next_prune ) {1309 wp_unschedule_event( $next_prune, 'secnin_prune_banned' );1310 }1311 wp_schedule_event( time() + 3600, 'hourly', 'secnin_prune_banned' );1312 // Prune visitor log1313 if ( !wp_next_scheduled( 'secnin_prune_visitor_log' ) ) {1314 wp_schedule_event( time() + 3600, 'twicedaily', 'secnin_prune_visitor_log' );1315 }1316 // Update blocked IPs from central server1317 if ( !wp_next_scheduled( 'secnin_update_blocked_ips' ) ) {1318 wp_schedule_event( time() + 45, 'twicedaily', 'secnin_update_blocked_ips' );1319 }1320 1212 } 1321 1213 … … 2273 2165 2274 2166 /** 2275 * ipCIDRMatch.2276 *2277 * @author Unknown2278 * @author Lars Koudal2279 * @since v0.0.12280 * @version v1.0.0 Saturday, August 20th, 2022.2281 * @version v1.0.1 Tuesday, August 27th, 2024.2282 * @access public static2283 * @param string $ip The IP address to check.2284 * @param string $cidr The CIDR range to check against.2285 * @return bool True if the IP matches the CIDR range, false otherwise.2286 */2287 public static function ipCIDRMatch( $ip, $cidr ) {2288 $c = explode( '/', $cidr );2289 $subnet = ( isset( $c[0] ) ? $c[0] : NULL );2290 $mask = ( isset( $c[1] ) ? (int) $c[1] : NULL );2291 if ( filter_var( $subnet, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {2292 $ipVersion = 'v4';2293 } elseif ( filter_var( $subnet, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {2294 $ipVersion = 'v6';2295 } else {2296 return false;2297 }2298 switch ( $ipVersion ) {2299 case 'v4':2300 if ( $mask === NULL || $mask < 0 || $mask > 32 ) {2301 return false;2302 }2303 return self::IPv4Match( $ip, $subnet, $mask );2304 case 'v6':2305 if ( $mask === NULL || $mask < 0 || $mask > 128 ) {2306 return false;2307 }2308 return self::IPv6Match( $ip, $subnet, $mask );2309 default:2310 return false;2311 }2312 }2313 2314 /**2315 * inspired by: http://stackoverflow.com/questions/7951061/matching-ipv6-address-to-a-cidr-subnet2316 *2317 * @author Unknown2318 * @since v0.0.12319 * @version v1.0.0 Tuesday, May 14th, 2024.2320 * @access private static2321 * @param mixed $subnetMask2322 * @return mixed2323 */2324 private static function IPv6MaskToByteArray( $subnetMask ) {2325 $addr = str_repeat( "f", $subnetMask / 4 );2326 switch ( $subnetMask % 4 ) {2327 case 0:2328 break;2329 case 1:2330 $addr .= "8";2331 break;2332 case 2:2333 $addr .= "c";2334 break;2335 case 3:2336 $addr .= "e";2337 break;2338 }2339 $addr = str_pad( $addr, 32, '0' );2340 $addr = pack( "H*", $addr );2341 return $addr;2342 }2343 2344 /**2345 * inspired by: http://stackoverflow.com/questions/7951061/matching-ipv6-address-to-a-cidr-subnet2346 *2347 * @author Unknown2348 * @author Lars Koudal2349 * @since v0.0.12350 * @version v1.0.0 Tuesday, May 14th, 2024.2351 * @version v1.0.1 Tuesday, August 27th, 2024.2352 * @access private static2353 * @param mixed $address2354 * @param mixed $subnetAddress2355 * @param mixed $subnetMask2356 * @return mixed2357 */2358 private static function IPv6Match( $address, $subnetAddress, $subnetMask ) {2359 // Validate the subnet address2360 if ( !filter_var( $subnetAddress, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) || $subnetMask === NULL || $subnetMask === "" || $subnetMask < 0 || $subnetMask > 128 ) {2361 return false;2362 }2363 // Convert addresses to binary form2364 $subnet = inet_pton( $subnetAddress );2365 $addr = inet_pton( $address );2366 // Ensure that both addresses were converted correctly2367 if ( $subnet === false || $addr === false ) {2368 return false;2369 }2370 // Convert the subnet mask to a binary string2371 $binMask = self::IPv6MaskToByteArray( $subnetMask );2372 // Perform the bitwise AND operation and compare2373 return ($addr & $binMask) === $subnet;2374 }2375 2376 /**2377 * inspired by: http://stackoverflow.com/questions/594112/matching-an-ip-to-a-cidr-mask-in-php52378 *2379 * @author Unknown2380 * @since v0.0.12381 * @version v1.0.0 Tuesday, May 14th, 2024.2382 * @access private static2383 * @param mixed $address2384 * @param mixed $subnetAddress2385 * @param mixed $subnetMask2386 * @return mixed2387 */2388 private static function IPv4Match( $address, $subnetAddress, $subnetMask ) {2389 if ( !filter_var( $subnetAddress, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) || $subnetMask === NULL || $subnetMask === "" || $subnetMask < 0 || $subnetMask > 32 ) {2390 return false;2391 }2392 $address = ip2long( $address );2393 $subnetAddress = ip2long( $subnetAddress );2394 $mask = -1 << 32 - $subnetMask;2395 $subnetAddress &= $mask;2396 # nb: in case the supplied subnet wasn't correctly aligned2397 return ($address & $mask) == $subnetAddress;2398 }2399 2400 /**2401 2167 * Checks if an IP is in array 2402 2168 * … … 2465 2231 } 2466 2232 // Use proper CIDR-aware whitelist checking 2467 if ( self::is_whitelisted( $current_user_ip, $local_whitelist ) ) {2233 if ( Wf_sn_cf_Utils::is_whitelisted( $current_user_ip, $local_whitelist ) ) { 2468 2234 return false; 2469 2235 } … … 2475 2241 return 'IP is in local blacklist.'; 2476 2242 } 2477 if ( self::ipCIDRMatch( $ip, $bl ) ) {2243 if ( Wf_sn_cf_Utils::ipCIDRMatch( $ip, $bl ) ) { 2478 2244 return 'IP is in local blacklist mask - ' . $bl; 2479 2245 } … … 2490 2256 } 2491 2257 $banned_ips = self::get_banned_ips(); 2492 if ( is_array( self::$options['whitelist'] ) && self::is_whitelisted( $current_user_ip, self::$options['whitelist'] ) ) {2258 if ( is_array( self::$options['whitelist'] ) && Wf_sn_cf_Utils::is_whitelisted( $current_user_ip, self::$options['whitelist'] ) ) { 2493 2259 return false; 2494 2260 } elseif ( array_key_exists( $current_user_ip, $banned_ips ) ) { … … 2513 2279 // trim apostrophes 2514 2280 $subnet = trim( $subnet, "'" ); 2515 if ( self::ipCIDRMatch( $current_user_ip, $subnet ) ) {2281 if ( Wf_sn_cf_Utils::ipCIDRMatch( $current_user_ip, $subnet ) ) { 2516 2282 return 'IP in cloud blacklist range.'; 2517 2283 } … … 2519 2285 } 2520 2286 } 2287 } 2288 // Allow known social/link-preview crawlers through Block IP Network (e.g. Facebook, LinkedIn). 2289 if ( Wf_sn_cf_Utils::is_social_crawler_ua() ) { 2290 return false; 2521 2291 } 2522 2292 // Checks if included in SecNin Global Block network … … 2528 2298 } 2529 2299 return false; 2530 }2531 2532 /**2533 * Checks if an IP is whitelisted2534 *2535 * @author Lars Koudal2536 * @since v0.0.12537 * @version v1.0.0 Monday, December 21st, 2020.2538 * @access public static2539 * @param mixed $ip2540 * @param mixed $whitelist2541 * @return boolean2542 */2543 public static function is_whitelisted( $ip, $whitelist ) {2544 foreach ( $whitelist as $key => $wip ) {2545 if ( strpos( $wip, '/' ) !== false ) {2546 if ( self::ipCIDRMatch( $ip, $wip ) ) {2547 return true;2548 }2549 } else {2550 if ( $ip === $wip ) {2551 return true;2552 }2553 }2554 }2555 return false;2556 }2557 2558 /**2559 * Update cloud firewall blocked IPs and update server IP to whitelist2560 *2561 * @author Lars Koudal2562 * @since v0.0.12563 * @version v1.0.0 Monday, December 21st, 2020.2564 * @access public static2565 * @return void2566 */2567 public static function update_cloud_ips() {2568 2300 } 2569 2301 … … 2651 2383 return; 2652 2384 } 2653 $msg = '<p class="message">' . self::$options['login_msg'] . '</p>'; 2654 echo $msg; 2385 echo '<p class="message">' . esc_html( self::$options['login_msg'] ) . '</p>'; 2655 2386 } 2656 2387 … … 3335 3066 3336 3067 /** 3337 * Return bad IPs from the central API3338 *3339 * @author Lars Koudal3340 * @since v0.0.13341 * @version v1.0.0 Thursday, February 11th, 2021.3342 * @access private static3343 * @return boolean3344 */3345 private static function get_network_listips() {3346 // Check if the feature is enabled3347 if ( !self::$options['globalbannetwork'] ) {3348 wf_sn_el_modules::log_event( 'security_ninja', 'get_network_listips', 'Global network feature is disabled' );3349 return false;3350 }3351 $license_id = secnin_fs()->_get_license()->id;3352 $install_id = secnin_fs()->get_site()->id;3353 $site_private_key = secnin_fs()->get_site()->secret_key;3354 $nonce = date( 'Y-m-d' );3355 $pk_hash = hash( 'sha512', $site_private_key . '|' . $nonce );3356 $authentication_string = base64_encode( $pk_hash . '|' . $nonce );3357 $url = self::$central_api_url . 'listips/';3358 $response = wp_remote_get(3359 // Cannot use wp_safe_remote_get because we need to set the header3360 $url,3361 array(3362 'headers' => array(3363 'Authorization' => $authentication_string,3364 ),3365 'body' => array(3366 'install_id' => $install_id,3367 'license_id' => $license_id,3368 ),3369 'blocking' => true,3370 'timeout' => 15,3371 'sslverify' => false,3372 )3373 );3374 if ( is_wp_error( $response ) ) {3375 $error_message = $response->get_error_message();3376 wf_sn_el_modules::log_event( 'security_ninja', 'update_blocked_ips', 'Error getting IPs from network: "' . esc_html( $error_message ) . '"' );3377 return false;3378 } else {3379 $body = wp_remote_retrieve_body( $response );3380 $decoded = json_decode( $body );3381 $newips = 0;3382 if ( is_object( $decoded ) && isset( $decoded->ips ) ) {3383 $newips = count( $decoded->ips );3384 wf_sn_el_modules::log_event(3385 'security_ninja',3386 'update_blocked_ips',3387 sprintf( esc_html__( 'Added/updated %1$s IPs from the blocklist.', 'security-ninja' ), $newips ),3388 ''3389 );3390 }3391 return $body;3392 }3393 return false;3394 }3395 3396 /**3397 3068 * display results 3398 3069 * -
security-ninja/trunk/modules/cloud-firewall/tabs/login-protection.php
r3446591 r3461467 256 256 } 257 257 ?> 258 <input type="text" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_new_login_url'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[new_login_url]'; ?>" value="<?php echo $options['new_login_url']; ?>" placeholder="<?php echo esc_attr($default_login_placeholder); ?>" class="regular-text">258 <input type="text" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_new_login_url'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[new_login_url]'; ?>" value="<?php echo esc_attr( $options['new_login_url'] ); ?>" placeholder="<?php echo esc_attr($default_login_placeholder); ?>" class="regular-text"> 259 259 <p><?php esc_html_e('Preview', 'security-ninja'); ?>: <code><?php echo esc_url(trailingslashit(site_url($options['new_login_url']))); ?></code></p> 260 260 </td> … … 297 297 <tr> 298 298 <td colspan="2" class="fullwidth"> 299 <input type="number" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_grace_period'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_grace_period]'; ?>" value="<?php echo $options['2fa_grace_period']; ?>" class="regular-text" data-1p-ignore>299 <input type="number" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_grace_period'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_grace_period]'; ?>" value="<?php echo esc_attr( $options['2fa_grace_period'] ); ?>" class="regular-text" data-1p-ignore> 300 300 301 301 <input type="hidden" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_enabled_timestamp'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_enabled_timestamp]'; ?>"> … … 346 346 <li> 347 347 <label> 348 <input type="checkbox" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_required_roles'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_required_roles][]'; ?>" value="<?php echo esc_attr($role); ?>" <?php echo $checked; ?>>348 <input type="checkbox" id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_required_roles'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_required_roles][]'; ?>" value="<?php echo esc_attr($role); ?>" <?php echo esc_attr( $checked ); ?>> 349 349 <?php echo esc_html($name); ?> 350 350 </label> … … 399 399 <td colspan="2" class="fullwidth"> 400 400 401 <textarea id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_intro'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_intro]'; ?>" rows="3"><?php echo $options['2fa_intro']; ?></textarea>401 <textarea id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_intro'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_intro]'; ?>" rows="3"><?php echo esc_textarea( $options['2fa_intro'] ); ?></textarea> 402 402 </td> 403 403 </tr> … … 413 413 <tr> 414 414 <td colspan="2" class="fullwidth"> 415 <textarea id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_enter_code'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_enter_code]'; ?>" rows="3"><?php echo $options['2fa_enter_code']; ?></textarea>415 <textarea id="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '_2fa_enter_code'; ?>" name="<?php echo esc_attr(WF_SN_CF_OPTIONS_KEY) . '[2fa_enter_code]'; ?>" rows="3"><?php echo esc_textarea( $options['2fa_enter_code'] ); ?></textarea> 416 416 </td> 417 417 </tr> -
security-ninja/trunk/modules/cloud-firewall/tabs/settings.php
r3446591 r3461467 201 201 $selected = in_array($key, $blocked_countries, true) ? ' selected="selected" ' : ''; 202 202 ?> 203 <option value="<?php echo $key; ?>" <?php echo $selected; ?>><?php echo $gc . ' (' . $key . ')'; ?></option>203 <option value="<?php echo esc_attr( $key ); ?>" <?php echo esc_attr( $selected ); ?>><?php echo esc_html( $gc . ' (' . $key . ')' ); ?></option> 204 204 <?php 205 205 } -
security-ninja/trunk/modules/core-scanner/core-scanner.php
r3446591 r3461467 71 71 add_action( 'wp_ajax_sn_core_restore_file_do', array(__NAMESPACE__ . '\\Wf_Sn_Cs', 'restore_file') ); 72 72 add_action( 'wp_ajax_sn_core_run_scan', array(__NAMESPACE__ . '\\Wf_Sn_Cs', 'do_action_core_run_scan') ); 73 add_action( 'wp_ajax_sn_core_get_cached_results', array(__NAMESPACE__ . '\\Wf_Sn_Cs', 'get_cached_results') ); 73 74 add_action( 'wp_ajax_sn_core_delete_all_unknowns', array(__NAMESPACE__ . '\\Wf_Sn_Cs', 'do_action_delete_all_unknowns') ); 74 75 } … … 168 169 wp_register_script( 169 170 'sn-core-js', 170 $plugin_url . 'js/wf-sn-core -min.js',171 $plugin_url . 'js/wf-sn-core.js', 171 172 array('jquery'), 172 173 \WPSecurityNinja\Plugin\Utils::get_plugin_version(), … … 186 187 'ajax_error' => __( 'An error occurred during the AJAX request.', 'security-ninja' ), 187 188 'please_wait' => __( 'Please wait.', 'security-ninja' ), 189 'no_scan_yet' => __( 'No scan made yet. Click "Scan Core Files" to run a scan.', 'security-ninja' ), 190 'loading' => __( 'Loading...', 'security-ninja' ), 188 191 ), 189 192 ); … … 192 195 wp_enqueue_style( 193 196 'sn-core-css', 194 $plugin_url . 'css/wf-sn-core -min.css',197 $plugin_url . 'css/wf-sn-core.css', 195 198 array(), 196 199 wf_sn::$version … … 246 249 } 247 250 die( wp_json_encode( $out ) ); 251 } 252 253 /** 254 * AJAX: Return cached Core Scanner results only (no scan). 255 * Used when the Core Scanner tab is focused to lazy-load last results. 256 * 257 * @return void 258 */ 259 public static function get_cached_results() { 260 check_ajax_referer( 'wf_sn_cs' ); 261 if ( !current_user_can( 'manage_options' ) ) { 262 wp_send_json_error( array( 263 'message' => __( 'You do not have sufficient permissions.', 'security-ninja' ), 264 ) ); 265 } 266 $results = get_option( 'wf_sn_cs_results', array() ); 267 if ( !is_array( $results ) || empty( $results['last_run'] ) || empty( $results['out'] ) ) { 268 wp_send_json_success( array( 269 'no_results' => true, 270 'message' => __( 'No scan made yet. Click "Scan Core Files" to run a scan.', 'security-ninja' ), 271 ) ); 272 } 273 $next_scan_ts = wp_next_scheduled( 'secnin_run_core_scanner' ); 274 if ( $next_scan_ts ) { 275 $time_until = human_time_diff( time(), $next_scan_ts ); 276 $next_scan = sprintf( 277 /* translators: %1$s is the date/time of next scan, %2$s is the time until next scan */ 278 esc_html__( '%1$s (%2$s from now)', 'security-ninja' ), 279 date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $next_scan_ts ), 280 $time_until 281 ); 282 } else { 283 $next_scan = __( 'No core scan currently scheduled.', 'security-ninja' ); 284 } 285 wp_send_json_success( array( 286 'out' => $results['out'], 287 'last_scan' => ( isset( $results['last_scan'] ) ? $results['last_scan'] : '' ), 288 'files_checked' => ( isset( $results['files_checked'] ) ? $results['files_checked'] : '' ), 289 'wp_version' => ( isset( $results['wp_version'] ) ? $results['wp_version'] : '' ), 290 'next_scan' => $next_scan, 291 ) ); 248 292 } 249 293 -
security-ninja/trunk/modules/core-scanner/js/wf-sn-core.js
r3333048 r3461467 1 1 /* globals jQuery:true, ajaxurl:true, wf_sn_cs:true */ 2 /* 3 * Security Ninja - Scheduled Scanner add-on 4 * (c) 2014. Web factory Ltd 5 * 2019. Larsik Corp 6 */ 7 8 jQuery( document ).ready( 9 function ($) { 10 11 // get the updates 12 get_latest_update(); 2 /** 3 * Security Ninja - Core Scanner 4 * (c) 2014 Web factory Ltd 5 * 2019 Larsik Corp 6 */ 7 8 jQuery( document ).ready( function( $ ) { 9 10 var coreScannerResultsLoading = false; 11 12 function loadCachedResults() { 13 if ( window.location.hash !== '#sn_core' ) { 14 return; 15 } 16 if ( ! $( '#wf-sn-core-scanner-response' ).length ) { 17 return; 18 } 19 if ( coreScannerResultsLoading ) { 20 return; 21 } 22 coreScannerResultsLoading = true; 23 $( '#wf-sn-core-scanner-response' ).html( '<p class="description"><span class="spinner is-active"></span> ' + ( wf_sn_cs.strings.loading || 'Loading…' ) + '</p>' ).show(); 24 $.post( 25 ajaxurl, 26 { 27 action: 'sn_core_get_cached_results', 28 _ajax_nonce: wf_sn_cs.nonce 29 }, 30 function (response) { 31 coreScannerResultsLoading = false; 32 var $container = $( '#wf-sn-core-scanner-response' ); 33 if ( ! $container.length ) { 34 return; 35 } 36 if ( response.success && response.data ) { 37 if ( response.data.no_results ) { 38 $container.html( '<p class="description">' + ( response.data.message || wf_sn_cs.strings.no_scan_yet ) + '</p>' ); 39 return; 40 } 41 if ( response.data.out ) { 42 $container.empty().append( response.data.out ).slideDown(); 43 } 44 if ( response.data.last_scan ) { 45 $( '#wf-sn-core-scan-details #last_scan' ).html( response.data.last_scan ).slideDown(); 46 } 47 if ( response.data.files_checked ) { 48 $( '#wf-sn-core-scan-details #files_checked' ).html( response.data.files_checked ).slideDown(); 49 } 50 if ( response.data.wp_version ) { 51 $( '#wf-sn-core-scan-details #wp_version' ).html( response.data.wp_version ).slideDown(); 52 } 53 if ( response.data.next_scan ) { 54 $( '#wf-sn-core-scan-details #next_scan' ).html( response.data.next_scan ).slideDown(); 55 } 56 } else { 57 $container.html( '<p class="description">' + ( wf_sn_cs.strings.ajax_error || 'An error occurred.' ) + '</p>' ); 58 } 59 }, 60 'json' 61 ).fail( function () { 62 coreScannerResultsLoading = false; 63 $( '#wf-sn-core-scanner-response' ).html( '<p class="description">' + ( wf_sn_cs.strings.ajax_error || 'An error occurred.' ) + '</p>' ); 64 } ); 65 } 66 67 function maybeLoadCoreScannerResults() { 68 if ( window.location.hash === '#sn_core' ) { 69 loadCachedResults(); 70 } 71 } 72 73 $( window ).on( 'hashchange', maybeLoadCoreScannerResults ); 74 $( document ).on( 'click', '#wf-sn-tabs a[href="#sn_core"]', maybeLoadCoreScannerResults ); 75 maybeLoadCoreScannerResults(); 13 76 14 77 $( 'button.sn-show-source' ).on( … … 208 271 } 209 272 ); 210 } 211 ); 273 } ); -
security-ninja/trunk/modules/events-logger/events-logger.php
r3451093 r3461467 673 673 wp_register_script( 674 674 'sn-el', 675 $plugin_url . 'js/wf-sn-el -min.js',675 $plugin_url . 'js/wf-sn-el.js', 676 676 array('jquery', 'sn-el-datatables'), 677 677 wf_sn::$version, -
security-ninja/trunk/modules/events-logger/js/wf-sn-el.js
r3446591 r3461467 1 /* globals jQuery:true, ajaxurl:true, wf_sn_el:true, datatables_object:true */2 /* 3 * Security Ninja - Events Logger add-on1 /* globals jQuery:true, ajaxurl:true, wf_sn_el:true, datatables_object:true, eventstable:true */ 2 /** 3 * Security Ninja - Events Logger 4 4 * (c) Web factory Ltd, 2015 5 * Larsik Corp 2020 - 5 * Larsik Corp 2020 - 6 6 */ 7 7 8 jQuery(document).ready(function ($) { 9 // Tab switching functionality 10 $('#wf-sn-el-subtabs a').on('click', function(e) { 11 e.preventDefault(); 12 13 // Remove active class from all tabs and content 14 $('#wf-sn-el-subtabs a').removeClass('nav-tab-active'); 15 $('.wf-sn-el-subtab').hide(); 16 17 // Add active class to clicked tab 18 $(this).addClass('nav-tab-active'); 19 20 // Show corresponding content 21 var target = $(this).attr('href'); 22 $(target).show(); 23 }); 8 var eventstable; 9 var eventsTableInitialized = false; 24 10 11 function isEventsTabFocused() { 12 if ( ! jQuery( '#sn-el-datatable' ).length ) { 13 return false; 14 } 15 if ( ! jQuery( '#wf-sn-tabs' ).length ) { 16 return true; 17 } 18 return window.location.hash === '#sn_logger'; 19 } 25 20 21 function initEventsDataTable( forceFocus ) { 22 if ( eventsTableInitialized ) { 23 return; 24 } 25 if ( ! jQuery( '#sn-el-datatable' ).length ) { 26 return; 27 } 28 if ( ! forceFocus && ! isEventsTabFocused() ) { 29 return; 30 } 26 31 27 // Initialize DataTable 28 eventstable = jQuery('#sn-el-datatable').DataTable({ 29 "processing": true, 30 "serverSide": true, 31 "pageLength": 25, 32 "ajax": { 33 "url": ajaxurl, 34 "type": "POST", 35 "data": function(d) { 36 d.action = "get_events_data"; 37 d.nonce = datatables_object.nonce; 38 d.action_filter = jQuery('#sn-el-action-filter').val(); 39 }, 40 "error": function(xhr, error, code) { 41 var errorMsg = "<strong>Error loading data:</strong><br>" + 42 "Status: " + xhr.status + " (" + xhr.statusText + ")<br>" + 43 "Error: " + error + "<br>" + 44 "Code: " + code + "<br>" + 45 "Response: " + xhr.responseText; 46 jQuery('#datatable-error').html(errorMsg).show(); 47 } 48 }, 49 "columns": [ 50 { "data": "timestamp", "title": "Time" }, 51 { "data": "action", "title": "Action" }, 52 { "data": "user_id", "title": "User" }, 53 { "data": "description", "title": "Event" }, 54 { "data": "details", "title": "Details", "orderable": false } 55 ], 56 "order": [[ 0, "desc" ]], 57 "columnDefs": [{ 58 "targets": 4, 59 "data": null, 60 "defaultContent": "<button>Detail</button>" 61 }] 62 }); 32 eventsTableInitialized = true; 33 eventstable = jQuery( '#sn-el-datatable' ).DataTable( { 34 processing: true, 35 language: { 36 processing: 'Loading…' 37 }, 38 serverSide: true, 39 pageLength: 25, 40 ajax: { 41 url: ajaxurl, 42 type: 'POST', 43 data: function( d ) { 44 d.action = 'get_events_data'; 45 d.nonce = datatables_object.nonce; 46 d.action_filter = jQuery( '#sn-el-action-filter' ).val(); 47 }, 48 error: function( xhr, error, code ) { 49 var errorMsg = '<strong>Error loading data:</strong><br>Status: ' + xhr.status + ' (' + xhr.statusText + ')<br>Error: ' + error + '<br>Code: ' + code + '<br>Response: ' + xhr.responseText; 50 jQuery( '#datatable-error' ).html( errorMsg ).show(); 51 } 52 }, 53 columns: [ 54 { data: 'timestamp', title: 'Time' }, 55 { data: 'action', title: 'Action' }, 56 { data: 'user_id', title: 'User' }, 57 { data: 'description', title: 'Event' }, 58 { data: 'details', title: 'Details', orderable: false } 59 ], 60 order: [[ 0, 'desc' ]], 61 columnDefs: [{ 62 targets: 4, 63 data: null, 64 defaultContent: '<button>Detail</button>' 65 }] 66 } ); 63 67 64 // Load available actions for the filter dropdown 65 function loadActionFilter() { 66 jQuery.post(ajaxurl, { 67 action: 'get_events_actions', 68 nonce: datatables_object.nonce 69 }, function(response) { 70 if (response.success && response.data.actions) { 71 var select = jQuery('#sn-el-action-filter'); 72 select.empty(); // Clear all options including the loading one 73 74 // Add "All Actions" option first 75 select.append('<option value="">All Actions</option>'); 76 77 // Add all the action options 78 response.data.actions.forEach(function(action) { 79 select.append('<option value="' + action + '">' + action + '</option>'); 80 }); 81 } 82 }); 83 } 68 function loadActionFilter() { 69 jQuery.post( ajaxurl, { 70 action: 'get_events_actions', 71 nonce: datatables_object.nonce 72 }, function( response ) { 73 if ( response.success && response.data.actions ) { 74 var select = jQuery( '#sn-el-action-filter' ); 75 select.empty(); 76 select.append( '<option value="">All Actions</option>' ); 77 response.data.actions.forEach( function( action ) { 78 select.append( '<option value="' + action + '">' + action + '</option>' ); 79 } ); 80 } 81 } ); 82 } 83 loadActionFilter(); 84 84 85 // Load actions on page load 86 loadActionFilter(); 85 jQuery( '#sn-el-action-filter' ).on( 'change', function() { 86 eventstable.ajax.reload(); 87 } ); 87 88 88 // Handle action filter change 89 jQuery('#sn-el-action-filter').on('change', function() { 90 eventstable.ajax.reload();91 });89 jQuery( '#sn-el-reset-filter' ).on( 'click', function() { 90 jQuery( '#sn-el-action-filter' ).val( '' ); 91 eventstable.ajax.reload(); 92 } ); 92 93 93 // Handle reset filter button 94 jQuery('#sn-el-reset-filter').on('click', function() { 95 jQuery('#sn-el-action-filter').val(''); 96 eventstable.ajax.reload(); 97 }); 94 jQuery( '#sn-el-datatable tbody' ).on( 'click', 'button', function( e ) { 95 e.preventDefault(); 96 var tr = jQuery( this ).closest( 'tr' ); 97 var row = eventstable.row( tr ); 98 if ( row.child.isShown() ) { 99 row.child.hide(); 100 tr.removeClass( 'shown' ); 101 jQuery( this ).removeClass( 'open' ); 102 } else { 103 var details = tr.find( '.details-content' ).html(); 104 row.child( details ).show(); 105 tr.addClass( 'shown' ); 106 jQuery( this ).addClass( 'open' ); 107 } 108 } ); 109 } 98 110 99 // Child rows in the event log table 100 // Expand details if available 101 $('#sn-el-datatable tbody').on('click', 'button', function (e) { 102 e.preventDefault(); 103 var tr = $(this).closest('tr'); 104 var row = eventstable.row(tr); 105 if (row.child.isShown()) { 106 // This row is already open - close it 107 row.child.hide(); 108 tr.removeClass('shown'); 109 $(this).removeClass('open'); 110 } else { 111 // Open this row 112 var details = tr.find('.details-content').html(); 113 row.child(details).show(); 114 tr.addClass('shown'); 115 $(this).addClass('open'); 116 } 117 }); 111 jQuery( document ).ready( function( $ ) { 112 // Tab switching (Events Logger subtabs). 113 $( '#wf-sn-el-subtabs a' ).on( 'click', function( e ) { 114 e.preventDefault(); 115 $( '#wf-sn-el-subtabs a' ).removeClass( 'nav-tab-active' ); 116 $( '.wf-sn-el-subtab' ).hide(); 117 $( this ).addClass( 'nav-tab-active' ); 118 var target = $( this ).attr( 'href' ); 119 $( target ).show(); 120 } ); 118 121 119 // truncate log table 120 $('#sn-el-truncate').on('click', function (e) { 121 e.preventDefault(); 122 function maybeInitEventsDataTable() { 123 if ( window.location.hash !== '#sn_logger' ) { 124 return; 125 } 126 initEventsDataTable( true ); 127 } 122 128 123 var answer = confirm("Are you sure you want to delete all log entries?"); // @i8n 124 if (answer) { 125 var data = { 126 action: 'sn_el_truncate_log', 127 _ajax_nonce: wf_sn_el.nonce 128 }; 129 $.post(ajaxurl, data, function (response) { 130 if (!response) { 131 alert('Bad AJAX response. Please reload the page.'); // @i8n 132 } else { 133 alert('All log entries have been deleted.'); // @i8n 134 window.location.reload(); 135 } 136 }); 137 } 138 }); 139 }); 129 jQuery( window ).on( 'hashchange', maybeInitEventsDataTable ); 130 jQuery( document ).on( 'click', '#wf-sn-tabs a[href="#sn_logger"]', function() { 131 maybeInitEventsDataTable(); 132 } ); 133 maybeInitEventsDataTable(); 134 135 jQuery( '#sn-el-truncate' ).on( 'click', function( e ) { 136 e.preventDefault(); 137 var answer = confirm( 'Are you sure you want to delete all log entries?' ); 138 if ( answer ) { 139 var data = { 140 action: 'sn_el_truncate_log', 141 _ajax_nonce: wf_sn_el.nonce 142 }; 143 $.post( ajaxurl, data, function( response ) { 144 if ( ! response ) { 145 alert( 'Bad AJAX response. Please reload the page.' ); 146 } else { 147 alert( 'All log entries have been deleted.' ); 148 window.location.reload(); 149 } 150 } ); 151 } 152 } ); 153 } ); -
security-ninja/trunk/modules/overview/class-wf-sn-overview-tab.php
r3446591 r3461467 36 36 ?></div> 37 37 <div class="secscore-value"><?php 38 echo $scores['score'];38 echo absint( $scores['score'] ); 39 39 ?>%</div> 40 40 </div> 41 41 <div id="secscorerowrow"> 42 42 <div class="inner" style="width:<?php 43 echo $scores['score'];43 echo esc_attr( (string) absint( $scores['score'] ) ); 44 44 ?>%;"></div> 45 45 </div> 46 46 <div id="secscore-details"> 47 47 <div class="secscore-passed"><span class="det-count"><?php 48 echo $scores['good'];48 echo absint( $scores['good'] ); 49 49 ?></span><span class="det"><?php 50 50 echo esc_html__( 'Tests passed', 'security-ninja' ); 51 51 ?></span></div> 52 52 <div class="secscore-warning"><span class="det-count"><?php 53 echo $scores['warning'];53 echo absint( $scores['warning'] ); 54 54 ?></span><span class="det"><?php 55 55 echo esc_html__( 'Warnings', 'security-ninja' ); 56 56 ?></span></div> 57 57 <div class="secscore-failed"><span class="det-count"><?php 58 echo $scores['bad'];58 echo absint( $scores['bad'] ); 59 59 ?></span><span class="det"><?php 60 60 echo esc_html__( 'Tests failed', 'security-ninja' ); … … 207 207 ); 208 208 $actions_to_track = $free_actions_to_track; 209 $show_pro_ad = true;210 209 // Show firewall summary for all users (free and premium) 211 210 ?> … … 232 231 $results = $wpdb->get_results( $query, ARRAY_A ); 233 232 if ( !empty( $results ) ) { 234 // If we have results, don't show the upgrade ad235 $show_pro_ad = false;236 233 echo '<div class="action-counts">'; 237 234 echo '<h4>' . esc_html__( 'Action Counts', 'security-ninja' ) . '</h4>'; … … 289 286 </div> 290 287 <?php 288 $show_pro_ad = true; 291 289 if ( $show_pro_ad ) { 292 290 ?> … … 344 342 echo esc_html__( 'Put your own agency branding on the plugin.', 'security-ninja' ); 345 343 ?></div> 346 </div>344 347 345 <?php 348 346 $url = 'https://wpsecurityninja.com/pricing/'; … … 366 364 ), $url ); 367 365 ?> 366 367 368 </div> 369 <div> 368 370 <p style="margin-top: 10px;text-align: center;"> 369 371 <a href="<?php 370 372 echo esc_url( $pricing_url ); 371 ?>" class="wf-sn-button button button-secondary" target="_blank"><?php373 ?>" class="wf-sn-button button" target="_blank"><?php 372 374 echo esc_html__( 'Explore WP Security Ninja Pro now!', 'security-ninja' ); 373 375 ?></a><br><small>or try our <a href="<?php … … 375 377 ?>" class="" target="_blank">14 days FREE trial »</a></small> 376 378 </p> 377 378 379 </div> 379 380 </div> -
security-ninja/trunk/modules/vulnerabilities/class-wf-sn-vu.php
r3457609 r3461467 491 491 $content_length = ( isset( $headers['content-length'] ) ? (int) $headers['content-length'] : strlen( $body ) ); 492 492 $result_info['bytes_downloaded'] = $content_length; 493 // Extract ETag and Last-Modified from response headers.494 // Sanitize header values before storing.495 493 $received_etag = ( isset( $headers['etag'] ) ? sanitize_text_field( $headers['etag'] ) : '' ); 496 494 $received_last_modified = ( isset( $headers['last-modified'] ) ? sanitize_text_field( $headers['last-modified'] ) : '' ); 497 // Robust gzip detection: check Content-Encoding header and magic bytes.498 495 $content_encoding = ( isset( $headers['content-encoding'] ) ? strtolower( $headers['content-encoding'] ) : '' ); 499 496 $is_gzipped = false; -
security-ninja/trunk/readme.txt
r3458434 r3461467 7 7 Requires at least: 4.7 8 8 Tested up to: 6.9.1 9 Stable tag: 5.26 69 Stable tag: 5.267 10 10 Requires PHP: 7.4 11 11 … … 333 333 == Changelog == 334 334 335 = 5.267 = 336 * 2026-02-13 337 * IMPROVED: Litespeed servers - Added documentation and in-app notices for all security headers (CSP, X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security, Referrer-Policy, Permissions-Policy). LiteSpeed users can add headers directly to .htaccess using the examples in each test description. Thank you Tom for the feedback. 338 * FIX: Events Logger, Overview, and Visitor Log – Country flags now correctly show the event/visitor IP's country instead of the logged-in admin's IP when the site is behind Cloudflare or similar proxies. 339 * Improved: Core Scanner - Interface loads faster with tabs lazy-loading content in different tabs. 340 * IMPROVED: Firewall – When "Block IP Network" is enabled, known social and link-preview crawlers (e.g. Facebook, LinkedIn, Twitter) are no longer blocked by default. Link previews when you share your site on social networks now work without having to whitelist IPs. 341 335 342 = 5.266 = 336 343 * 2026-02-10 … … 461 468 462 469 == Upgrade Notice == 463 5.2 58470 5.267 464 471 Recommended update. -
security-ninja/trunk/security-ninja.php
r3458434 r3461467 6 6 Description: Check your site for security vulnerabilities and get precise suggestions for corrective actions on passwords, user accounts, file permissions, database security, version hiding, plugins, themes, security headers and other security aspects. 7 7 Author: WP Security Ninja 8 Version: 5.26 68 Version: 5.267 9 9 Author URI: https://wpsecurityninja.com/ 10 10 License: GPLv3 … … 114 114 // File viewer 115 115 include_once WF_SN_PLUGIN_DIR . 'modules/file-viewer/class-secnin-file-viewer.php'; 116 include_once WF_SN_PLUGIN_DIR . 'modules/cloud-firewall/class-wf-sn-cf-utils.php'; 116 117 include_once WF_SN_PLUGIN_DIR . 'modules/cloud-firewall/cloud-firewall.php'; 117 118 include_once WF_SN_PLUGIN_DIR . 'includes/class-wf-sn-utils.php'; … … 252 253 $resultssofar = get_option( 'security_tests_results', array() ); 253 254 $set_time_limit = set_time_limit( 200 ); 254 $last_test_run = ( isset( $resultssofar['last_test_run'] ) ? $resultssofar['last_test_run'] : '' );255 255 $resultssofar['last_run'] = time(); 256 256 foreach ( $security_tests as $test_name => $test ) { … … 713 713 ); 714 714 } 715 // REST API submenu is handled by Wf_Sn_Rest_Api_Admin class716 715 } 717 716 -
security-ninja/trunk/sn-tests-description.php
r3391792 r3461467 46 46 47 47 <p><?php esc_html_e( 'You can also add this to your .htaccess file', 'security-ninja' ); ?></p> 48 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 48 49 <pre>#BEGIN - Forces only HTTPS 49 50 <IfModule mod_headers.c> … … 70 71 71 72 <p><?php esc_html_e( 'This example forces a browser to only load JavaScript .js files from your own website. Warning: Inline code will stop working. Add this to your .htaccess file', 'security-ninja' ); ?></p> 73 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If CSP headers are not appearing in your response, add the policy directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 72 74 <pre>#BEGIN - Only allow browsers to load .js files from this website 73 75 # Use Content-Security-Policy-Report-Only to test settings before using Content-Security-Policy. … … 105 107 106 108 <p><?php esc_html_e( 'You can also add this to your .htaccess file', 'security-ninja' ); ?></p> 109 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 107 110 <pre>#BEGIN - Prevent page-framing and click-jacking 108 111 <IfModule mod_headers.c> … … 139 142 <pre>header('X-Content-Type-Options: nosniff');</pre> 140 143 <p><?php esc_html_e( 'You can also add this to your .htaccess file', 'security-ninja' ); ?></p> 144 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 141 145 <pre>#BEGIN - Prevent code in unexpected files 142 146 <IfModule mod_headers.c> … … 164 168 <p><?php esc_html_e( 'NOTE: This example disables everything, so if you have website that uses some of the features please check the link to Mozilla on more details on how to finetune.', 'security-ninja' ); ?></p> 165 169 <p><?php esc_html_e( 'You can also add this to your .htaccess file', 'security-ninja' ); ?></p> 170 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 166 171 167 172 <pre> … … 195 200 <pre>header('Referrer-Policy: same-origin');</pre> 196 201 <p><?php esc_html_e( 'You can also add this to your .htaccess file', 'security-ninja' ); ?></p> 202 <p><strong><?php esc_html_e( 'LiteSpeed servers:', 'security-ninja' ); ?></strong> <?php esc_html_e( 'The PHP header interface may not work correctly on LiteSpeed. If this header is not appearing in your response, add it directly to your .htaccess file using the example below.', 'security-ninja' ); ?></p> 197 203 198 204 <pre> -
security-ninja/trunk/vendor/composer/installed.php
r3458434 r3461467 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 1dae68d4c699222b44a1a04eafae31852708e311',6 'reference' => 'e1e847a9ec5a9a5db9b8bb6deeabff88f6a7d58c', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 149 149 'pretty_version' => 'dev-master', 150 150 'version' => 'dev-master', 151 'reference' => ' 1dae68d4c699222b44a1a04eafae31852708e311',151 'reference' => 'e1e847a9ec5a9a5db9b8bb6deeabff88f6a7d58c', 152 152 'type' => 'library', 153 153 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.