Vervang eval eens door een echo, en je weet wat het uitvoert. ;-)
Het ziet er naar uit dat het een script is die als 'shell' dient waarbij iemand via een POST-command een eigen code kan uitvoeren, zolang er wordt voldaan een geheime key.
Ik zou voor de zekerheid je passwords resetten, de logs door (laten) spitten en een backup terugzetten als dit bestand er opeens zomaar staat.
De vraag is nu alleen hoe degene toegang tot je server kon krijgen? Dat zou ik wel laten uitzoeken voor het geval die 'hacker' weer toegang tot je server probeert te krijgen.
Ik zou voor de zekerheid je passwords resetten, de logs door (laten) spitten en een backup terugzetten als dit bestand er opeens zomaar staat.
Specifiek: de passwords van alle mogelijke manieren om een verbinding te maken met je webaccount (Secure Shell, FTP, controlepaneel et cetera).
Ook doe je er verstandig aan om alle directories readonly te maken en deze te doorzoeken op bestanden die er niet thuishoren, mogelijk staan er nu op meerdere plaatsen scripts die hetzelfde doen.
En als je gebruik maakt van een pakket als Joomla, WordPress of wat dan ook: gebruik je vage plugins of modules en/of wanneer was de laatste keer dat je dit pakket of componenten hiervan hebt geupdate?
Mogelijk zit er dus niet een lek in je account maar in reeds aanwezige, en ondertussen verouderde, software. Heeft je hostingpartij toevallig onlangs een update gedaan van je webserver (PHP of MySQL versie of iets anders)? Mogelijk is jouw software dan lek geraakt doordat deze anders werkt of verouderd is ten opzichte van de aansturende programma's (zoals PHP en MySQL).
Een andere optie is natuurlijk dat je inhouse code onveilig is, en dat hier iets in wordt uitgebuit. In dat geval kan een code review misschien ook geen kwaad.
Hoe dan ook.
Voordat je je band probeert te plakken moet je eerst weten waar het lek / de lekken zitten.