Plugin Directory

Changeset 3338863


Ignore:
Timestamp:
08/04/2025 10:03:16 AM (8 months ago)
Author:
markwolters
Message:

9.4.3 version

Location:
really-simple-ssl
Files:
784 added
3 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • really-simple-ssl/trunk/class-admin.php

    r3327330 r3338863  
    23432343                ),
    23442344            ),
    2345             'ajax_fallback' => array(
    2346                 'condition'  => array(
    2347                         'wp_option_rsssl_ajax_fallback_active',
    2348                 ),
    2349                 'callback' => '_true_',
    2350                 'output' => array(
    2351                     'true' => array(
    2352                         'msg' => __( "Please check if your REST API is loading correctly. Your site currently is using the slower Ajax fallback method to load the settings.", 'really-simple-ssl' ),
    2353                         'icon' => 'warning',
    2354                         'admin_notice' => false,
    2355                         'url' => 'instructions/how-to-debug-a-blank-settings-page-in-really-simple-ssl',
    2356                         'dismissible' => true,
    2357                         'plusone' => true,
    2358                     ),
    2359                 ),
    2360             ),
    23612345            'email_verification_not_verified' => array(
    23622346                'callback' => 'RSSSL()->mailer_admin->email_verification_completed',
     
    23812365                ),
    23822366            ),
    2383             'plain_permalinks' => array(
    2384                 'condition'  => array(
    2385                     'rsssl_plain_permalinks_enabled',
    2386                 ),
    2387                 'callback' => '_true_',
    2388                 'output' => array(
    2389                     'true' => array(
    2390                         'msg' => __( "Your site uses plain permalinks, which causes issues with the REST API. Please use a different permalinks configuration.", 'really-simple-ssl' ),
    2391                         'icon' => 'open',
    2392                         'admin_notice' => false,
    2393                         'dismissible' => true,
    2394                         'plusone' => false,
    2395                         'url' => admin_url('options-permalink.php'),
    2396                     ),
    2397                 ),
    2398             ),
    23992367            'upgraded_to_nine' => array(
    24002368                'condition' => array(
  • really-simple-ssl/trunk/languages/really-simple-ssl.pot

    r3327330 r3338863  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Really Simple Security Pro 9.4.2\n"
     5"Project-Id-Version: Really Simple Security Pro 9.4.3\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/really-simple-ssl-pro\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-07-03T11:03:15+00:00\n"
     12"POT-Creation-Date: 2025-07-22T07:33:06+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.8.1\n"
     
    3232
    3333#. Author URI of the plugin
    34 msgid "https://really-simple-plugins.com"
     34msgid "https://really-simple-ssl.com/about-us"
    3535msgstr ""
    3636
    3737#: assets/templates/two_fa/expired.php:3
    3838#: assets/templates/two_fa/onboarding.php:44
    39 #: class-admin.php:3352
     39#: class-admin.php:3320
    4040#: class-site-health.php:61
    4141#: onboarding/class-onboarding.php:529
     
    195195#: settings/config/menu.php:17
    196196#: settings/config/menu.php:394
    197 #: settings/build/366.79830113ad25eba9fb57.js:1
     197#: settings/build/366.5ee9613565c0155c0f8e.js:1
    198198#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:237
    199199#: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesFooter.js:24
     
    202202
    203203#: class-admin.php:163
    204 #: settings/build/index.a4cc556db77e3384994b.js:1
     204#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    205205#: settings/src/Header.js:45
    206206msgid "Support"
     
    225225
    226226#: class-admin.php:665
    227 #: settings/build/366.79830113ad25eba9fb57.js:1
     227#: settings/build/366.5ee9613565c0155c0f8e.js:1
    228228#: settings/build/485.47f7474dc2a61c04262b.js:1
    229229#: settings/build/829.0d69f68a1345874307b1.js:1
     
    235235
    236236#: class-admin.php:665
    237 #: settings/build/366.79830113ad25eba9fb57.js:1
     237#: settings/build/366.5ee9613565c0155c0f8e.js:1
    238238#: settings/build/485.47f7474dc2a61c04262b.js:1
    239239#: settings/build/829.0d69f68a1345874307b1.js:1
     
    279279#: class-admin.php:1948
    280280#: pro/class-licensing.php:654
    281 #: pro/security/wordpress/class-rsssl-geo-block.php:1529
     281#: pro/security/wordpress/class-rsssl-geo-block.php:1530
    282282msgid "Open"
    283283msgstr ""
    284284
    285285#: class-admin.php:1949
    286 #: settings/build/366.79830113ad25eba9fb57.js:1
     286#: settings/build/366.5ee9613565c0155c0f8e.js:1
    287287#: settings/src/Dashboard/OtherPlugins/OtherPlugins.js:21
    288288msgid "Upgrade"
     
    395395
    396396#: class-admin.php:2136
    397 #: settings/build/366.79830113ad25eba9fb57.js:1
     397#: settings/build/366.5ee9613565c0155c0f8e.js:1
    398398#: settings/build/485.47f7474dc2a61c04262b.js:1
    399399#: settings/build/829.0d69f68a1345874307b1.js:1
     
    498498msgstr ""
    499499
    500 #: class-admin.php:2352
    501 msgid "Please check if your REST API is loading correctly. Your site currently is using the slower Ajax fallback method to load the settings."
    502 msgstr ""
    503 
    504 #: class-admin.php:2366
     500#: class-admin.php:2350
    505501msgid "Complete email validation and enable notifications to make sure you will receive security warnings."
    506502msgstr ""
    507503
    508 #: class-admin.php:2374
     504#: class-admin.php:2358
    509505msgid "Email address successfully verified."
    510506msgstr ""
    511507
    512 #: class-admin.php:2390
    513 msgid "Your site uses plain permalinks, which causes issues with the REST API. Please use a different permalinks configuration."
    514 msgstr ""
    515 
    516 #: class-admin.php:2442
     508#: class-admin.php:2410
    517509#: settings/config/fields/firewall.php:104
    518510#: settings/config/fields/firewall.php:126
     
    522514
    523515#. translators: %1$s: opening bold tag, %2$s: closing bold tag
     516#: class-admin.php:3278
     517msgid "Really Simple SSL is now %1$sReally Simple Security!%2$s"
     518msgstr ""
     519
     520#: class-admin.php:3285
     521msgid "Read about our journey towards Really Simple Security"
     522msgstr ""
     523
     524#: class-admin.php:3291
     525msgid "Experience all powerful features of Really Simple Security Pro using this %slimited time discount%s: %s"
     526msgstr ""
     527
    524528#: class-admin.php:3310
    525 msgid "Really Simple SSL is now %1$sReally Simple Security!%2$s"
    526 msgstr ""
    527 
    528 #: class-admin.php:3317
    529 msgid "Read about our journey towards Really Simple Security"
    530 msgstr ""
    531 
    532 #: class-admin.php:3323
    533 msgid "Experience all powerful features of Really Simple Security Pro using this %slimited time discount%s: %s"
    534 msgstr ""
    535 
    536 #: class-admin.php:3342
    537529msgid "Thank you for being a long-time user! As a token of our gratitude, we want to offer you %s6 months Really Simple Security Pro, 100%% Free!%s"
    538530msgstr ""
    539531
    540 #: class-admin.php:3347
     532#: class-admin.php:3315
    541533msgid "Discover:"
    542534msgstr ""
    543535
    544 #: class-admin.php:3350
     536#: class-admin.php:3318
    545537msgid "Performant Firewall"
    546538msgstr ""
    547539
    548 #: class-admin.php:3351
     540#: class-admin.php:3319
    549541#: settings/config/menu.php:254
    550542msgid "Advanced Hardening"
    551543msgstr ""
    552544
    553 #: class-admin.php:3353
     545#: class-admin.php:3321
    554546#: onboarding/class-onboarding.php:543
    555547#: onboarding/class-onboarding.php:585
     
    558550msgstr ""
    559551
    560 #: class-admin.php:3354
     552#: class-admin.php:3322
    561553msgid "And many more powerful Security features.."
    562554msgstr ""
    563555
    564 #: class-admin.php:3357
     556#: class-admin.php:3325
    565557msgid "Claim your 6 Free months"
    566558msgstr ""
     
    615607#: class-site-health.php:131
    616608#: class-site-health.php:162
    617 #: settings/settings.php:192
    618 #: settings/settings.php:193
    619 #: settings/settings.php:225
     609#: settings/settings.php:197
     610#: settings/settings.php:198
     611#: settings/settings.php:230
    620612msgid "Security"
    621613msgstr ""
     
    656648#: class-site-health.php:297
    657649#: settings/config/fields/vulnerability-detection.php:234
    658 #: settings/build/366.79830113ad25eba9fb57.js:1
     650#: settings/build/366.5ee9613565c0155c0f8e.js:1
    659651#: settings/build/485.47f7474dc2a61c04262b.js:1
    660652#: settings/src/Dashboard/SslLabs/SslLabs.js:320
     
    751743
    752744#: class-site-health.php:340
    753 #: settings/build/366.79830113ad25eba9fb57.js:1
     745#: settings/build/366.5ee9613565c0155c0f8e.js:1
    754746#: settings/build/485.47f7474dc2a61c04262b.js:1
    755747#: settings/build/829.0d69f68a1345874307b1.js:1
     
    18621854#: mailer/class-mail.php:33
    18631855#: mailer/class-mail.php:37
    1864 #: settings/build/366.79830113ad25eba9fb57.js:1
     1856#: settings/build/366.5ee9613565c0155c0f8e.js:1
    18651857#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:192
    18661858msgid "Learn more"
     
    19991991
    20001992#: onboarding/class-onboarding.php:296
    2001 #: settings/build/366.79830113ad25eba9fb57.js:1
     1993#: settings/build/366.5ee9613565c0155c0f8e.js:1
    20021994#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:116
    20031995msgid "Enable"
     
    20102002#: onboarding/class-onboarding.php:305
    20112003#: settings/config/menu.php:755
    2012 #: settings/build/366.79830113ad25eba9fb57.js:1
     2004#: settings/build/366.5ee9613565c0155c0f8e.js:1
    20132005#: settings/build/485.47f7474dc2a61c04262b.js:1
    20142006#: settings/build/829.0d69f68a1345874307b1.js:1
     
    20312023#: upgrade/upgrade-to-pro.php:132
    20322024#: upgrade/upgrade-to-pro.php:145
    2033 #: settings/build/366.79830113ad25eba9fb57.js:1
     2025#: settings/build/366.5ee9613565c0155c0f8e.js:1
    20342026#: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:73
    20352027msgid "Install"
     
    20612053
    20622054#: onboarding/class-onboarding.php:443
    2063 #: settings/settings.php:595
     2055#: settings/settings.php:526
    20642056msgid "Online Booking System"
    20652057msgstr ""
     
    20682060#: settings/config/menu.php:187
    20692061#: settings/config/menu.php:192
    2070 #: settings/build/366.79830113ad25eba9fb57.js:1
     2062#: settings/build/366.5ee9613565c0155c0f8e.js:1
    20712063#: settings/src/Dashboard/Progress/ProgressFooter.js:58
    20722064#: settings/src/Dashboard/Progress/ProgressFooter.js:62
     
    20952087#: modal/build/index.d4bca8705bbc6e3e5777.js:1
    20962088#: modal/src/components/DeactivationModal/DeactivationModal.js:71
    2097 #: settings/build/366.79830113ad25eba9fb57.js:1
     2089#: settings/build/366.5ee9613565c0155c0f8e.js:1
    20982090#: settings/src/Dashboard/Progress/ProgressFooter.js:44
    20992091#: settings/src/Dashboard/Progress/ProgressFooter.js:48
     
    21472139#: pro/class-scan.php:1809
    21482140#: pro/class-scan.php:1856
    2149 #: settings/build/366.79830113ad25eba9fb57.js:1
     2141#: settings/build/366.5ee9613565c0155c0f8e.js:1
    21502142#: settings/build/485.47f7474dc2a61c04262b.js:1
    21512143#: settings/build/829.0d69f68a1345874307b1.js:1
     
    23192311
    23202312#: pro/class-importer.php:537
    2321 #: settings/build/index.a4cc556db77e3384994b.js:1
     2313#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    23222314#: settings/src/Settings/FieldsData.js:184
    23232315msgid "Something went wrong"
     
    28432835#: pro/security/wordpress/class-rsssl-geo-block.php:812
    28442836#: pro/security/wordpress/class-rsssl-geo-block.php:859
    2845 #: pro/security/wordpress/class-rsssl-geo-block.php:1462
     2837#: pro/security/wordpress/class-rsssl-geo-block.php:1463
    28462838msgid "An error occurred: "
    28472839msgstr ""
     
    28612853
    28622854#: pro/security/wordpress/class-rsssl-geo-block.php:779
    2863 #: pro/security/wordpress/class-rsssl-geo-block.php:1775
    2864 #: pro/security/wordpress/class-rsssl-geo-block.php:1819
    2865 #: pro/security/wordpress/class-rsssl-geo-block.php:1928
     2855#: pro/security/wordpress/class-rsssl-geo-block.php:1776
     2856#: pro/security/wordpress/class-rsssl-geo-block.php:1820
     2857#: pro/security/wordpress/class-rsssl-geo-block.php:1929
    28662858msgid "Invalid data provided."
    28672859msgstr ""
     
    28952887msgstr ""
    28962888
    2897 #: pro/security/wordpress/class-rsssl-geo-block.php:1140
     2889#: pro/security/wordpress/class-rsssl-geo-block.php:1141
    28982890msgid "We're sorry."
    28992891msgstr ""
    29002892
    2901 #: pro/security/wordpress/class-rsssl-geo-block.php:1141
     2893#: pro/security/wordpress/class-rsssl-geo-block.php:1142
    29022894msgid "This website is unavailable in your region."
    29032895msgstr ""
    29042896
    2905 #: pro/security/wordpress/class-rsssl-geo-block.php:1142
    2906 #: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:337
     2897#: pro/security/wordpress/class-rsssl-geo-block.php:1143
     2898#: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:335
    29072899msgid "Your access to this site has been temporarily denied"
    29082900msgstr ""
    29092901
    2910 #: pro/security/wordpress/class-rsssl-geo-block.php:1143
     2902#: pro/security/wordpress/class-rsssl-geo-block.php:1144
    29112903msgid "Your access to this site has been denied"
    29122904msgstr ""
    29132905
    2914 #: pro/security/wordpress/class-rsssl-geo-block.php:1144
     2906#: pro/security/wordpress/class-rsssl-geo-block.php:1145
    29152907msgid "Error code: 403"
    29162908msgstr ""
    29172909
    2918 #: pro/security/wordpress/class-rsssl-geo-block.php:1366
    2919 #: pro/security/wordpress/class-rsssl-geo-block.php:1402
     2910#: pro/security/wordpress/class-rsssl-geo-block.php:1367
     2911#: pro/security/wordpress/class-rsssl-geo-block.php:1403
    29202912#: pro/security/wordpress/limitlogin/class-rsssl-admin-config-countries.php:165
    29212913msgid "Missing filter value."
    29222914msgstr ""
    29232915
    2924 #: pro/security/wordpress/class-rsssl-geo-block.php:1489
     2916#: pro/security/wordpress/class-rsssl-geo-block.php:1490
    29252917#: settings/config/fields/firewall.php:168
    29262918#: settings/config/fields/firewall.php:213
     
    29372929
    29382930#. translators: %s: Name of the country that was removed from the blocked list.
    2939 #: pro/security/wordpress/class-rsssl-geo-block.php:1804
     2931#: pro/security/wordpress/class-rsssl-geo-block.php:1805
    29402932msgid "IP address %s is now %s."
    29412933msgstr ""
    29422934
    2943 #: pro/security/wordpress/class-rsssl-geo-block.php:1834
     2935#: pro/security/wordpress/class-rsssl-geo-block.php:1835
    29442936msgid "IP removed from list."
    29452937msgstr ""
    29462938
    2947 #: pro/security/wordpress/class-rsssl-geo-block.php:1922
     2939#: pro/security/wordpress/class-rsssl-geo-block.php:1923
    29482940msgid "User agent added."
    29492941msgstr ""
    29502942
    2951 #: pro/security/wordpress/class-rsssl-geo-block.php:1962
     2943#: pro/security/wordpress/class-rsssl-geo-block.php:1963
    29522944msgid "User agent removed from current list."
    29532945msgstr ""
     
    32783270msgstr ""
    32793271
    3280 #: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:334
     3272#: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:332
    32813273msgid "We're sorry!"
    32823274msgstr ""
    32833275
    3284 #: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:335
     3276#: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:333
    32853277msgid "Please verify that you are human"
    32863278msgstr ""
    32873279
    3288 #: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:339
     3280#: pro/security/wordpress/firewall/class-rsssl-404-interceptor.php:337
    32893281msgid "Error code: 404"
    32903282msgstr ""
    32913283
    3292 #: pro/security/wordpress/firewall/models/class-rsssl-404-block.php:108
    3293 msgid "Added to watchlist by 404 interceptor"
    3294 msgstr ""
    3295 
    3296 #: pro/security/wordpress/firewall/models/class-rsssl-404-block.php:173
     3284#: pro/security/wordpress/firewall/models/class-rsssl-404-block.php:186
    32973285msgid "404 threshold exceeded"
    32983286msgstr ""
     
    53345322#: security/wordpress/vulnerabilities.php:625
    53355323#: settings/config/menu.php:182
    5336 #: settings/build/366.79830113ad25eba9fb57.js:1
     5324#: settings/build/366.5ee9613565c0155c0f8e.js:1
    53375325#: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.js:15
    53385326msgid "Vulnerabilities"
     
    57335721#: settings/config/fields/limit-login-attempts.php:266
    57345722#: settings/config/fields/two-fa.php:179
    5735 #: settings/build/366.79830113ad25eba9fb57.js:1
     5723#: settings/build/366.5ee9613565c0155c0f8e.js:1
    57365724#: settings/src/Dashboard/SslLabs/SslLabsHeader.js:5
    57375725msgid "Status"
     
    65016489
    65026490#: settings/config/menu.php:68
    6503 #: settings/build/index.a4cc556db77e3384994b.js:1
     6491#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    65046492#: settings/src/Header.js:32
    65056493msgid "Let's Encrypt"
     
    66106598
    66116599#: settings/config/menu.php:233
    6612 #: settings/build/366.79830113ad25eba9fb57.js:1
     6600#: settings/build/366.5ee9613565c0155c0f8e.js:1
    66136601#: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.js:15
    66146602msgid "Hardening"
     
    69346922msgstr ""
    69356923
    6936 #: settings/settings.php:583
     6924#: settings/settings.php:514
    69376925msgid "Complianz - Consent Management as it should be"
    69386926msgstr ""
    69396927
    6940 #: settings/settings.php:589
     6928#: settings/settings.php:520
    69416929msgid "Terms and Conditions"
    69426930msgstr ""
     
    70197007
    70207008#: upgrade/upgrade-to-pro.php:156
    7021 #: settings/build/366.79830113ad25eba9fb57.js:1
     7009#: settings/build/366.5ee9613565c0155c0f8e.js:1
    70227010#: settings/src/Dashboard/OtherPlugins/OtherPlugins.js:24
    70237011msgid "Installed"
     
    71747162
    71757163#: settings/build/91.b0f863c7b47144cb4cdf.js:1
    7176 #: settings/build/366.79830113ad25eba9fb57.js:1
     7164#: settings/build/366.5ee9613565c0155c0f8e.js:1
    71777165#: settings/build/485.47f7474dc2a61c04262b.js:1
    71787166#: settings/build/829.0d69f68a1345874307b1.js:1
     
    71847172msgstr ""
    71857173
    7186 #: settings/build/366.79830113ad25eba9fb57.js:1
     7174#: settings/build/366.5ee9613565c0155c0f8e.js:1
    71877175#: settings/src/Dashboard/Progress/ProgressBlockHeader.js:37
    71887176msgid "Progress"
    71897177msgstr ""
    71907178
    7191 #: settings/build/366.79830113ad25eba9fb57.js:1
     7179#: settings/build/366.5ee9613565c0155c0f8e.js:1
    71927180#: settings/src/Dashboard/Progress/ProgressBlockHeader.js:41
    71937181msgid "All tasks"
    71947182msgstr ""
    71957183
    7196 #: settings/build/366.79830113ad25eba9fb57.js:1
     7184#: settings/build/366.5ee9613565c0155c0f8e.js:1
    71977185#: settings/src/Dashboard/Progress/ProgressBlockHeader.js:45
    71987186msgid "Remaining tasks"
    71997187msgstr ""
    72007188
    7201 #: settings/build/366.79830113ad25eba9fb57.js:1
     7189#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72027190#: settings/build/485.47f7474dc2a61c04262b.js:1
    72037191#: settings/src/Dashboard/Progress/ProgressBlock.js:41
     
    72117199msgstr ""
    72127200
    7213 #: settings/build/366.79830113ad25eba9fb57.js:1
     7201#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72147202#: settings/src/Dashboard/Progress/ProgressFooter.js:14
    72157203msgid "SSL"
    72167204msgstr ""
    72177205
    7218 #: settings/build/366.79830113ad25eba9fb57.js:1
     7206#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72197207#: settings/build/995.7a0675fe0519b06656b3.js:1
    7220 #: settings/build/index.a4cc556db77e3384994b.js:1
     7208#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    72217209#: settings/src/Dashboard/Progress/ProgressFooter.js:29
    72227210#: settings/src/Header.js:54
     
    72257213msgstr ""
    72267214
    7227 #: settings/build/366.79830113ad25eba9fb57.js:1
     7215#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72287216#: settings/src/Dashboard/SslLabs/SslLabsHeader.js:7
    72297217msgid "Powered by Qualys"
    72307218msgstr ""
    72317219
    7232 #: settings/build/366.79830113ad25eba9fb57.js:1
     7220#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72337221#: settings/src/Dashboard/SslLabs/SslLabs.js:255
    72347222msgid "No test started yet"
    72357223msgstr ""
    72367224
    7237 #: settings/build/366.79830113ad25eba9fb57.js:1
     7225#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72387226#: settings/src/Dashboard/SslLabs/SslLabs.js:281
    72397227msgid "Not available on localhost"
    72407228msgstr ""
    72417229
    7242 #: settings/build/366.79830113ad25eba9fb57.js:1
     7230#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72437231#: settings/src/Dashboard/SslLabs/SslLabs.js:178
    72447232msgid "Cipher strength"
    72457233msgstr ""
    72467234
    7247 #: settings/build/366.79830113ad25eba9fb57.js:1
     7235#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72487236#: settings/src/Dashboard/SslLabs/SslLabs.js:317
    72497237msgid "What does my score mean?"
    72507238msgstr ""
    72517239
    7252 #: settings/build/366.79830113ad25eba9fb57.js:1
     7240#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72537241#: settings/src/Dashboard/SslLabs/SslLabs.js:326
    72547242msgid "Last check:"
    72557243msgstr ""
    72567244
    7257 #: settings/build/366.79830113ad25eba9fb57.js:1
     7245#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72587246#: settings/src/Dashboard/SslLabs/SslLabs.js:333
    72597247msgid "View detailed report on Qualys SSL Labs"
    72607248msgstr ""
    72617249
    7262 #: settings/build/366.79830113ad25eba9fb57.js:1
     7250#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72637251#: settings/src/Dashboard/SslLabs/SslLabsFooter.js:9
    72647252msgid "Continue SSL Health check"
    72657253msgstr ""
    72667254
    7267 #: settings/build/366.79830113ad25eba9fb57.js:1
     7255#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72687256#: settings/src/Dashboard/SslLabs/SslLabsFooter.js:10
    72697257msgid "Check SSL Health"
    72707258msgstr ""
    72717259
    7272 #: settings/build/366.79830113ad25eba9fb57.js:1
     7260#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72737261#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:38
    72747262msgid "vulnerability"
    72757263msgstr ""
    72767264
    7277 #: settings/build/366.79830113ad25eba9fb57.js:1
     7265#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72787266#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:38
    72797267msgid "vulnerabilities"
    72807268msgstr ""
    72817269
    7282 #: settings/build/366.79830113ad25eba9fb57.js:1
     7270#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72837271#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:41
    72847272msgid "update"
    72857273msgstr ""
    72867274
    7287 #: settings/build/366.79830113ad25eba9fb57.js:1
     7275#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72887276#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:41
    72897277msgid "updates"
    72907278msgstr ""
    72917279
    7292 #: settings/build/366.79830113ad25eba9fb57.js:1
     7280#: settings/build/366.5ee9613565c0155c0f8e.js:1
    72937281#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:42
    72947282msgid "You have %s update pending"
     
    72977285msgstr[1] ""
    72987286
    7299 #: settings/build/366.79830113ad25eba9fb57.js:1
     7287#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73007288#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:46
    73017289msgid "hardening feature"
    73027290msgstr ""
    73037291
    7304 #: settings/build/366.79830113ad25eba9fb57.js:1
     7292#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73057293#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:46
    73067294msgid "hardening features"
    73077295msgstr ""
    73087296
    7309 #: settings/build/366.79830113ad25eba9fb57.js:1
     7297#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73107298#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:235
    73117299msgid "You have %s open %d"
    73127300msgstr ""
    73137301
    7314 #: settings/build/366.79830113ad25eba9fb57.js:1
     7302#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73157303#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:245
    73167304msgid "Hardening features are configured"
    73177305msgstr ""
    73187306
    7319 #: settings/build/366.79830113ad25eba9fb57.js:1
     7307#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73207308#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:115
    73217309msgid "Enable vulnerability detection"
    73227310msgstr ""
    73237311
    7324 #: settings/build/366.79830113ad25eba9fb57.js:1
     7312#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73257313#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:187
    73267314#: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:202
     
    73287316msgstr ""
    73297317
    7330 #: settings/build/366.79830113ad25eba9fb57.js:1
    7331 #: settings/build/index.a4cc556db77e3384994b.js:1
     7318#: settings/build/366.5ee9613565c0155c0f8e.js:1
     7319#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    73327320#: settings/src/Dashboard/TipsTricks/TipsTricksFooter.js:9
    73337321#: settings/src/Header.js:30
     
    73357323msgstr ""
    73367324
    7337 #: settings/build/366.79830113ad25eba9fb57.js:1
     7325#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73387326#: settings/src/Dashboard/OtherPlugins/OtherPluginsHeader.js:5
    73397327msgid "Other Plugins"
    73407328msgstr ""
    73417329
    7342 #: settings/build/366.79830113ad25eba9fb57.js:1
     7330#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73437331#: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:75
    73447332msgid "Activating..."
    73457333msgstr ""
    73467334
    7347 #: settings/build/366.79830113ad25eba9fb57.js:1
     7335#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73487336#: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:76
    73497337#: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:77
     
    73517339msgstr ""
    73527340
    7353 #: settings/build/366.79830113ad25eba9fb57.js:1
     7341#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73547342#: settings/src/Dashboard/DashboardPage.js:47
    73557343msgid "Tips & Tricks"
    73567344msgstr ""
    73577345
    7358 #: settings/build/366.79830113ad25eba9fb57.js:1
     7346#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73597347#: settings/build/485.47f7474dc2a61c04262b.js:1
    73607348#: settings/build/829.0d69f68a1345874307b1.js:1
     
    73637351msgstr ""
    73647352
    7365 #: settings/build/366.79830113ad25eba9fb57.js:1
     7353#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73667354#: settings/build/485.47f7474dc2a61c04262b.js:1
    73677355#: settings/build/829.0d69f68a1345874307b1.js:1
     
    73707358msgstr ""
    73717359
    7372 #: settings/build/366.79830113ad25eba9fb57.js:1
     7360#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73737361#: settings/build/485.47f7474dc2a61c04262b.js:1
    73747362#: settings/build/829.0d69f68a1345874307b1.js:1
     
    73777365msgstr ""
    73787366
    7379 #: settings/build/366.79830113ad25eba9fb57.js:1
     7367#: settings/build/366.5ee9613565c0155c0f8e.js:1
    73807368#: settings/build/485.47f7474dc2a61c04262b.js:1
    73817369#: settings/build/829.0d69f68a1345874307b1.js:1
     
    82578245msgstr ""
    82588246
    8259 #: settings/build/index.a4cc556db77e3384994b.js:1
     8247#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82608248#: settings/src/Onboarding/OnboardingData.js:82
    82618249msgid "Updating email preferences.."
    82628250msgstr ""
    82638251
    8264 #: settings/build/index.a4cc556db77e3384994b.js:1
     8252#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82658253#: settings/src/Onboarding/OnboardingData.js:126
    82668254msgid "Installing %d..."
    82678255msgstr ""
    82688256
    8269 #: settings/build/index.a4cc556db77e3384994b.js:1
     8257#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82708258#: settings/src/Onboarding/OnboardingData.js:132
    82718259msgid "Activating %d..."
    82728260msgstr ""
    82738261
    8274 #: settings/build/index.a4cc556db77e3384994b.js:1
     8262#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82758263#: settings/src/Onboarding/OnboardingData.js:196
    82768264msgid "Re-checking SSL certificate, please wait..."
    82778265msgstr ""
    82788266
    8279 #: settings/build/index.a4cc556db77e3384994b.js:1
     8267#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82808268#: settings/src/Settings/FieldsData.js:182
    82818269msgid "Saving settings..."
    82828270msgstr ""
    82838271
    8284 #: settings/build/index.a4cc556db77e3384994b.js:1
     8272#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82858273#: settings/src/Settings/FieldsData.js:183
    82868274#: settings/src/Settings/FieldsData.js:205
     
    82898277msgstr ""
    82908278
    8291 #: settings/build/index.a4cc556db77e3384994b.js:1
     8279#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82928280#: settings/src/utils/Error.js:12
    82938281msgid "Please check if security settings on the server or a plugin is blocking the requests from Really Simple Security."
    82948282msgstr ""
    82958283
    8296 #: settings/build/index.a4cc556db77e3384994b.js:1
     8284#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    82978285#: settings/src/utils/Error.js:20
    82988286msgid "The Really Simple Security Rest API is disabled."
    82998287msgstr ""
    83008288
    8301 #: settings/build/index.a4cc556db77e3384994b.js:1
     8289#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83028290#: settings/src/utils/Error.js:22
    83038291msgid "The Really Simple Security Rest API returned a not found."
    83048292msgstr ""
    83058293
    8306 #: settings/build/index.a4cc556db77e3384994b.js:1
     8294#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83078295#: settings/src/utils/Error.js:24
    83088296msgid "The Really Simple Security Rest API returned a 403 forbidden error."
    83098297msgstr ""
    83108298
    8311 #: settings/build/index.a4cc556db77e3384994b.js:1
     8299#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83128300#: settings/src/utils/Error.js:35
    83138301msgid "A problem was detected during the loading of the settings"
    83148302msgstr ""
    83158303
    8316 #: settings/build/index.a4cc556db77e3384994b.js:1
     8304#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83178305#: settings/src/utils/Error.js:41
    83188306msgid "The request returned the following errors:"
    83198307msgstr ""
    83208308
    8321 #: settings/build/index.a4cc556db77e3384994b.js:1
     8309#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83228310#: settings/src/utils/Error.js:43
    83238311msgid "Response code:"
    83248312msgstr ""
    83258313
    8326 #: settings/build/index.a4cc556db77e3384994b.js:1
     8314#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83278315#: settings/src/utils/Error.js:44
    83288316msgid "Status code:"
    83298317msgstr ""
    83308318
    8331 #: settings/build/index.a4cc556db77e3384994b.js:1
     8319#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83328320#: settings/src/utils/Error.js:45
    83338321msgid "Server response:"
    83348322msgstr ""
    83358323
    8336 #: settings/build/index.a4cc556db77e3384994b.js:1
     8324#: settings/build/index.c2ac76bdb7421daf20f4.js:1
    83378325#: settings/src/utils/Error.js:48
    83388326msgid "More information"
  • really-simple-ssl/trunk/readme.txt

    r3328059 r3338863  
    77Tested up to: 6.8
    88Requires PHP: 7.4
    9 Stable tag: 9.4.2
     9Stable tag: 9.4.3
    1010
    1111Easily improve site security with WordPress Hardening, Two-Factor Authentication (2FA), Login Protection, Vulnerability Detection and SSL certificate.
     
    110110
    111111== About Really Simple Plugins ==
    112 Our mission is to make complex WordPress requirements really easy. Really Simple Security is developed by [Really Simple Plugins](https://www.really-simple-plugins.com).
     112Our mission is to make complex WordPress requirements really easy. Really Simple Security is developed by [Really Simple Plugins](https://www.really-simple-ssl.com/about-us).
    113113
    114114For generating SSL certificates, Really Simple Security uses the [le acme2 PHP](https://github.com/fbett/le-acme2-php/) Let's Encrypt client library, thanks to 'fbett' for providing it. Vulnerability Detection uses WP Vulnerability, an open-source initiative by Javier Casares. Want to join as a collaborator? We're on [GitHub](https://github.com/really-simple-plugins/really-simple-ssl) as well!
     
    161161
    162162== Changelog ==
     163= 9.4.3 =
     164* Improvement: improved compatibility with plain permalinks.
     165* Improvement: updated links in the plugin.
     166* Fix: handled a case where the user ID could be empty in 2FA.
     167* Fix: learn more button in vulnerability e-mail link now links to the correct page.
     168* Fix: fixed an issue where rsssl_user_can_manage could be undefined when downloading the system status.
     169
    163170= 9.4.2 =
    164171* Fix: Adjusted .htaccess redirect requirements for subfolder configurations
  • really-simple-ssl/trunk/rlrsssl-really-simple-ssl.php

    r3328070 r3338863  
    44 * Plugin URI: https://really-simple-ssl.com
    55 * Description: Easily improve site security with WordPress Hardening, Two-Factor Authentication (2FA), Login Protection, Vulnerability Detection and SSL certificate generation.
    6  * Version: 9.4.2
     6 * Version: 9.4.3
    77 * Requires at least: 6.6
    88 * Requires PHP: 7.4
    99 * Author: Really Simple Security
    10  * Author URI: https://really-simple-plugins.com
     10 * Author URI: https://really-simple-ssl.com/about-us
    1111 * License: GPL2
    1212 * Text Domain: really-simple-ssl
     
    3030
    3131if (!function_exists('rsssl_activation_check')) {
    32     function rsssl_activation_check()
    33     {
    34         update_option('rsssl_activation', true, false );
    35         update_option('rsssl_show_onboarding', true, false );
    36         update_option('rsssl_redirect_to_settings_page', true, HOUR_IN_SECONDS );
    37     }
    38     register_activation_hook( __FILE__, 'rsssl_activation_check' );
     32    function rsssl_activation_check()
     33    {
     34        update_option('rsssl_activation', true, false );
     35        update_option('rsssl_show_onboarding', true, false );
     36        update_option('rsssl_redirect_to_settings_page', true, HOUR_IN_SECONDS );
     37    }
     38    register_activation_hook( __FILE__, 'rsssl_activation_check' );
    3939}
    4040
    4141if ( class_exists('REALLY_SIMPLE_SSL') ) {
    42     // Normally we can assume the function exists as class REALLY_SIMPLE_SSL
    43     // also exists. But as this function is new we should be extra sure.
    44     if (!function_exists('rsssl_deactivate_alternate')) {
    45         $rsssl_path = trailingslashit( plugin_dir_path( __FILE__ ) );
    46         require_once $rsssl_path . 'functions.php';
    47     }
    48 
    49     rsssl_deactivate_alternate('pro');
     42    // Normally we can assume the function exists as class REALLY_SIMPLE_SSL
     43    // also exists. But as this function is new we should be extra sure.
     44    if (!function_exists('rsssl_deactivate_alternate')) {
     45        $rsssl_path = trailingslashit( plugin_dir_path( __FILE__ ) );
     46        require_once $rsssl_path . 'functions.php';
     47    }
     48
     49    rsssl_deactivate_alternate('pro');
    5050} else {
    51     class REALLY_SIMPLE_SSL {
    52 
    53         private static $instance;
    54         public $front_end;
    55         public $mixed_content_fixer;
    56         public $multisite;
    57         public $cache;
    58         public $server;
    59         public $admin;
    60         public $progress;
    61         public $onboarding;
    62         public $placeholder;
    63         public $certificate;
    64         public $wp_cli;
    65         public $mailer_admin;
    66         public $site_health;
    67         public $vulnerabilities;
    68 
    69         private function __construct()
    70         {
    71             if (isset($_GET['rsssl_apitoken']) && $_GET['rsssl_apitoken'] == get_option('rsssl_csp_report_token') ) {
    72                 if ( !defined('RSSSL_LEARNING_MODE') ) define( 'RSSSL_LEARNING_MODE' , true );
    73             }
    74         }
    75 
    76         public static function instance()
    77         {
    78             if (!isset(self::$instance) && !(self::$instance instanceof REALLY_SIMPLE_SSL)) {
    79                 self::$instance = new REALLY_SIMPLE_SSL;
    80                 self::$instance->setup_constants();
    81                 self::$instance->includes();
    82                 self::$instance->front_end = new rsssl_front_end();
    83                 self::$instance->mixed_content_fixer = new rsssl_mixed_content_fixer();
    84 
    85                 if ( is_multisite() ) {
    86                     self::$instance->multisite = new rsssl_multisite();
    87                 }
    88                 if ( rsssl_admin_logged_in() ) {
    89                     self::$instance->cache = new rsssl_cache();
    90                     self::$instance->placeholder = new rsssl_placeholder();
    91                     self::$instance->server = new rsssl_server();
    92                     self::$instance->admin = new rsssl_admin();
    93                     self::$instance->mailer_admin = new rsssl_mailer_admin();
    94                     self::$instance->onboarding = new rsssl_onboarding();
    95                     self::$instance->progress = new rsssl_progress();
    96                     self::$instance->certificate = new rsssl_certificate();
    97                     self::$instance->site_health = new rsssl_site_health();
    98                     if ( defined( 'WP_CLI' ) && WP_CLI ) {
    99                         self::$instance->wp_cli = new rsssl_wp_cli();
    100                     }
    101                 }
    102                 self::$instance->hooks();
    103             }
    104             return self::$instance;
    105         }
    106 
    107         private function setup_constants()
    108         {
    109             define('rsssl_url', plugin_dir_url(__FILE__));
    110             define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__)));
    111             define('rsssl_template_path', trailingslashit(plugin_dir_path(__FILE__)).'grid/templates/');
    112             define('rsssl_plugin', plugin_basename(__FILE__));
    113             if ( !defined('rsssl_file') ){
    114                 define('rsssl_file', __FILE__);
    115             }
    116             define('rsssl_version', '9.4.2');
    117             define('rsssl_le_cron_generation_renewal_check', 20);
    118             define('rsssl_le_manual_generation_renewal_check', 15);
    119         }
    120         private function includes()
    121         {
    122             require_once(rsssl_path . 'class-front-end.php');
    123             require_once(rsssl_path . 'functions.php');
    124             require_once(rsssl_path . 'class-mixed-content-fixer.php');
    125             if ( defined( 'WP_CLI' ) && WP_CLI ) {
    126                 require_once( rsssl_path . 'class-wp-cli.php');
    127             }
    128             if ( is_multisite() ) {
    129                 require_once( rsssl_path . 'class-multisite.php');
    130             }
    131             if ( rsssl_admin_logged_in() ) {
    132                 require_once( rsssl_path . 'compatibility.php');
    133                 require_once( rsssl_path . 'upgrade.php');
    134                 require_once( rsssl_path . 'settings/settings.php' );
    135                 require_once( rsssl_path . 'modal/modal.php' );
    136                 require_once( rsssl_path . 'onboarding/class-onboarding.php' );
    137                 require_once( rsssl_path . 'placeholders/class-placeholder.php' );
    138                 require_once( rsssl_path . 'class-admin.php');
    139                 require_once( rsssl_path . 'mailer/class-mail-admin.php');
    140                 require_once( rsssl_path . 'class-cache.php');
    141                 require_once( rsssl_path . 'class-server.php');
    142                 require_once( rsssl_path . 'progress/class-progress.php');
    143                 require_once( rsssl_path . 'class-certificate.php');
    144                 require_once( rsssl_path . 'class-site-health.php');
    145                 require_once( rsssl_path . 'mailer/class-mail.php');
    146                 require_once( rsssl_path . 'lets-encrypt/letsencrypt.php' );
    147                 if ( isset($_GET['install_pro'])) {
    148                     require_once( rsssl_path . 'upgrade/upgrade-to-pro.php');
    149                 }
    150             }
    151 
    152             require_once( rsssl_path . 'lets-encrypt/cron.php' );
    153             require_once( rsssl_path . '/security/security.php');
    154             require_once( rsssl_path . '/rsssl-auto-loader.php' );
    155         }
    156 
    157         private function hooks()
    158         {
    159             /**
    160             * Fire custom hook
    161             */
    162             if ( rsssl_admin_logged_in() ) {
    163                 add_action('admin_notices', array( $this, 'admin_notices'));
    164                 if ( is_multisite() ) {
    165                     add_action('network_admin_notices', array( $this, 'admin_notices'));
    166                 }
    167             }
    168 
    169             add_action('wp_loaded', array(self::$instance->front_end, 'force_ssl'), 20);
    170             if ( rsssl_admin_logged_in() ) {
    171                 add_action('plugins_loaded', array(self::$instance->admin, 'init'), 10);
    172             }
    173         }
    174 
    175         /**
    176         * Notice about possible compatibility issues with add ons
    177         */
    178         public static function admin_notices() {
    179             //prevent showing on edit screen, as gutenberg removes the class which makes it editable.
    180             $screen = get_current_screen();
    181             if ( $screen && $screen->base === 'post' ) return;
    182             if ( self::has_old_addon('really-simple-ssl-pro/really-simple-ssl-pro.php') ||
    183                  self::has_old_addon('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php' )
    184             ) {
    185                 ?>
     51    class REALLY_SIMPLE_SSL {
     52
     53        private static $instance;
     54        public $front_end;
     55        public $mixed_content_fixer;
     56        public $multisite;
     57        public $cache;
     58        public $server;
     59        public $admin;
     60        public $progress;
     61        public $onboarding;
     62        public $placeholder;
     63        public $certificate;
     64        public $wp_cli;
     65        public $mailer_admin;
     66        public $site_health;
     67        public $vulnerabilities;
     68
     69        private function __construct()
     70        {
     71            if (isset($_GET['rsssl_apitoken']) && $_GET['rsssl_apitoken'] == get_option('rsssl_csp_report_token') ) {
     72                if ( !defined('RSSSL_LEARNING_MODE') ) define( 'RSSSL_LEARNING_MODE' , true );
     73            }
     74        }
     75
     76        public static function instance()
     77        {
     78            if (!isset(self::$instance) && !(self::$instance instanceof REALLY_SIMPLE_SSL)) {
     79                self::$instance = new REALLY_SIMPLE_SSL;
     80                self::$instance->setup_constants();
     81                self::$instance->includes();
     82                self::$instance->front_end = new rsssl_front_end();
     83                self::$instance->mixed_content_fixer = new rsssl_mixed_content_fixer();
     84
     85                if ( is_multisite() ) {
     86                    self::$instance->multisite = new rsssl_multisite();
     87                }
     88                if ( rsssl_admin_logged_in() ) {
     89                    self::$instance->cache = new rsssl_cache();
     90                    self::$instance->placeholder = new rsssl_placeholder();
     91                    self::$instance->server = new rsssl_server();
     92                    self::$instance->admin = new rsssl_admin();
     93                    self::$instance->mailer_admin = new rsssl_mailer_admin();
     94                    self::$instance->onboarding = new rsssl_onboarding();
     95                    self::$instance->progress = new rsssl_progress();
     96                    self::$instance->certificate = new rsssl_certificate();
     97                    self::$instance->site_health = new rsssl_site_health();
     98                    if ( defined( 'WP_CLI' ) && WP_CLI ) {
     99                        self::$instance->wp_cli = new rsssl_wp_cli();
     100                    }
     101                }
     102                self::$instance->hooks();
     103            }
     104            return self::$instance;
     105        }
     106
     107        private function setup_constants()
     108        {
     109            define('rsssl_url', plugin_dir_url(__FILE__));
     110            define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__)));
     111            define('rsssl_template_path', trailingslashit(plugin_dir_path(__FILE__)).'grid/templates/');
     112            define('rsssl_plugin', plugin_basename(__FILE__));
     113            if ( !defined('rsssl_file') ){
     114                define('rsssl_file', __FILE__);
     115            }
     116            define('rsssl_version', '9.4.3');
     117            define('rsssl_le_cron_generation_renewal_check', 20);
     118            define('rsssl_le_manual_generation_renewal_check', 15);
     119        }
     120        private function includes()
     121        {
     122            require_once(rsssl_path . 'class-front-end.php');
     123            require_once(rsssl_path . 'functions.php');
     124            require_once(rsssl_path . 'class-mixed-content-fixer.php');
     125            if ( defined( 'WP_CLI' ) && WP_CLI ) {
     126                require_once( rsssl_path . 'class-wp-cli.php');
     127            }
     128            if ( is_multisite() ) {
     129                require_once( rsssl_path . 'class-multisite.php');
     130            }
     131            if ( rsssl_admin_logged_in() ) {
     132                require_once( rsssl_path . 'compatibility.php');
     133                require_once( rsssl_path . 'upgrade.php');
     134                require_once( rsssl_path . 'settings/settings.php' );
     135                require_once( rsssl_path . 'modal/modal.php' );
     136                require_once( rsssl_path . 'onboarding/class-onboarding.php' );
     137                require_once( rsssl_path . 'placeholders/class-placeholder.php' );
     138                require_once( rsssl_path . 'class-admin.php');
     139                require_once( rsssl_path . 'mailer/class-mail-admin.php');
     140                require_once( rsssl_path . 'class-cache.php');
     141                require_once( rsssl_path . 'class-server.php');
     142                require_once( rsssl_path . 'progress/class-progress.php');
     143                require_once( rsssl_path . 'class-certificate.php');
     144                require_once( rsssl_path . 'class-site-health.php');
     145                require_once( rsssl_path . 'mailer/class-mail.php');
     146                require_once( rsssl_path . 'lets-encrypt/letsencrypt.php' );
     147                if ( isset($_GET['install_pro'])) {
     148                    require_once( rsssl_path . 'upgrade/upgrade-to-pro.php');
     149                }
     150            }
     151
     152            require_once( rsssl_path . 'lets-encrypt/cron.php' );
     153            require_once( rsssl_path . '/security/security.php');
     154            require_once( rsssl_path . '/rsssl-auto-loader.php' );
     155        }
     156
     157        private function hooks()
     158        {
     159            /**
     160            * Fire custom hook
     161            */
     162            if ( rsssl_admin_logged_in() ) {
     163                add_action('admin_notices', array( $this, 'admin_notices'));
     164                if ( is_multisite() ) {
     165                    add_action('network_admin_notices', array( $this, 'admin_notices'));
     166                }
     167            }
     168
     169            add_action('wp_loaded', array(self::$instance->front_end, 'force_ssl'), 20);
     170            if ( rsssl_admin_logged_in() ) {
     171                add_action('plugins_loaded', array(self::$instance->admin, 'init'), 10);
     172            }
     173        }
     174
     175        /**
     176        * Notice about possible compatibility issues with add ons
     177        */
     178        public static function admin_notices() {
     179            //prevent showing on edit screen, as gutenberg removes the class which makes it editable.
     180            $screen = get_current_screen();
     181            if ( $screen && $screen->base === 'post' ) return;
     182            if ( self::has_old_addon('really-simple-ssl-pro/really-simple-ssl-pro.php') ||
     183                self::has_old_addon('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php' )
     184            ) {
     185                ?>
    186186                <div id="message" class="error notice really-simple-plugins">
    187187                    <p><?php echo __("Update Really Simple SSL Pro: the plugin needs to be updated to the latest version to be compatible.","really-simple-ssl");?></p>
    188188                    <p>
    189                         <?php printf(__("Visit the plugins overview or %srenew your license%s.","really-simple-ssl"),'<a href="https://really-simple-ssl.com/pro/?mtm_campaign=renew&mtm_source=free&mtm_content=upgrade" target="_blank" rel="noopener noreferrer">','</a>'); ?>
     189                        <?php printf(__("Visit the plugins overview or %srenew your license%s.","really-simple-ssl"),'<a href="https://really-simple-ssl.com/pro/?mtm_campaign=renew&mtm_source=free&mtm_content=upgrade" target="_blank" rel="noopener noreferrer">','</a>'); ?>
    190190                    </p>
    191191                </div>
    192                 <?php
    193             }
    194         }
    195 
    196         /**
    197          * Check if we have a pre 4.0 add on active which should be upgraded
    198          * @param $file
    199          *
    200          * @return bool
    201          */
    202 
    203         public static function has_old_addon($file) {
    204             require_once(ABSPATH.'wp-admin/includes/plugin.php');
    205             $data = false;
    206             if ( is_plugin_active($file)) $data = get_plugin_data( trailingslashit(WP_PLUGIN_DIR) . $file, false, false );
    207             if ($data && version_compare($data['Version'], '7.0.6', '<')) {
    208                 return true;
    209             }
    210 
    211             if ($data && $data['Name']==='Really Simple SSL social' && version_compare($data['Version'], '4.0.8', '<')) {
    212                 return true;
    213             }
     192                <?php
     193            }
     194        }
     195
     196        /**
     197         * Check if we have a pre 4.0 add on active which should be upgraded
     198         * @param $file
     199         *
     200         * @return bool
     201         */
     202
     203        public static function has_old_addon($file) {
     204            require_once(ABSPATH.'wp-admin/includes/plugin.php');
     205            $data = false;
     206            if ( is_plugin_active($file)) $data = get_plugin_data( trailingslashit(WP_PLUGIN_DIR) . $file, false, false );
     207            if ($data && version_compare($data['Version'], '7.0.6', '<')) {
     208                return true;
     209            }
     210
     211            if ($data && $data['Name']==='Really Simple SSL social' && version_compare($data['Version'], '4.0.8', '<')) {
     212                return true;
     213            }
     214            return false;
     215        }
     216    }
     217}
     218
     219if ( !defined('RSSSL_DEACTIVATING_ALTERNATE')
     220    && !function_exists('RSSSL')
     221) {
     222    function RSSSL() {
     223        return REALLY_SIMPLE_SSL::instance();
     224    }
     225    add_action('plugins_loaded', 'RSSSL', 8);
     226}
     227
     228if ( ! function_exists('rsssl_add_manage_security_capability')){
     229    /**
     230     * Add a user capability to WordPress and add to admin and editor role
     231     */
     232    function rsssl_add_manage_security_capability(){
     233        $role = get_role( 'administrator' );
     234        if( $role && !$role->has_cap( 'manage_security' ) ){
     235            $role->add_cap( 'manage_security' );
     236        }
     237    }
     238
     239    register_activation_hook( __FILE__, 'rsssl_add_manage_security_capability' );
     240}
     241
     242if ( ! function_exists( 'rsssl_user_can_manage' ) ) {
     243    /**
     244     * Check if user has required capability
     245     * @return bool
     246     */
     247    function rsssl_user_can_manage() {
     248        if ( current_user_can('manage_security') ) {
     249            return true;
     250        }
     251
     252        #allow wp-cli access to activate ssl
     253        if ( defined( 'WP_CLI' ) && WP_CLI ){
     254            return true;
     255        }
     256
     257        return false;
     258    }
     259}
     260
     261if ( !function_exists('rsssl_admin_logged_in')){
     262    function rsssl_admin_logged_in(){
     263        $wpcli = defined( 'WP_CLI' ) && WP_CLI;
     264        return (is_admin() && rsssl_user_can_manage()) || rsssl_is_logged_in_rest() ||  wp_doing_cron() || $wpcli || defined('RSSSL_DOING_SYSTEM_STATUS') || defined('RSSSL_LEARNING_MODE');
     265    }
     266}
     267
     268
     269
     270if ( ! function_exists( 'rsssl_is_logged_in_rest' ) ) {
     271    function rsssl_is_logged_in_rest() {
     272        // Check if the request URI is valid
     273        if (!isset($_SERVER['REQUEST_URI'])) {
    214274            return false;
    215275        }
    216     }
    217 }
    218 
    219 if ( !defined('RSSSL_DEACTIVATING_ALTERNATE')
    220      && !function_exists('RSSSL')
    221 ) {
    222     function RSSSL() {
    223         return REALLY_SIMPLE_SSL::instance();
    224     }
    225     add_action('plugins_loaded', 'RSSSL', 8);
    226 }
    227 
    228 if ( ! function_exists('rsssl_add_manage_security_capability')){
    229     /**
    230      * Add a user capability to WordPress and add to admin and editor role
    231      */
    232     function rsssl_add_manage_security_capability(){
    233         $role = get_role( 'administrator' );
    234         if( $role && !$role->has_cap( 'manage_security' ) ){
    235             $role->add_cap( 'manage_security' );
    236         }
    237     }
    238 
    239     register_activation_hook( __FILE__, 'rsssl_add_manage_security_capability' );
    240 }
    241 
    242 if ( ! function_exists( 'rsssl_user_can_manage' ) ) {
    243     /**
    244      * Check if user has required capability
    245      * @return bool
    246      */
    247     function rsssl_user_can_manage() {
    248         if ( current_user_can('manage_security') ) {
    249             return true;
    250         }
    251 
    252         #allow wp-cli access to activate ssl
    253         if ( defined( 'WP_CLI' ) && WP_CLI ){
    254             return true;
     276
     277        $request_uri = $_SERVER['REQUEST_URI'];
     278
     279        // Check for a direct REST API path
     280        if (strpos($request_uri, '/reallysimplessl/v1/') !== false) {
     281            return is_user_logged_in();
     282        }
     283
     284        // Check for rest_route parameter with reallysimplessl (plain permalinks)
     285        if (strpos($request_uri, 'rest_route=') !== false &&
     286            strpos($request_uri, 'reallysimplessl') !== false) {
     287            return is_user_logged_in();
    255288        }
    256289
    257290        return false;
    258     }
    259 }
    260 
    261 if ( !function_exists('rsssl_admin_logged_in')){
    262     function rsssl_admin_logged_in(){
    263         $wpcli = defined( 'WP_CLI' ) && WP_CLI;
    264         return (is_admin() && rsssl_user_can_manage()) || rsssl_is_logged_in_rest() ||  wp_doing_cron() || $wpcli || defined('RSSSL_DOING_SYSTEM_STATUS') || defined('RSSSL_LEARNING_MODE');
    265     }
    266 }
    267 
    268 
    269 
    270 if ( !function_exists('rsssl_is_logged_in_rest')){
    271     function rsssl_is_logged_in_rest(){
    272         $valid_request = isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/reallysimplessl/v1/')!==false;
    273         if ( !$valid_request ) {
    274             return false;
    275         }
    276         return is_user_logged_in();
    277291    }
    278292}
  • really-simple-ssl/trunk/security.md

    r2944094 r3338863  
    55## Reporting a Vulnerability
    66
    7 To report a security issue, please [email us](mailto:security@really-simple-plugins.com) with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue.
    8 Please read our [Coordinated Vulnerability Disclosure Policy](https://really-simple-plugins.com/security) before reporting any vulnerabilities.
     7To report a security issue, please [email us](mailto:security@really-simple-ssl.com) with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue.
     8Please read our [Coordinated Vulnerability Disclosure Policy](https://really-simple-ssl.com/coordinated-vulnerability-disclosure-policy/) before reporting any vulnerabilities.
  • really-simple-ssl/trunk/security/wordpress/two-fa/repositories/class-rsssl-two-fa-user-repository.php

    r3301983 r3338863  
    9595        $daysThreshold = $params->getDaysThreshold();
    9696        foreach ($results as $user) {
    97             $wpUser    = get_userdata($user->ID);
     97            $wpUser = get_userdata($user->ID);
     98
     99            // Skip if user data is not available
     100            if (!$wpUser) {
     101                continue;
     102            }
     103
    98104            $twoFaUser = $this->factory->createFromWPUser(
    99105                $wpUser,
  • really-simple-ssl/trunk/security/wordpress/vulnerabilities.php

    r3301983 r3338863  
    192192                return;
    193193            }
    194            
     194
    195195            \security\wordpress\vulnerabilities\Rsssl_File_Storage::DeleteOldFiles();
    196196
     
    15731573                             __('Based on your settings, Really Simple Security will take appropriate action, or you will need to solve it manually.','really-simple-ssl') .' '.
    15741574                             sprintf(__('Get more information from the Really Simple Security dashboard on %s'), $this->domain() ),
    1575                 'url' => rsssl_admin_url( [], '#settings/vulnerabilities_notifications'),
     1575                'url' => rsssl_admin_url( [], '#settings/vulnerabilities/vulnerabilities-overview'),
    15761576            ];
    15771577        }
  • really-simple-ssl/trunk/settings/settings.php

    r3301983 r3338863  
    3939        if (strpos($url, '/'.$current_language.'/wp-json/')) {
    4040            $url = str_replace('/'.$current_language.'/wp-json/', '/wp-json/', $url);
     41        }
     42
     43        // Handle plain permalinks
     44        if (strpos($url, '/'.$current_language.'/?rest_route=')) {
     45            $url = str_replace('/'.$current_language.'/?rest_route=', '/?rest_route=', $url);
    4146        }
    4247    }
     
    247252 * @return void
    248253 */
    249 function rsssl_rest_api_fallback()
    250 {
    251     $response = $data = [];
    252     $error    = $action = $test = $do_action = false;
    253 
    254     if ( ! rsssl_user_can_manage()) {
    255         $error = true;
    256     }
    257     //if the site is using this fallback, we want to show a notice
    258     update_option('rsssl_ajax_fallback_active', time(), false);
    259     if (isset($_GET['rest_action'])) {
    260         $action = sanitize_text_field($_GET['rest_action']);
    261         if (strpos($action, 'reallysimplessl/v1/tests/') !== false) {
    262             $test = strtolower(str_replace('reallysimplessl/v1/tests/', '', $action));
    263         }
    264     }
    265     $requestData = json_decode(file_get_contents('php://input'), true);
    266     if ($requestData) {
    267         $action = $requestData['path'] ?? false;
    268         $action = sanitize_text_field($action);
    269         $data = $requestData['data'] ?? false;
    270         if (strpos($action, 'reallysimplessl/v1/do_action/') !== false) {
    271             $do_action = strtolower(str_replace('reallysimplessl/v1/do_action/', '', $action));
    272         }
    273     }
    274     if (!$error) {
    275         if (strpos($action, 'fields/get') !== false) {
    276             $response = rsssl_rest_api_fields_get();
    277         } else if (strpos($action, 'fields/set') !== false) {
    278             $request = new WP_REST_Request();
    279             $response = rsssl_rest_api_fields_set($request, $data);
    280         } else if ($test) {
    281             $request = new WP_REST_Request();
    282             $data = $_GET['data'] ?? false;
    283             $data = json_decode(stripcslashes($data));
    284             $data = (array)$data;
    285             $nonce = isset($_GET['nonce']) ? sanitize_text_field($_GET['nonce']) : false;
    286             $id = isset($_GET['id']) ? sanitize_text_field($_GET['id']) : false;
    287             $state = isset($_GET['state']) ? sanitize_title($_GET['state']) : false;
    288             $request->set_param('test', $test);
    289             $request->set_param('state', $state);
    290             $request->set_param('id', $id);
    291             $request->set_param('nonce', $nonce);
    292             //remove
    293             foreach ($_GET as $key => $value) {
    294                 $data[$key] = sanitize_text_field($value);
    295             }
    296             $response = rsssl_run_test($request, $data);
    297         } elseif ($do_action) {
    298             $request = new WP_REST_Request();
    299             $request->set_param('action', $do_action);
    300             $response = rsssl_do_action($request, $data);
    301         }
    302     }
    303     header("Content-Type: application/json");
    304     echo json_encode($response);
    305     exit;
    306 }
    307 
    308 add_action('wp_ajax_rsssl_rest_api_fallback', 'rsssl_rest_api_fallback');
    309 
    310254add_action('rest_api_init', 'rsssl_settings_rest_route', 10);
    311255function rsssl_settings_rest_route()
     
    364308}
    365309
    366 function rsssl_remove_fallback_notice()
    367 {
    368     if (get_option('rsssl_ajax_fallback_active') !== false) {
    369         delete_option('rsssl_ajax_fallback_active');
    370     }
    371 }
    372 
    373310/**
    374311 * @param WP_REST_Request $request
     
    383320    }
    384321
    385     if (!$ajax_data) {
    386         rsssl_remove_fallback_notice();
    387     }
    388322    $action = sanitize_title($request->get_param('action'));
    389323    $data = $ajax_data !== false ? $ajax_data : $request->get_params();
     
    537471    if (!rsssl_user_can_manage()) {
    538472        return [];
    539     }
    540     if (!$ajax_data) {
    541         rsssl_remove_fallback_notice();
    542473    }
    543474    $nonce = $request->get_param('nonce');
  • really-simple-ssl/trunk/settings/src/Dashboard/OtherPlugins/OtherPluginsHeader.js

    r3034542 r3338863  
    66            <div className="rsssl-grid-item-controls">
    77                <span className="rsssl-header-html">
    8                     <a className="rsp-logo" href="https://really-simple-plugins.com/"><img src={rsssl_settings.plugin_url+"assets/img/really-simple-plugins.svg"} alt="Really Simple Plugins"/></a>
     8                    <a className="rsp-logo" href="https://really-simple-ssl.com/about-us"><img src={rsssl_settings.plugin_url+"assets/img/really-simple-plugins.svg"} alt="Really Simple Plugins"/></a>
    99                </span>
    1010            </div>
  • really-simple-ssl/trunk/system-status.php

    r3198701 r3338863  
    306306    }
    307307
    308     do {
    309         if ( file_exists( $path . '/wp-config.php' ) ) {
    310             //check if the wp-load.php file exists here. If not, we assume it's in a subdir.
    311             if ( file_exists( $path . '/wp-load.php' ) ) {
    312                 return $path;
    313             } else {
    314                 //wp not in this directory. Look in each folder to see if it's there.
    315                 if ( file_exists( $path ) && $handle = opendir( $path ) ) { //phpcs:ignore
    316                     while ( false !== ( $file = readdir( $handle ) ) ) {//phpcs:ignore
    317                         if ( '.' !== $file && '..' !== $file ) {
    318                             $file = $path . '/' . $file;
    319                             if ( is_dir( $file ) && file_exists( $file . '/wp-load.php' ) ) {
    320                                 $path = $file;
    321                                 break;
    322                             }
    323                         }
    324                     }
    325                     closedir( $handle );
    326                 }
    327             }
    328 
    329             return $path;
     308    // Go up the directory tree looking for wp-load.php
     309    // This file is ALWAYS in the WordPress root
     310    $max_depth     = 10; // Prevent infinite loops
     311    $current_depth = 0;
     312
     313    while ( ! file_exists( $path . '/wp-load.php' ) ) {
     314        if ( ++ $current_depth > $max_depth ) {
     315            break;
    330316        }
    331     } while ( $path = realpath( "$path/.." ) ); //phpcs:ignore
     317
     318        $parent = dirname( $path );
     319        if ( $parent === $path ) {
     320            // We've reached the filesystem root
     321            break;
     322        }
     323        $path = $parent;
     324    }
     325
     326    // If we found wp-load.php, return the path
     327    if ( file_exists( $path . '/wp-load.php' ) ) {
     328        return $path;
     329    }
    332330
    333331    return false;
  • really-simple-ssl/trunk/upgrade.php

    r3310370 r3338863  
    245245    }
    246246
     247    // Delete the ajax fallback option as it is no longer used.
     248    if ( $prev_version && version_compare( $prev_version, '9.4.2.1', '<=' ) ) {
     249        delete_option('rsssl_ajax_fallback_active');
     250    }
     251
    247252    //don't clear on each update.
    248253    //RSSSL()->admin->clear_admin_notices_cache();
Note: See TracChangeset for help on using the changeset viewer.