Support » Plugin vragen » PHP Execution not updated for a long time

  • Dear reader

    Recently my site has been hacked. This is solved (for much money) by my serviceprovider. They installed Wordfence for me so I can do my own checks. How hackers came in is not known but Wordfence warns me now for plugins that have not been updated for a long time. Among them PHP Execution.

    I am very content with this plugin but these warnings do worry me.
    I have PHP Execution version 1.0.0. installed, last update/release 10 years ago.

    My question is, should I be worried about this plugin, and if so what new(er) plugin(s) is/are advised with the same functionality?

    Regards
    Rudolph Smits (Netherlands)

    http://www.magoster.nl is a site via which my holiday home can be rented.
    – my status is non-professional.

    De pagina waar ik hulp bij nodig heb: [log in om de link te zien]

12 reacties aan het bekijken - 1 tot 12 (van in totaal 12)
  • Hoi Rudolph,

    Dit is het Nederlandse support forum, de voertaal is hier dan ook Nederlands 🙂

    Ik zou een dergelijke plugin inclusief vergelijkbare plugins ten zeerste afraden, ongeacht de leeftijd van de plugin.

    De kans dat er misbruik van gemaakt wordt is groot. De kans dat er ene beveiligingslek mee gecreëerd wordt (onbedoeld) ook.

    Dankjewel Richard maar voor mij is gebruik van PHP min of meer noodzakelijk. Ik zet dagelijks actuele gegevens in php-files (als beschikbaarheid vakantiehuis, aanbiedingen en recensies) die vanuit de wp-pagina’s dan ingelezen worden. Dagelijks vele wp-pagina’s aanpassen is geen optie.

    Hoewel je vast gelijk hebt zijn er ongetwijfeld vele duizenden sites die php uitvoeren. Er zal dan toch vast wel een actuele plugin zijn die dat faciliteren kan?

    PHP hoort in het thema of plugin bestanden.
    HTML kan prima in de site.

    Ik weet niet of de naam van de plugin ‘Exec-PHP’ is of wat de precieze naam is, maar er zijn er in ieder geval een aantal vanuit de WordPress.org repo verwijderd wegens security problemen.

    Richard

    Ik vind inderdaad geen enkele php plugin meer die mij die faciliteit biedt. Ik heb indertijd voor php gekozen omdat informatie op de pagina dan zichtbaar is voor Google. Daarvoor waren het javascript functies. Terug gaan naar javascript is een grote klus en voelt als een enorme achteruitgang. Ik moet hier ernstig over nadenken.

    Er is overigens geen enkel php-bestand meer waarin wachtwoorden zijn opgenomen, die zijn onlangs alle verwijderd.

    Dank en groet
    Rudolph Smits

    Moderator Jeroen Rotty

    (@jeroenrotty)

    Support Moderator

    Kun je meer uitleg geven over wat jij precies hebt met die PHP Execution wilt bereiken of wat je er mee doet? Die plugin vind ik in ieder geval niet meer in de repo dus ik kan ook niet achterhalen wat de plugin voor jou doet. De plugin blijven gebruiken is echt af te raden.

    Los daarvan kun je zelf toch je php schrijven in page/post templates in een childthema of een eigen plugin met enkel die php code die je nodig hebt?

    Graag iets meer uitleg.

    Groet,
    Jeroen

    Jeroen
    Ik heb een vakantiehuis in de Ardennen dat ik verhuur. Gaandeweg kwamen daar anderen bij (www.vakantiehuisverhuur.eu). Ik heb WP html-pages die de steeds wijzigende informatie als beschikbaarheid, aanbiedingen en evaluaties per huis uit een php-files halen. In de laatste staan alleen functions. Ik koos voor php-files (en dus buiten de html) opdat ik die via 1 dos-batfile dagelijks kan uploaden. In blogs gebruik ik géén php.

    Ik gebruik thema Twenty-Seventeen. Ik ben een amateur die alles zichzelf heeft aangeleerd. Nu begrijp ik helaas niet wat je bedoelt met:

    “Los daarvan kun je zelf toch je php schrijven in page/post templates in een childthema of een eigen plugin met enkel die php code die je nodig hebt?”

    Ik heb die plugin PHP Execution toch nodig om überhaupt php in html uit te kunnen voeren? Wat kan het thema mij hier dan mogelijk bieden?

    Groet, Rudolph

    Moderator Jeroen Rotty

    (@jeroenrotty)

    Support Moderator

    Ik heb je reactie enkele keren gelezen, maar toch snap ik het probleem nog steeds niet…

    WordPress draait op PHP en je kunt dus toch PHP schrijven in een eigen plugin of zelfs in je eigen (custom) theme/childthema, zelfs HTML kun je ook in PHP files verwerken hé, dus ik zie het probleem nog niet helder, kan ook aan mij liggen.

    Groet,
    Jeroen

    Inline php executie — als dat bedoeld wordt — is niet het meest veilige, maar soms makkelijker dan schrijven van een plugin in WP. Dit is een goede: https://wordpress.org/plugins/insert-php/

    Als de code die je gebruikt in de /php/ map ook 10 jaar oud is? Wordt het wellicht wel tijd om die te herschrijven i.v.m. nieuwere php versies, en dan is de stap naar een WP plugin ook niet heel erg groot. Anders ligt diverse narigheid namelijk opnieuw op de loer. Het komt vrij vaak voor namelijk dat diverse php code buiten de WP site om juist zorgt voor hacks.

    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.

    @jeroen en @rhyker2u

    Dank voor jullie reacties. Ik zal proberen uit te leggen wat de situatie is.

    Ik verhuur een aantal vakantiehuizen. Er is 1 algemene huispagina die per huis bij opvraag specifiek wordt gemaakt voor bijv. vrij perioden, aanbiedingen, tarieven, etc. door per gegeven een php-function aan te roepen. Daarvoor heb ik per huis een php-file met uitsluitend functions.

    Die algemene huispagina bestaat dus uit html die meermalen onderbroken wordt door bijv. <?php function vrij_perioden() ?> en soortgelijke aanroepen. Om dat te kunnen doen heb ik de plugin PHP Execution nodig. Wanneer ik die plugin de-activeer werkt het niet.

    Stel dat ik zoiets nú zou willen maken, hoe maak ik dan die php-aanroepen mogelijk nu er geen php-plugin meer beschikbaar lijkt?

    Overigens, lang geleden waren dat javascript-functions maar die vertragen nu de opbouw op een device terwijl de inhoud voor Google onzichtbaar is.

    Ik hoop dat ik de situatie nu beter heb duidelijk gemaakt. Zou ik dan mogelijk terug moeten naar een javascript-oplossing?

    ============
    Dit is de site die wellicht beter aangeeft dat/wat ik verhuur.

    dat was me al duidelijk 😉 antwoord ook al gegeven. Maar e.e.a. klinkt heel herkenbaar dus zal uitvoeriger reageren.

    WordPress is geen statisch gegeven, maar een collectie van PHP code die op basis van een gegevensbron (de mysql WP database), html-pagina’s met CSS content serveert naar de internet browser. Op eenzelfde manier als je vakantiehuis scripts dat doen. Wat je dus al die jaren gedaan hebt is php code uitvoeren in ‘een html’ die opgesteld wordt door php code. De response van iedere developer is dan ook logisch: “waarom niet …?!”. Tja waarom wel? Als het het al die jaren deed, dan waarom is dat nu niet meer verstandig (of eigenlijk nooit geweest)? De tekst content die je in een WP editor invoert — met of zonder opmaak — wordt gefilterd opgeslagen en gefilterd weergeven t.b.v. o.a. beveiliging. Je kan dus niet zomaar van alles invoeren, ookal lijkt dat vaak wel zo. En daar zijn duidelijke redenen voor. Om vervolgens toch PHP code uit te voeren vanuit in de editor opgeslagen pagina, is dus een interpreter nodig. Die heb je weliswaar, maar wil je die vervangen door een plugin die nog regelmatig onderhoud geniet; installeer & activeer dan de bijvoorbeeld “insert php”-plugin op de al benoemde link, navigeer vanuit je WP backend naar “Woody Snippets” -> “Settings”, 4e optie op “on”, en save. Dan vervang je in je ‘html’ de “<?php” door “[insert_php]” + “?>” door “[/insert_php]”. En het werkt weer als vanouds, en ondanks je dan voldoet aan WordFence’s eis en die van jezelf m.b.t. recentere plugin, heb je vervolgens nogsteeds een potentieel gapend security gat. In theorie kan iedereen op je site dan op die manier php code invoeren (reactie / commentaar veld bijvoorbeeld) en rechtstreeks contact zoeken met je database via basic php / mysql syntax die alle beveiliging en consistentie checks van WP omzeilt. WP is zo sterk als de zwakste schakel. Waarbij het injecteren van eigen code via een omweg en het faciliteren in die mogelijkheid via een plugin optie (omdat het makkelijker lijkt) de allerzwakste is. En toch doen ‘we’ (ik ook) het, omdat het makkelijker is / leek vanuit historisch opzicht. Daar weten hackers dus vaak wel raad mee. Het geeft in feite eenzelfde effect als nooit meer WP updaten. Dus de discussie is niet zozeer of een vervanging is van een oude plugin, maar zou moeten zijn: hoe je een betere scheiding maakt tussen server-side sourcecode en editor content.

    Wat ik eerst zou doen als ik jou was — m.b.t. niet hebben kunnen achterhalen hoe je gehacked bent — is de ondersteenste steen bovenkrijgen wat de gegevensbron is van je vakantiehuis script. Als dat een text bestand is? Prima. Is dat een mysql tabel (en lijkt erop van wel op basis van huisuitrol_huis_pw.php)? Zorg er dan i.i.g. voor dat dat niet dezelfde database is als die van WP + ook niet eenzelfde wachtwoord (mocht dat zo zijn).

    Tweede stap is niet langer gebruik te maken van ‘PHP execution’. Het lijkt me ook niet nodig eigenlijk. In alle gevallen genereer je content op basis van formulier parameters, toch? Dus stop de content generatie in externe php bestanden met parameters zoals dat ook al het geval is voor 10weken.php, die je op haar beurt aanroept met javascript zoals dat nu ook al plaats lijkt te vinden. Zodat de aanroep vanuit WP eenvoudiger wordt. Het eerdere genoemde Woody Snippets biedt dus (sindskort blijkbaar) mogelijkheden om op een nettere manier om te gaan met ‘inline’ php code d.m.v. php snippets aan te roepen met shortcodes. of maak gebruik van https://wordpress.org/plugins/my-custom-functions/ als tussenoplossing richting (child) thema / functions.php / volwaardige https://codex.wordpress.org/Writing_a_Plugin . Voorbeelden over hoe je shortcodes maakt vind je hier: https://codex.wordpress.org/Shortcode_API

    M.b.t. de stelling dat de inhoud onzichtbaar is voor Google; HTML en javascript is client side en dus zichtbaar vanuit de browser. Anders had ik ook geen uitspraken kunnen doen over de /php/ folder en huidige scripts. En enkele van die scripts maken gebruik van incorrecte CSS en relatieve i.p.v. absolute URLs met als gevolg een 404. Vind Google minder leuk, maar het is ook een indicatie dat iets wat best aardig werkt misschien onder de loep moet worden genomen hoe het in het heden ook kan. Onafhankelijk van of het de oorzaak was van je hack.

    Mijn samenvattend advies: je kan het voorlopig ook laten zoals het is en regelmatiger backups te maken met b.v. UpdraftPlus. Don’t fix what ain’t broken, maar ideaal is anders. Huur een developer in, scheelt een hoop gedoe en onzekerheden. Ook met in het achterhoofd dat er tegenwoordig heel veel moois mogelijk is dankzij kant-en-klare plugins voor boekingen / reserveringen binnen je website waarbij je dan zelf geen rekening hoeft te houden met automagisering, browser compatibiliteit (CSS en responsiveness), technische SEO, of simpelweg bouncerate i.v.m. verwijzen naar andere sites om een vakantieverblijf te boeken. En het vanuit dat opzicht beter is om (zelf) je vakantiehuis gegevensbronnen wellicht te herschrijven naar JSON/XML datafeeds voor importeren in nieuwere plugins. Kost een investing qua tijd en geld, maar levert ook meer op.

    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u. Reden: typo alert
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  rhyker2u.

    @rhyker2u

    Dank voor je uitgebreide reactie.

    Wat betreft de wachtwoorden: het WP-wachtwoord verschilt van het DirectAdmin-wachtwoord = het wachtwoord van die MySQL-tabellen. DirectAdmin heb ik nu ook beveiligd met Two Factor Verification. De wachtwoorden om mijn MySQL-tabellen te benaderen heb ik uit mijn eigen files met mijn eigen php functions gehaald, die worden daar middels een parameter aan doorgegeven. Ik meen dat ik met dit alles redelijk veilig ben. Ben je het daar mee eens?

    Dan PHP-Execution inruilen van Insert-PHP heeft vermoedelijk weinig tot geen veiligheidswinst omdat het inbreken m.b.v. eigen php blijft bestaan begrijp ik.

    Daarom, ik denk er over om dan helemaal maar over te schakelen op javascript. Dat betekent langere opbouwtijden op devices maar dat moet dan maar. Dat is heel veel werk en de komende tijd begin ik met het maken JS-files met de variabele gegevens per huis.

    Ik maak gebruik van JQuery-opdrachten, mag ik hopen dat dat blijft werken na de-activatie van PHP-Execution?

    Tot slot: onjuiste relatieve urls? Die zoek ik op! Dank!

    Rudolph Smits

    Je stuurt je enige MySQL wachtwoord open en bloot in plain tekst mee als parameter in javascript? waarmee iedereen dus kan inloggen op je phpmyadmin met ook volledige toegang op de databases van beide WP sites (geen directadmin voor nodig)? Het is duidelijk dat je scripten leuk vind, maar ik zou echt willen aanbevelen om het uit te besteden.

12 reacties aan het bekijken - 1 tot 12 (van in totaal 12)