<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>PHP SOS: Blog and expert articles</title><subtitle>PHP2Shell, server security and emergency help</subtitle><link href="https://phpsos.de/en/feed.xml" rel="self"/><link href="https://phpsos.de/en/"/><id>https://phpsos.de/en/</id><updated>2026-10-25T08:00:00+01:00</updated><author><name>PHP SOS</name></author><entry><title>PHP2Shell: What Is Confirmed and What Is Not</title><link href="https://phpsos.de/en/blog/php2shell-was-belegt-ist/"/><id>https://phpsos.de/en/blog/php2shell-was-belegt-ist/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP2Shell facts checked: which claims php.net, the BSI and vendors confirm, what is only reported, and which rumours you can safely ignore.</summary></entry><entry><title>Why the PHP Vulnerability Became Known Before the Patch</title><link href="https://phpsos.de/en/blog/php-luecke-vorzeitig-bekannt/"/><id>https://phpsos.de/en/blog/php-luecke-vorzeitig-bekannt/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>Why the PHP vulnerability became known before the patch: how embargoes work, what happened on 20 October and what operators can learn for patching.</summary></entry><entry><title>Authorities Take Websites Offline: What Companies Can Learn</title><link href="https://phpsos.de/en/blog/behoerden-webseiten-offline/"/><id>https://phpsos.de/en/blog/behoerden-webseiten-offline/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>Authorities took websites offline as a precaution over PHP2Shell. What lies behind it, when a shutdown makes sense and how companies can prepare for one.</summary></entry><entry><title>BSI Warning Level Orange: What the Rating Means</title><link href="https://phpsos.de/en/blog/bsi-warnstufe-orange-erklaert/"/><id>https://phpsos.de/en/blog/bsi-warnstufe-orange-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>BSI warning level orange explained: what the four levels mean, why PHP2Shell counts as business-critical and which decisions companies need to make now.</summary></entry><entry><title>What CERT-EU and CERT-Bund Advise on PHP2Shell</title><link href="https://phpsos.de/en/blog/cert-eu-empfehlungen-php/"/><id>https://phpsos.de/en/blog/cert-eu-empfehlungen-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>What CERT-EU, CERT-Bund and the BSI advise on PHP2Shell, where their recommendations overlap and how to isolate publicly reachable PHP applications.</summary></entry><entry><title>Cloudflare Protection Rules Against PHP2Shell: What They Do and Do Not Do</title><link href="https://phpsos.de/en/blog/cloudflare-waf-php2shell/"/><id>https://phpsos.de/en/blog/cloudflare-waf-php2shell/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>Cloudflare has protected against PHP2Shell with WAF rules since 21 October. What the rules cover, where they can be bypassed and what to check now.</summary></entry><entry><title>22.6 Million Exposed Instances: Reading the Figures Correctly</title><link href="https://phpsos.de/en/blog/exponierte-instanzen-einordnen/"/><id>https://phpsos.de/en/blog/exponierte-instanzen-einordnen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>22.6 million instances, 2.24 million hosts: how many servers PHP2Shell affects, why the figures differ and what they mean for your company.</summary></entry><entry><title>PHP2Shell in Five Minutes: Briefing for Management</title><link href="https://phpsos.de/en/blog/php2shell-briefing-geschaeftsfuehrung/"/><id>https://phpsos.de/en/blog/php2shell-briefing-geschaeftsfuehrung/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP2Shell in five minutes: the situation, the business risk, five questions for your IT team and the decisions managing directors should make today.</summary></entry><entry><title>The PHP Security Vulnerability Explained Simply</title><link href="https://phpsos.de/en/blog/php-luecke-einfach-erklaert/"/><id>https://phpsos.de/en/blog/php-luecke-einfach-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>The PHP vulnerability explained simply: what PHP is, what goes wrong with PHP2Shell, what the technical terms mean and what website operators should do now.</summary></entry><entry><title>PHP2Shell: 15 Questions from Hosting Customers</title><link href="https://phpsos.de/en/blog/fragen-von-hosting-kunden/"/><id>https://phpsos.de/en/blog/fragen-von-hosting-kunden/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP vulnerability and hosting: 15 questions from hosting customers about PHP2Shell, with short answers on responsibility, version display, proof and suspected cases.</summary></entry><entry><title>Why a WordPress Update Does Not Help Against PHP2Shell</title><link href="https://phpsos.de/en/blog/warum-wordpress-update-nicht-hilft/"/><id>https://phpsos.de/en/blog/warum-wordpress-update-nicht-hilft/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>Why a WordPress update does not help against the PHP vulnerability PHP2Shell, which layer really counts and what WordPress operators should check instead.</summary></entry><entry><title>PHP2Shell and Log4Shell: What the Vulnerabilities Have in Common</title><link href="https://phpsos.de/en/blog/php2shell-und-log4shell/"/><id>https://phpsos.de/en/blog/php2shell-und-log4shell/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP2Shell and Log4Shell compared: what links the vulnerabilities, where they differ and which lessons from 2021 companies can use today.</summary></entry><entry><title>Mass Scans for Unpatched PHP: How Automated Attacks Work</title><link href="https://phpsos.de/en/blog/automatisierte-massenscans/"/><id>https://phpsos.de/en/blog/automatisierte-massenscans/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>Automated attacks on web servers: how mass scans for unpatched PHP work, why small companies are targets too and what you can do to protect yourself.</summary></entry><entry><title>The Time Window Between Patch and Attack</title><link href="https://phpsos.de/en/blog/zeitfenster-patch-angriff/"/><id>https://phpsos.de/en/blog/zeitfenster-patch-angriff/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>The time window between patch and attack explained: the phases with PHP2Shell, how to measure your own window and which steps shorten it.</summary></entry><entry><title>After PHP2Shell: Why Further Announcements Are Likely</title><link href="https://phpsos.de/en/blog/weitere-php-meldungen/"/><id>https://phpsos.de/en/blog/weitere-php-meldungen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>After PHP2Shell, further PHP announcements are likely. How to tell, which sources to watch and how your team can respond in a prepared way.</summary></entry><entry><title>PHP2Shell: The Situation Report for the First Week</title><link href="https://phpsos.de/en/blog/lagebild-erste-woche/"/><id>https://phpsos.de/en/blog/lagebild-erste-woche/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP2Shell latest: what is confirmed after one week, how the BSI and CERTs assess the situation, what is known about attacks and what operators should check.</summary></entry><entry><title>Dangerous Bad Advice on PHP2Shell That Is Circulating Right Now</title><link href="https://phpsos.de/en/blog/gefaehrliche-falschtipps/"/><id>https://phpsos.de/en/blog/gefaehrliche-falschtipps/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Situation and assessment"/><summary>PHP2Shell tips fact-checked: which circulating advice does not protect or even does harm, and what php.net, the BSI and specialist authors advise instead.</summary></entry><entry><title>Changing the PHP Version in the Hosting Customer Area</title><link href="https://phpsos.de/en/blog/php-version-hosting-aendern/"/><id>https://phpsos.de/en/blog/php-version-hosting-aendern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Change the PHP version in hosting without putting the website at risk: preparation, the right target version, testing after the switch and the way back.</summary></entry><entry><title>Debian and Ubuntu: Is My PHP Package Patched?</title><link href="https://phpsos.de/en/blog/debian-ubuntu-paket-gepatcht/"/><id>https://phpsos.de/en/blog/debian-ubuntu-paket-gepatcht/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Is your PHP package on Debian or Ubuntu patched against PHP2Shell? Corrected package versions per release, check commands and typical pitfalls for admins.</summary></entry><entry><title>RHEL, AlmaLinux and Rocky Linux: Checking the PHP Patch</title><link href="https://phpsos.de/en/blog/rhel-almalinux-rocky-php/"/><id>https://phpsos.de/en/blog/rhel-almalinux-rocky-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Check the PHP patch on RHEL, AlmaLinux and Rocky: what Red Hat reports on PHP2Shell, how to query errata, changelog and modules, and how to restart correctly.</summary></entry><entry><title>The sury.org Repository: PHP Packages from a Third-Party Source</title><link href="https://phpsos.de/en/blog/sury-repository-php/"/><id>https://phpsos.de/en/blog/sury-repository-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>The sury PHP repository for Debian and Ubuntu: who maintains it, how it differs from Debian, how to check the PHP2Shell status and when it becomes a risk.</summary></entry><entry><title>The Remi Repository: Keeping PHP Current on RHEL Systems</title><link href="https://phpsos.de/en/blog/remi-repository-php/"/><id>https://phpsos.de/en/blog/remi-repository-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>The Remi PHP repository on RHEL, AlmaLinux and Rocky: understand module streams and SCL packages, check the PHP2Shell status and restart every version.</summary></entry><entry><title>Why php -v Shows the Same Number After the Update</title><link href="https://phpsos.de/en/blog/php-v-zeigt-alte-nummer/"/><id>https://phpsos.de/en/blog/php-v-zeigt-alte-nummer/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>php -v shows the same version number after the update? Why backports cause this, when it is harmless, when it is a warning sign and how to clarify it.</summary></entry><entry><title>Proving CVE Numbers in the Package Changelog</title><link href="https://phpsos.de/en/blog/cve-im-changelog-nachweisen/"/><id>https://phpsos.de/en/blog/cve-im-changelog-nachweisen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Check a CVE in the changelog and prove the PHP patch: where changelogs are stored, how to search them, what a missing entry means and what solid proof looks like.</summary></entry><entry><title>Switching Hosting Providers After a Security Incident: What to Look For</title><link href="https://phpsos.de/en/blog/hoster-wechseln-nach-vorfall/"/><id>https://phpsos.de/en/blog/hoster-wechseln-nach-vorfall/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Switching hosting providers after a security incident: the right order, securing evidence, moving only clean data and vetting the new provider on security.</summary></entry><entry><title>Multiple PHP Versions on One Server: Patch Each One Separately</title><link href="https://phpsos.de/en/blog/mehrere-php-versionen-server/"/><id>https://phpsos.de/en/blog/mehrere-php-versionen-server/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Multiple PHP versions on one server: find every installation, clarify origin and responsibility, patch each one separately, restart it and document the proof.</summary></entry><entry><title>Switching Off Old PHP Versions in the Hosting Panel</title><link href="https://phpsos.de/en/blog/alte-php-versionen-abschalten/"/><id>https://phpsos.de/en/blog/alte-php-versionen-abschalten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Disable old PHP versions without breaking websites: identify usage, block first, then uninstall. With tested steps for Plesk.</summary></entry><entry><title>Plesk: Understanding PHP Handlers (FPM, FastCGI, Apache Module)</title><link href="https://phpsos.de/en/blog/plesk-php-handler/"/><id>https://phpsos.de/en/blog/plesk-php-handler/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Plesk PHP handlers compared: FPM, Dedicated FPM, FastCGI and the Apache module from a security view, with notes on PHP2Shell, nginx and .htaccess.</summary></entry><entry><title>CloudLinux and alt-php: What Hosting Customers Should Know</title><link href="https://phpsos.de/en/blog/cloudlinux-alt-php/"/><id>https://phpsos.de/en/blog/cloudlinux-alt-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>CloudLinux alt-php and PHP2Shell: which PHP version your account uses, who patches the alt-php packages and which questions to put to your hoster now.</summary></entry><entry><title>PHP on NAS, Firewalls and Appliances: The Forgotten Systems</title><link href="https://phpsos.de/en/blog/php-auf-nas-und-appliances/"/><id>https://phpsos.de/en/blog/php-auf-nas-und-appliances/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>PHP vulnerability on NAS, firewalls and appliances: which devices can use PHP, how to find them and what to do until the firmware update is available.</summary></entry><entry><title>PHP at Cloud and PaaS Providers: Who Patches the Runtime?</title><link href="https://phpsos.de/en/blog/paas-php-laufzeit/"/><id>https://phpsos.de/en/blog/paas-php-laufzeit/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>PHP update on PaaS and cloud platforms: who patches the PHP runtime, why a new build is often needed and how to prove the version that is actually serving.</summary></entry><entry><title>Official PHP Docker Images: Tags, Digests and Rebuilds</title><link href="https://phpsos.de/en/blog/offizielle-php-docker-images/"/><id>https://phpsos.de/en/blog/offizielle-php-docker-images/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>PHP Docker image tags explained: version tags, variants such as fpm and apache, digests, and how to check before use whether an image closes PHP2Shell.</summary></entry><entry><title>CI/CD: Rebuilding PHP Images Automatically</title><link href="https://phpsos.de/en/blog/php-images-in-ci-neu-bauen/"/><id>https://phpsos.de/en/blog/php-images-in-ci-neu-bauen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Rebuild Docker images automatically: scheduled builds, a version check in the pipeline and rollout by digest, so that PHP patches reliably reach production.</summary></entry><entry><title>Long-Term Support for Old PHP Versions: Options and Limits</title><link href="https://phpsos.de/en/blog/langzeitsupport-alte-php-versionen/"/><id>https://phpsos.de/en/blog/langzeitsupport-alte-php-versionen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>PHP extended support for 8.1 and older: which routes exist, what providers must confirm in writing and why long-term support is only a bridge.</summary></entry><entry><title>Updating PHP on Windows</title><link href="https://phpsos.de/en/blog/php-unter-windows-aktualisieren/"/><id>https://phpsos.de/en/blog/php-unter-windows-aktualisieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hosting and distributions"/><summary>Update PHP on Windows: pick the right variant, verify the download by SHA-256, carry over php.ini and watch out for Apache module mode with PHP2Shell.</summary></entry><entry><title>Warning Sign: The Web Server Starts a Shell</title><link href="https://phpsos.de/en/blog/webserver-startet-shell/"/><id>https://phpsos.de/en/blog/webserver-startet-shell/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>PHP-FPM or Apache starting a shell? How to read the process tree, separate harmless cases from break-in traces and monitor the pattern permanently.</summary></entry><entry><title>Finding Suspicious Processes on Linux Servers</title><link href="https://phpsos.de/en/blog/verdaechtige-prozesse-linux/"/><id>https://phpsos.de/en/blog/verdaechtige-prozesse-linux/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Find suspicious processes on Linux: spot deleted program files, disguised names and start locations, match processes to packages and secure traces.</summary></entry><entry><title>Detecting Hidden Cron Jobs as a Backdoor</title><link href="https://phpsos.de/en/blog/cronjobs-als-hintertuer/"/><id>https://phpsos.de/en/blog/cronjobs-als-hintertuer/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Detect a cron job backdoor: check every place for scheduled tasks on Linux, interpret suspicious entries and secure what you find before you delete it.</summary></entry><entry><title>Finding Recently Changed Files on the Web Server</title><link href="https://phpsos.de/en/blog/geaenderte-dateien-finden/"/><id>https://phpsos.de/en/blog/geaenderte-dateien-finden/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Find changed files on Linux: interpret time windows with find, mtime and ctime correctly, compare against packages and backups and filter out false alarms.</summary></entry><entry><title>PHP Files in the Upload Folder: Interpreting the Finds Correctly</title><link href="https://phpsos.de/en/blog/php-dateien-im-upload-ordner/"/><id>https://phpsos.de/en/blog/php-dateien-im-upload-ordner/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>PHP file found in the uploads folder? How to interpret the find, check access in the log, tell harmless placeholders from webshells and act correctly.</summary></entry><entry><title>Recognizing Obfuscated PHP Code</title><link href="https://phpsos.de/en/blog/verschleierter-php-code/"/><id>https://phpsos.de/en/blog/verschleierter-php-code/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>eval, base64_decode and more: how to recognize obfuscated PHP code, search for it safely and tell legitimate encoders apart from malicious code.</summary></entry><entry><title>Checking a Server&#x27;s Outgoing Connections</title><link href="https://phpsos.de/en/blog/ausgehende-verbindungen-pruefen/"/><id>https://phpsos.de/en/blog/ausgehende-verbindungen-pruefen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Check a server&#x27;s outgoing connections: match processes with ss and lsof, assess unknown destinations and limit data leaks with egress filtering.</summary></entry><entry><title>Finding Rogue Admin Accounts in the CMS and on the Server</title><link href="https://phpsos.de/en/blog/fremde-admin-konten-finden/"/><id>https://phpsos.de/en/blog/fremde-admin-konten-finden/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Find rogue admin accounts: how to check CMS, hosting panel, Linux server and database for unknown access and handle what you find correctly.</summary></entry><entry><title>Finding and Removing Unknown SSH Keys</title><link href="https://phpsos.de/en/blog/ssh-schluessel-pruefen/"/><id>https://phpsos.de/en/blog/ssh-schluessel-pruefen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Check authorized_keys: where SSH keys live on the server, how to spot foreign entries, remove them safely and harden SSH access afterward.</summary></entry><entry><title>Crypto Miner on the Web Server: Signs and Procedure</title><link href="https://phpsos.de/en/blog/kryptominer-auf-dem-server/"/><id>https://phpsos.de/en/blog/kryptominer-auf-dem-server/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Recognize a crypto miner on the server: check constant load, foreign processes, connections and restart mechanisms, secure traces and close the cause.</summary></entry><entry><title>The Server Is Sending Spam: Finding the Causes</title><link href="https://phpsos.de/en/blog/server-verschickt-spam/"/><id>https://phpsos.de/en/blog/server-verschickt-spam/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Your server is sending spam? How to find the source in the mail queue, PHP scripts and mailboxes, stop the sending and get off blocklists.</summary></entry><entry><title>SEO Spam and Foreign Pages in the Google Index</title><link href="https://phpsos.de/en/blog/seo-spam-im-google-index/"/><id>https://phpsos.de/en/blog/seo-spam-im-google-index/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>SEO spam after a hack: how to spot foreign pages in the Google index, find out where they are generated and clean up the index for good.</summary></entry><entry><title>The Website Redirects to Foreign Sites</title><link href="https://phpsos.de/en/blog/website-leitet-um/"/><id>https://phpsos.de/en/blog/website-leitet-um/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Your website redirects to foreign sites? Check DNS, CDN, web server, PHP code, database and external scripts layer by layer to find the cause.</summary></entry><entry><title>Preserve Evidence Before You Rebuild the Server</title><link href="https://phpsos.de/en/blog/beweise-sichern-vor-neuinstallation/"/><id>https://phpsos.de/en/blog/beweise-sichern-vor-neuinstallation/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Preserving evidence before a reinstall: which traces on the server are volatile, in what order to secure them and how to keep the copy reliable.</summary></entry><entry><title>Building the Timeline of an Incident</title><link href="https://phpsos.de/en/blog/zeitleiste-eines-vorfalls/"/><id>https://phpsos.de/en/blog/zeitleiste-eines-vorfalls/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Build an IT incident timeline: use sources and time zones correctly and mark every statement as documented, probable or unknown.</summary></entry><entry><title>Comparing CMS Core Files With the Original</title><link href="https://phpsos.de/en/blog/cms-kerndateien-vergleichen/"/><id>https://phpsos.de/en/blog/cms-kerndateien-vergleichen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Compare CMS core files with the original: checksums, a clean reference state and diff explained for WordPress, Composer projects and system packages.</summary></entry><entry><title>Checking the Database for Injected Code</title><link href="https://phpsos.de/en/blog/datenbank-auf-schadcode-pruefen/"/><id>https://phpsos.de/en/blog/datenbank-auf-schadcode-pruefen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Check your database for malicious code: find injected scripts, foreign addresses, triggers and accounts with read-only queries, without destroying data.</summary></entry><entry><title>Website Malware Scanners: What They Find and What They Don&#x27;t</title><link href="https://phpsos.de/en/blog/grenzen-von-malware-scannern/"/><id>https://phpsos.de/en/blog/grenzen-von-malware-scannern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Detection and forensics"/><summary>Website malware scanners: what external, plugin and server scanners detect, where their limits lie and why “nothing found” does not mean clean.</summary></entry><entry><title>Isolating PHP-FPM Pools per Website</title><link href="https://phpsos.de/en/blog/php-fpm-pools-isolieren/"/><id>https://phpsos.de/en/blog/php-fpm-pools-isolieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Isolate PHP-FPM pools per website: check existing pools, protect sockets, limit extensions, hide status pages and set limits for each pool.</summary></entry><entry><title>Setting memory_limit Correctly</title><link href="https://phpsos.de/en/blog/memory-limit-richtig-setzen/"/><id>https://phpsos.de/en/blog/memory-limit-richtig-setzen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Set PHP memory_limit correctly: what the value does, where it applies, what php.net advises for PHP2Shell for now and what should apply after the update.</summary></entry><entry><title>Sensibly Limiting post_max_size and upload_max_filesize</title><link href="https://phpsos.de/en/blog/post-max-size-upload-limits/"/><id>https://phpsos.de/en/blog/post-max-size-upload-limits/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Limit post_max_size and upload_max_filesize: how they interact with web server limits, php.net&#x27;s interim values for PHP2Shell and typical error symptoms.</summary></entry><entry><title>Disabling session.upload_progress: Correctly and Permanently</title><link href="https://phpsos.de/en/blog/session-upload-progress-abschalten/"/><id>https://phpsos.de/en/blog/session-upload-progress-abschalten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Set session.upload_progress.enabled=0 correctly: where the value takes effect, how to lock it against being re-enabled and how to verify it safely in the web context.</summary></entry><entry><title>expose_php and Server Headers: Hiding Version Information</title><link href="https://phpsos.de/en/blog/expose-php-versionsangaben/"/><id>https://phpsos.de/en/blog/expose-php-versionsangaben/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>expose_php, X-Powered-By and Server header: where PHP and web servers reveal their version, and how to switch it off and verify it in php.ini, Nginx and Apache.</summary></entry><entry><title>display_errors off: Disabling Error Output in Production</title><link href="https://phpsos.de/en/blog/display-errors-produktion/"/><id>https://phpsos.de/en/blog/display-errors-produktion/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>display_errors Off and more: which PHP settings keep error messages off the live website, what frameworks add and how to check for leaks.</summary></entry><entry><title>php_admin_value: Locking Settings Against Overrides</title><link href="https://phpsos.de/en/blog/php-admin-value-sperren/"/><id>https://phpsos.de/en/blog/php-admin-value-sperren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>php_admin_value and php_admin_flag explained: how to lock PHP values in the FPM pool and Apache against ini_set(), .htaccess and .user.ini, and verify it.</summary></entry><entry><title>Setting Memory Limits With systemd and cgroups</title><link href="https://phpsos.de/en/blog/speichergrenzen-systemd-cgroups/"/><id>https://phpsos.de/en/blog/speichergrenzen-systemd-cgroups/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>systemd MemoryMax for PHP-FPM: set a cgroup memory limit as php.net recommends for PHP2Shell, with MemoryHigh, OOMPolicy and check commands.</summary></entry><entry><title>Configuring Nginx for PHP Securely</title><link href="https://phpsos.de/en/blog/nginx-fuer-php-absichern/"/><id>https://phpsos.de/en/blog/nginx-fuer-php-absichern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Configure Nginx for PHP securely: pass only real scripts to PHP-FPM, allow the front controller, block dotfiles and set size limits appropriately.</summary></entry><entry><title>Configuring Apache for PHP Securely</title><link href="https://phpsos.de/en/blog/apache-fuer-php-absichern/"/><id>https://phpsos.de/en/blog/apache-fuer-php-absichern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Configure Apache for PHP securely: set up PHP-FPM via mod_proxy_fcgi, AllowOverride None, ServerTokens, TraceEnable and LimitRequestBody correctly and verify.</summary></entry><entry><title>Forbidding PHP Execution in Upload Folders</title><link href="https://phpsos.de/en/blog/php-in-uploads-verbieten/"/><id>https://phpsos.de/en/blog/php-in-uploads-verbieten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Forbid PHP execution in uploads: find writable folders, set blocks in Nginx, Apache and PHP-FPM correctly and test with a harmless file.</summary></entry><entry><title>Filtering Upload Requests at the Edge: Opportunities and Risks</title><link href="https://phpsos.de/en/blog/upload-anfragen-am-rand-filtern/"/><id>https://phpsos.de/en/blog/upload-anfragen-am-rand-filtern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Filter multipart/form-data at the proxy or WAF: when the unofficial interim measure helps, what it breaks and how to introduce it safely.</summary></entry><entry><title>Using ModSecurity and the OWASP Core Rule Set</title><link href="https://phpsos.de/en/blog/modsecurity-owasp-crs/"/><id>https://phpsos.de/en/blog/modsecurity-owasp-crs/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Use ModSecurity and OWASP CRS: choose the right engine, understand anomaly thresholds and paranoia levels, and handle false positives in a targeted way.</summary></entry><entry><title>Setting Up Fail2ban for Web Servers</title><link href="https://phpsos.de/en/blog/fail2ban-fuer-webserver/"/><id>https://phpsos.de/en/blog/fail2ban-fuer-webserver/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Fail2ban for Nginx and Apache: enable suitable jails, test custom filters with fail2ban-regex, ban repeat offenders and avoid locking yourself out.</summary></entry><entry><title>Firewall for Web Servers: Opening Only Necessary Ports</title><link href="https://phpsos.de/en/blog/firewall-fuer-webserver/"/><id>https://phpsos.de/en/blog/firewall-fuer-webserver/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Firewall for web servers: check open ports, allow only 80 and 443, restrict SSH, limit outgoing connections. With nftables and ufw.</summary></entry><entry><title>Automatic Security Updates on Linux Servers</title><link href="https://phpsos.de/en/blog/automatische-sicherheitsupdates/"/><id>https://phpsos.de/en/blog/automatische-sicherheitsupdates/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Set up unattended-upgrades and dnf-automatic: apply security updates automatically, restart services and release third-party sources selectively.</summary></entry><entry><title>Least Privilege: Permissions of the Web Server User</title><link href="https://phpsos.de/en/blog/rechte-des-webserver-benutzers/"/><id>https://phpsos.de/en/blog/rechte-des-webserver-benutzers/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Give the web server user minimal rights: no shell, no sudo, no cron, narrow database privileges and systemd protection for PHP-FPM, with check commands.</summary></entry><entry><title>Shielding Admin Areas with IP Allowlists, VPN or Extra Protection</title><link href="https://phpsos.de/en/blog/admin-bereiche-abschirmen/"/><id>https://phpsos.de/en/blog/admin-bereiche-abschirmen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>Protect the admin area with an IP allowlist, VPN or upstream login: which method fits, pitfalls behind CDN and proxy, with configuration and testing.</summary></entry><entry><title>Configuring TLS and HTTPS Correctly</title><link href="https://phpsos.de/en/blog/tls-https-richtig-konfigurieren/"/><id>https://phpsos.de/en/blog/tls-https-richtig-konfigurieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>TLS configuration for web servers per BSI TR-02102 and TLSRef: protocols, cipher suites, certificates and check commands for Nginx, Apache and PHP clients.</summary></entry><entry><title>CIS Benchmarks and BSI Modules for Web Servers</title><link href="https://phpsos.de/en/blog/cis-benchmarks-bsi-bausteine/"/><id>https://phpsos.de/en/blog/cis-benchmarks-bsi-bausteine/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Hardening and configuration"/><summary>CIS Benchmark for web servers and BSI modules compared: which standards fit Linux, Nginx, Apache and PHP, and how to put them into practice.</summary></entry><entry><title>Storing Passwords Securely in PHP: Using password_hash Correctly</title><link href="https://phpsos.de/en/blog/passwoerter-in-php-speichern/"/><id>https://phpsos.de/en/blog/passwoerter-in-php-speichern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Store passwords securely in PHP with password_hash: bcrypt or Argon2id, cost factor, the 72-byte limit and migrating from old MD5 hashes.</summary></entry><entry><title>CSRF Protection in PHP Applications</title><link href="https://phpsos.de/en/blog/csrf-schutz-php/"/><id>https://phpsos.de/en/blog/csrf-schutz-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Implement CSRF protection in PHP: synchronizer token, checking Origin and Sec-Fetch-Site, SameSite cookies and login CSRF. With code example and checklist.</summary></entry><entry><title>Validating and Filtering Input in PHP with filter_var</title><link href="https://phpsos.de/en/blog/eingaben-validieren-php/"/><id>https://phpsos.de/en/blog/eingaben-validieren-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Validate input in PHP with filter_var and filter_input_array: numbers, email, URL, bool, allowlists and limits. With code examples.</summary></entry><entry><title>Preventing Command Injection in PHP</title><link href="https://phpsos.de/en/blog/command-injection-php/"/><id>https://phpsos.de/en/blog/command-injection-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Prevent command injection in PHP: avoid the shell, use proc_open with an array, apply escapeshellarg correctly and find dangerous calls in your code.</summary></entry><entry><title>Preventing Server-Side Request Forgery (SSRF) in PHP</title><link href="https://phpsos.de/en/blog/ssrf-in-php/"/><id>https://phpsos.de/en/blog/ssrf-in-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Prevent SSRF in PHP: allowlists, HTTPS only, no redirects, checking the resolved IP and limiting outgoing traffic. With cURL code.</summary></entry><entry><title>Preventing XML External Entities (XXE) in PHP</title><link href="https://phpsos.de/en/blog/xxe-in-php/"/><id>https://phpsos.de/en/blog/xxe-in-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Prevent XXE in PHP: what applies since libxml 2.9 and PHP 8.0, which flags are risky, LIBXML_NO_XXE from PHP 8.4 and how to find XML inputs.</summary></entry><entry><title>Type Juggling in PHP: Loose Comparisons as a Security Risk</title><link href="https://phpsos.de/en/blog/type-juggling-php/"/><id>https://phpsos.de/en/blog/type-juggling-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Understand PHP type juggling: how == compares, what PHP 8.0 changed and why tokens, hashes and roles must be compared strictly.</summary></entry><entry><title>Secure Random Numbers and Tokens in PHP with random_bytes</title><link href="https://phpsos.de/en/blog/sichere-tokens-php/"/><id>https://phpsos.de/en/blog/sichere-tokens-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Generate secure tokens in PHP with random_bytes and random_int: length, encoding, storing as a hash, expiry time and functions to avoid.</summary></entry><entry><title>Protecting Credentials and .env Files Properly</title><link href="https://phpsos.de/en/blog/env-dateien-schuetzen/"/><id>https://phpsos.de/en/blog/env-dateien-schuetzen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Protect .env files: correct web root, blocking in the web server, tight file permissions, no secrets in Git and credential rotation after a security incident.</summary></entry><entry><title>Public .git Folder: An Underestimated Data Leak</title><link href="https://phpsos.de/en/blog/git-ordner-oeffentlich/"/><id>https://phpsos.de/en/blog/git-ordner-oeffentlich/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Is your .git folder public? Here is how to check, block access, change your deployment and handle credentials from the history.</summary></entry><entry><title>Backup Files in the Web Root: .zip, .sql and .bak</title><link href="https://phpsos.de/en/blog/backup-dateien-im-webroot/"/><id>https://phpsos.de/en/blog/backup-dateien-im-webroot/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Anyone can download backup files in the web root. Find .zip, .sql and .bak files, block them and check whether they have been retrieved.</summary></entry><entry><title>phpinfo() Files: Why They Must Disappear</title><link href="https://phpsos.de/en/blog/phpinfo-dateien-entfernen/"/><id>https://phpsos.de/en/blog/phpinfo-dateien-entfernen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>A forgotten phpinfo file reveals paths, modules and sometimes credentials. Find and remove such files and check PHP in safer ways.</summary></entry><entry><title>Keeping Dependencies Up to Date: Composer, npm and Plugins</title><link href="https://phpsos.de/en/blog/abhaengigkeiten-aktuell-halten/"/><id>https://phpsos.de/en/blog/abhaengigkeiten-aktuell-halten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Keep Composer packages, npm modules and CMS plugins up to date: a maintenance process with rhythm, responsibility, tests and a plan for cases without a patch.</summary></entry><entry><title>Security Code Review for PHP Projects</title><link href="https://phpsos.de/en/blog/sicherheits-code-review-php/"/><id>https://phpsos.de/en/blog/sicherheits-code-review-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Security code review for PHP: baseline or diff, risky functions, tools such as PHPStan and Psalm, and a checklist for your own team.</summary></entry><entry><title>Logging Securely: Recording Errors Without a Data Leak</title><link href="https://phpsos.de/en/blog/sicher-loggen-php/"/><id>https://phpsos.de/en/blog/sicher-loggen-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Log errors and events in PHP without exposing passwords, tokens or customer data: what belongs in the log, what does not and how to protect it.</summary></entry><entry><title>Securing REST APIs in PHP</title><link href="https://phpsos.de/en/blog/rest-api-php-absichern/"/><id>https://phpsos.de/en/blog/rest-api-php-absichern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Secure development"/><summary>Secure REST APIs in PHP: authentication, per-object checks, JWT, size and type limits, error messages and rate limiting with example code.</summary></entry><entry><title>IT Service Provider Contracts: Defining Security Obligations Clearly</title><link href="https://phpsos.de/en/blog/dienstleistervertrag-sicherheit/"/><id>https://phpsos.de/en/blog/dienstleistervertrag-sicherheit/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>What a contract with an agency, host or IT service provider should regulate on security: updates, restarts, reporting channels, logs, access and exit.</summary></entry><entry><title>Data Processing When Service Providers Access Servers</title><link href="https://phpsos.de/en/blog/auftragsverarbeitung-serverzugriff/"/><id>https://phpsos.de/en/blog/auftragsverarbeitung-serverzugriff/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Remote maintenance, patching, forensics: what a DPA under Art. 28 GDPR regulates when IT service providers access servers, and what to clarify before an emergency.</summary></entry><entry><title>Vulnerability Management for Mid-Sized Businesses</title><link href="https://phpsos.de/en/blog/schwachstellenmanagement-mittelstand/"/><id>https://phpsos.de/en/blog/schwachstellenmanagement-mittelstand/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Vulnerability management for SMEs: sources for alerts, risk-based assessment, decision, implementation and evidence, using PHP2Shell as a worked example.</summary></entry><entry><title>Know What Is Running: An Inventory of All Websites and Servers</title><link href="https://phpsos.de/en/blog/inventar-websites-server/"/><id>https://phpsos.de/en/blog/inventar-websites-server/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>An IT inventory of all websites and servers: which details to include, how to find forgotten systems and how to keep the list up to date.</summary></entry><entry><title>Patch Management as a Process Instead of Firefighting</title><link href="https://phpsos.de/en/blog/patch-management-prozess/"/><id>https://phpsos.de/en/blog/patch-management-prozess/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Patch management as a process: patch classes, maintenance windows, testing, rollback, restart and evidence, so critical updates like PHP2Shell stick.</summary></entry><entry><title>Emergency Contacts: Who Must Be Informed, and When?</title><link href="https://phpsos.de/en/blog/notfallkontakte-liste/"/><id>https://phpsos.de/en/blog/notfallkontakte-liste/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Emergency contacts for IT incidents: who belongs on the list, who is informed when, what details must be ready and how to keep the list up to date.</summary></entry><entry><title>What a Hacked Server Costs: The Cost Items</title><link href="https://phpsos.de/en/blog/kostenposten-eines-hacks/"/><id>https://phpsos.de/en/blog/kostenposten-eines-hacks/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>What a hacked server costs a company: direct, indirect and follow-on costs at a glance, with advice on how to draw up your own calculation.</summary></entry><entry><title>Informing Customers After an Incident</title><link href="https://phpsos.de/en/blog/kunden-nach-vorfall-informieren/"/><id>https://phpsos.de/en/blog/kunden-nach-vorfall-informieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Informing customers after a data breach: when Art. 34 GDPR applies, how to reach customer groups and why notices should never contain login links.</summary></entry><entry><title>The Web Supply Chain: Agency, Host, Plugin Vendor</title><link href="https://phpsos.de/en/blog/lieferkette-agentur-hoster/"/><id>https://phpsos.de/en/blog/lieferkette-agentur-hoster/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Your website depends on the PHP project, distribution, host, agency and plugin vendors. How to make this supply chain visible and dependable.</summary></entry><entry><title>Security Awareness for Admins and Editors: Awareness in the Web Team</title><link href="https://phpsos.de/en/blog/sicherheitsbewusstsein-redaktion/"/><id>https://phpsos.de/en/blog/sicherheitsbewusstsein-redaktion/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Security awareness for admins and editors: which risks matter per role, how short training sessions work and how to get a web team up to speed in 90 days.</summary></entry><entry><title>Tabletop Emergency Exercise: Playing Through a Web Server Incident</title><link href="https://phpsos.de/en/blog/notfalluebung-am-tisch/"/><id>https://phpsos.de/en/blog/notfalluebung-am-tisch/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Tabletop exercise for IT: how to play through a web server incident at the table, with script, roles, injects and an evaluation that changes something.</summary></entry><entry><title>ISO 27001 and TISAX: What Concerns Web Servers</title><link href="https://phpsos.de/en/blog/iso-27001-tisax-webserver/"/><id>https://phpsos.de/en/blog/iso-27001-tisax-webserver/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>ISO 27001 and TISAX on the web server: which requirements affect patches, suppliers and incidents, and which evidence belongs in the file after PHP2Shell.</summary></entry><entry><title>VdS 10000: Information Security for Small and Mid-Sized Businesses</title><link href="https://phpsos.de/en/blog/vds-10000-kmu/"/><id>https://phpsos.de/en/blog/vds-10000-kmu/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>VdS 10000 explained: what the SME guideline requires, what is new in the 2025 version and which requirements affect your website and web server.</summary></entry><entry><title>Lessons Learned: Getting Better After an Incident</title><link href="https://phpsos.de/en/blog/lessons-learned-nach-vorfall/"/><id>https://phpsos.de/en/blog/lessons-learned-nach-vorfall/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Management and law"/><summary>Lessons learned after an IT incident: when to hold the review, which questions matter and how findings become actions with a deadline.</summary></entry><entry><title>Patch, Shut Down or Wait? A Decision Aid for the PHP Vulnerability</title><link href="https://phpsos.de/en/blog/patchen-abschalten-abwarten/"/><id>https://phpsos.de/en/blog/patchen-abschalten-abwarten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Take your website offline because of the PHP vulnerability? A decision aid for choosing between patching, shutting down and waiting, with criteria, steps and limits.</summary></entry><entry><title>WAF or Update: Why You Need Both</title><link href="https://phpsos.de/en/blog/waf-oder-update/"/><id>https://phpsos.de/en/blog/waf-oder-update/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>WAF instead of an update for PHP2Shell? What a web application firewall does, where it ends and why only the PHP update with restart closes the vulnerability.</summary></entry><entry><title>Rebuild the Server or Clean It Up? The Decision After a Compromise</title><link href="https://phpsos.de/en/blog/neu-aufsetzen-oder-bereinigen/"/><id>https://phpsos.de/en/blog/neu-aufsetzen-oder-bereinigen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Rebuild a server after a hack or clean it up? The criteria, the right order and typical mistakes when rebuilding, explained clearly.</summary></entry><entry><title>Fix It Yourself or Bring in a Provider? An Honest Weighing</title><link href="https://phpsos.de/en/blog/selbst-beheben-oder-dienstleister/"/><id>https://phpsos.de/en/blog/selbst-beheben-oder-dienstleister/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Hire an IT security provider or fix it yourself? An honest weighing with criteria, a self-test and cases in which you need no outside help.</summary></entry><entry><title>Choosing an IT Security Provider: 12 Questions Before You Commission</title><link href="https://phpsos.de/en/blog/sicherheitsdienstleister-auswaehlen/"/><id>https://phpsos.de/en/blog/sicherheitsdienstleister-auswaehlen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Finding an IT security provider: 12 questions for comparing vendors for web servers and PHP on the facts, plus typical warning signs in quotes.</summary></entry><entry><title>Managed Hosting or Your Own Server? The Security Comparison</title><link href="https://phpsos.de/en/blog/managed-oder-eigener-server/"/><id>https://phpsos.de/en/blog/managed-oder-eigener-server/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Managed hosting or root server? The security comparison: who patches, who is responsible and which model suits your team and your data.</summary></entry><entry><title>PHP Upgrade or Backport? The Decision for Legacy Systems</title><link href="https://phpsos.de/en/blog/php-upgrade-oder-backport/"/><id>https://phpsos.de/en/blog/php-upgrade-oder-backport/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>PHP upgrade or backport after PHP2Shell? Which kinds of backport exist, what they are worth and when only moving to a supported version helps.</summary></entry><entry><title>Switch the CMS After a Hack? When It Helps and When It Doesn&#x27;t</title><link href="https://phpsos.de/en/blog/cms-wechsel-nach-hack/"/><id>https://phpsos.de/en/blog/cms-wechsel-nach-hack/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Switch CMS after a hack? When a new system really helps, when it only shifts the effort and how to move content without carrying over malicious code.</summary></entry><entry><title>Static Websites: Less PHP, Less Attack Surface</title><link href="https://phpsos.de/en/blog/statische-website-alternative/"/><id>https://phpsos.de/en/blog/statische-website-alternative/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Static website and security: what falls away without PHP on the server, which risks remain and for which companies switching is really worthwhile.</summary></entry><entry><title>Pentest, Bug Bounty or Vulnerability Scan? Choosing the Right Testing Method</title><link href="https://phpsos.de/en/blog/pentest-bugbounty-scan/"/><id>https://phpsos.de/en/blog/pentest-bugbounty-scan/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Decision aids"/><summary>Pentest or vulnerability scan, or straight to bug bounty? What each testing method finds, where it is blind and in which order it makes sense for SMEs.</summary></entry><entry><title>What Is PHP2Shell? The Vulnerability Explained Simply</title><link href="https://phpsos.de/en/php2shell/was-ist-php2shell/"/><id>https://phpsos.de/en/php2shell/was-ist-php2shell/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>PHP2Shell explained simply: what is behind the two critical PHP vulnerabilities, which servers are affected and which steps you should take now.</summary></entry><entry><title>CVE-2026-109618: RCE via Out-of-Memory Condition</title><link href="https://phpsos.de/en/php2shell/cve-2026-109618/"/><id>https://phpsos.de/en/php2shell/cve-2026-109618/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>CVE-2026-109618 explained: how the out-of-memory condition in PHP can lead to code execution, which versions are fixed and what admins should do now.</summary></entry><entry><title>CVE-2026-109619: RCE via Stale Global State</title><link href="https://phpsos.de/en/php2shell/cve-2026-109619/"/><id>https://phpsos.de/en/php2shell/cve-2026-109619/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>CVE-2026-109619 explained: why internal state carried between requests becomes dangerous, which PHP versions are fixed and how to secure your servers.</summary></entry><entry><title>CVE-2026-115560: Session Upload Progress Advisory</title><link href="https://phpsos.de/en/php2shell/cve-2026-115560/"/><id>https://phpsos.de/en/php2shell/cve-2026-115560/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>CVE-2026-115560: when the third PHP advisory of 23 October 2026 affects your server, how to check your configuration and how to disable upload progress.</summary></entry><entry><title>Which PHP Versions Are Affected?</title><link href="https://phpsos.de/en/php2shell/betroffene-php-versionen/"/><id>https://phpsos.de/en/php2shell/betroffene-php-versionen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Which PHP versions PHP2Shell affects and which are fixed: version table for 8.5 to 5.4, notes on backports, end of support and how to proceed.</summary></entry><entry><title>Checking the PHP Version and Patch Level Correctly</title><link href="https://phpsos.de/en/php2shell/php-version-pruefen/"/><id>https://phpsos.de/en/php2shell/php-version-pruefen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Check your PHP version properly: how to recognise patch level, distribution backports and running processes, and know whether PHP2Shell is closed.</summary></entry><entry><title>Why mod_php Carries the Highest Risk</title><link href="https://phpsos.de/en/php2shell/mod-php-risiko/"/><id>https://phpsos.de/en/php2shell/mod-php-risiko/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Why the PHP team rates the PHP2Shell risk highest for Apache with mod_php, how to recognise mod_php and what you should patch and switch over now.</summary></entry><entry><title>After the Update: Restarting PHP-FPM and All Workers</title><link href="https://phpsos.de/en/php2shell/php-fpm-neustart/"/><id>https://phpsos.de/en/php2shell/php-fpm-neustart/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Restart PHP-FPM after the PHP2Shell update: why new files are not enough, which services matter and how to check that no old worker is still running.</summary></entry><entry><title>Immediate Measures If You Cannot Patch Yet</title><link href="https://phpsos.de/en/php2shell/sofortmassnahmen-ohne-patch/"/><id>https://phpsos.de/en/php2shell/sofortmassnahmen-ohne-patch/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Workaround for the PHP vulnerability PHP2Shell: the interim measures from php.net, set correctly, with their limits and notes on the road to the patch.</summary></entry><entry><title>PHP 8.1 and Older: What Applies Now</title><link href="https://phpsos.de/en/php2shell/php-8-1-und-aelter/"/><id>https://phpsos.de/en/php2shell/php-8-1-und-aelter/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>PHP 8.1 and older get no official update against PHP2Shell. What source backports mean, how to secure your server and how to plan the move.</summary></entry><entry><title>Patching PHP in Docker Containers</title><link href="https://phpsos.de/en/php2shell/docker-container-patchen/"/><id>https://phpsos.de/en/php2shell/docker-container-patchen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Update your PHP Docker image against PHP2Shell: check the version in the container, rebuild the image, recreate containers and set interim values.</summary></entry><entry><title>Am I Already Compromised? Signs After PHP2Shell</title><link href="https://phpsos.de/en/php2shell/bin-ich-gehackt-anzeichen/"/><id>https://phpsos.de/en/php2shell/bin-ich-gehackt-anzeichen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP2Shell"/><summary>Server hacked? Typical signs after PHP2Shell, first checks that preserve evidence and what to do if you suspect a compromise, step by step.</summary></entry><entry><title>PHP2Shell timeline: chronology from 17 to 25 October 2026</title><link href="https://phpsos.de/en/ratgeber/php2shell-chronologie/"/><id>https://phpsos.de/en/ratgeber/php2shell-chronologie/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>The PHP2Shell timeline at a glance: from the first attack attempt on 17 Oct to the status of 25 Oct 2026, and what each date means for your logs and checks.</summary></entry><entry><title>Hosting provider PHP update confirmation: how to ask about patch status</title><link href="https://phpsos.de/en/ratgeber/hoster-patch-status-erfragen/"/><id>https://phpsos.de/en/ratgeber/hoster-patch-status-erfragen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>How to get reliable confirmation of the PHP update from your hosting provider after PHP2Shell: which details count, a copy-ready template, how to judge the answer.</summary></entry><entry><title>Detecting and removing webshells</title><link href="https://phpsos.de/en/ratgeber/webshell-erkennen/"/><id>https://phpsos.de/en/ratgeber/webshell-erkennen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Detect webshells after PHP2Shell: find suspicious PHP files, processes and connections, preserve evidence and have backdoors removed properly.</summary></entry><entry><title>Finding a WordPress backdoor: tracking down backdoors systematically</title><link href="https://phpsos.de/en/ratgeber/backdoor-wordpress-finden/"/><id>https://phpsos.de/en/ratgeber/backdoor-wordpress-finden/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Find a WordPress backdoor: check core and plugins with WP-CLI, review admin accounts, mu-plugins, uploads and the database, and close backdoors safely.</summary></entry><entry><title>Configuring php.ini securely</title><link href="https://phpsos.de/en/ratgeber/php-ini-sicher-konfigurieren/"/><id>https://phpsos.de/en/ratgeber/php-ini-sicher-konfigurieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Configure php.ini securely: settings for errors, sessions, uploads and memory, plus the PHP2Shell interim measures from php.net, ready to copy.</summary></entry><entry><title>Using PHP disable_functions correctly</title><link href="https://phpsos.de/en/ratgeber/disable-functions/"/><id>https://phpsos.de/en/ratgeber/disable-functions/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Use PHP disable_functions correctly: which functions to block, how to test your application beforehand and where this hardening reaches its limits.</summary></entry><entry><title>open_basedir and isolation per website</title><link href="https://phpsos.de/en/ratgeber/open-basedir/"/><id>https://phpsos.de/en/ratgeber/open-basedir/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Set open_basedir correctly and separate websites cleanly: own user, own PHP-FPM pool, own temp folders. With an example configuration for Nginx.</summary></entry><entry><title>File permissions on the web server</title><link href="https://phpsos.de/en/ratgeber/dateirechte-webserver/"/><id>https://phpsos.de/en/ratgeber/dateirechte-webserver/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Set web server file permissions correctly: separate owners, 640 instead of 777, write access only for uploads and cache. With commands to check them.</summary></entry><entry><title>composer audit: checking dependencies for vulnerabilities</title><link href="https://phpsos.de/en/ratgeber/composer-abhaengigkeiten-pruefen/"/><id>https://phpsos.de/en/ratgeber/composer-abhaengigkeiten-pruefen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Use composer audit to check PHP dependencies for vulnerabilities. Commands, integration into CI and deployment, and why PHP itself must be patched separately.</summary></entry><entry><title>PHP end of life: risks of outdated versions</title><link href="https://phpsos.de/en/ratgeber/php-end-of-life-risiken/"/><id>https://phpsos.de/en/ratgeber/php-end-of-life-risiken/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Understand PHP end of life: what happens after support ends, why PHP 8.1 and older are critical after PHP2Shell, and how to plan the move to 8.2 or later.</summary></entry><entry><title>Preventing SQL injection in PHP</title><link href="https://phpsos.de/en/ratgeber/sql-injection-php/"/><id>https://phpsos.de/en/ratgeber/sql-injection-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Prevent SQL injection in PHP: prepared statements with PDO and mysqli, whitelists for columns, minimal database rights. With code examples and a checklist.</summary></entry><entry><title>Preventing XSS in PHP: defending against cross-site scripting</title><link href="https://phpsos.de/en/ratgeber/xss-php/"/><id>https://phpsos.de/en/ratgeber/xss-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Prevent XSS in PHP: encode output correctly for each context, use templates with auto-escaping and set a Content Security Policy. With examples.</summary></entry><entry><title>Implementing file uploads in PHP safely: PHP upload security</title><link href="https://phpsos.de/en/ratgeber/datei-upload-sicher/"/><id>https://phpsos.de/en/ratgeber/datei-upload-sicher/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>PHP upload security in practice: check the file type on the server, rename files, store them outside the web root and block script execution.</summary></entry><entry><title>Securing sessions in PHP: PHP session security in practice</title><link href="https://phpsos.de/en/ratgeber/session-sicherheit-php/"/><id>https://phpsos.de/en/ratgeber/session-sicherheit-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>PHP session security step by step: secure php.ini values, a new session ID after login, cookie flags and the PHP2Shell note on upload progress.</summary></entry><entry><title>Insecure deserialization in PHP: unserialize and security</title><link href="https://phpsos.de/en/ratgeber/deserialisierung-php/"/><id>https://phpsos.de/en/ratgeber/deserialisierung-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Use PHP unserialize safely: why objects from user input are dangerous, how JSON, allowed_classes and signatures protect, and where to look in your code.</summary></entry><entry><title>Preventing local file inclusion in PHP: LFI and RFI</title><link href="https://phpsos.de/en/ratgeber/lfi-rfi/"/><id>https://phpsos.de/en/ratgeber/lfi-rfi/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Prevent local file inclusion in PHP: allow-lists instead of paths from the request, a realpath check, allow_url_include off and open_basedir as protection.</summary></entry><entry><title>Protecting admin logins against brute force: brute-force protection for every login</title><link href="https://phpsos.de/en/ratgeber/brute-force-login-schutz/"/><id>https://phpsos.de/en/ratgeber/brute-force-login-schutz/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Brute-force protection for login and admin area: implement rate limiting, Fail2ban, two-factor login and secure password storage with password_hash.</summary></entry><entry><title>DDoS or hack? Classifying attacks correctly</title><link href="https://phpsos.de/en/ratgeber/ddos-oder-exploit/"/><id>https://phpsos.de/en/ratgeber/ddos-oder-exploit/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>DDoS or hack? Typical signs compared, first check commands for the server and what you should concretely do in the first hours.</summary></entry><entry><title>Analysing web server logs after an attack: reading the access log properly</title><link href="https://phpsos.de/en/ratgeber/logfiles-auswerten/"/><id>https://phpsos.de/en/ratgeber/logfiles-auswerten/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Analyse access logs after an attack: secure the logs first, find typical traces, use commands for Apache and Nginx, and note the specifics of PHP2Shell.</summary></entry><entry><title>Setting up two-factor authentication for admin access</title><link href="https://phpsos.de/en/ratgeber/zwei-faktor-admin/"/><id>https://phpsos.de/en/ratgeber/zwei-faktor-admin/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Two-factor authentication for admins: suitable methods, all important access points from the CMS to SSH, emergency codes and a clean rollout in the team.</summary></entry><entry><title>Server backup strategy: backups using the 3-2-1 rule</title><link href="https://phpsos.de/en/ratgeber/backups-3-2-1/"/><id>https://phpsos.de/en/ratgeber/backups-3-2-1/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Server backup strategy using the 3-2-1 rule: what you must back up, how backups survive an attack and why you should test restoration.</summary></entry><entry><title>Security headers for websites: setting them correctly</title><link href="https://phpsos.de/en/ratgeber/sicherheits-header/"/><id>https://phpsos.de/en/ratgeber/sicherheits-header/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Set up security headers for websites: CSP, HSTS, X-Content-Type-Options and more, with examples for Nginx and Apache, plus testing and typical mistakes.</summary></entry><entry><title>Removing the Google warning “This site may be hacked”</title><link href="https://phpsos.de/en/ratgeber/google-warnung-entfernen/"/><id>https://phpsos.de/en/ratgeber/google-warnung-entfernen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Remove the Google warning for a hacked website: find the cause, clean up spam and malicious code, check Search Console and request the review.</summary></entry><entry><title>Checklist after a hack: 20 steps for the follow-up</title><link href="https://phpsos.de/en/ratgeber/checkliste-nach-dem-hack/"/><id>https://phpsos.de/en/ratgeber/checkliste-nach-dem-hack/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="Guides"/><summary>Checklist for a hacked website: 20 steps from containment and evidence preservation through cleanup and new credentials to reporting duties.</summary></entry><entry><title>What Is PHP? The Programming Language Explained</title><link href="https://phpsos.de/en/php/was-ist-php/"/><id>https://phpsos.de/en/php/was-ist-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>What is PHP? How the scripting language builds web pages on the server, where it runs in your company and why its version matters for security.</summary></entry><entry><title>The History of PHP: From 1994 to Today</title><link href="https://phpsos.de/en/php/geschichte-von-php/"/><id>https://phpsos.de/en/php/geschichte-von-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The history of PHP: from Rasmus Lerdorf&#x27;s Personal Home Page Tools in 1994 through the Zend Engine and PHP 7 to PHP 8.5, with a timeline and lessons for today.</summary></entry><entry><title>How PHP Generates a Web Page: The Path of a Request</title><link href="https://phpsos.de/en/php/wie-php-funktioniert/"/><id>https://phpsos.de/en/php/wie-php-funktioniert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>How does PHP work? From the click in the browser via web server, SAPI, compiler and Zend VM to the finished page, explained in seven steps with examples.</summary></entry><entry><title>The Zend Engine: The Heart of PHP</title><link href="https://phpsos.de/en/php/zend-engine/"/><id>https://phpsos.de/en/php/zend-engine/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The Zend Engine explained: compiler, opcodes, virtual machine, zval and memory management at the core of PHP, its versions and what it means for patches.</summary></entry><entry><title>OPcache Explained: PHP&#x27;s Bytecode Cache</title><link href="https://phpsos.de/en/php/opcache/"/><id>https://phpsos.de/en/php/opcache/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>OPcache explained: how PHP&#x27;s bytecode cache works, which settings matter, why it must be cleared after updates and how to secure it on shared servers.</summary></entry><entry><title>SAPI Explained: How PHP Talks to the Web Server</title><link href="https://phpsos.de/en/php/sapi-erklaert/"/><id>https://phpsos.de/en/php/sapi-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP SAPI explained: what fpm-fcgi, apache2handler, cgi-fcgi and cli mean, how to check your operating mode and why it determines risk and restarts.</summary></entry><entry><title>PHP-FPM Explained: Process Manager, Pools and Workers</title><link href="https://phpsos.de/en/php/php-fpm-erklaert/"/><id>https://phpsos.de/en/php/php-fpm-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP-FPM explained: how master, pools and workers operate, what pm static, dynamic and ondemand mean and which pool settings improve security.</summary></entry><entry><title>mod_php Explained: PHP Inside the Apache Process</title><link href="https://phpsos.de/en/php/mod-php-erklaert/"/><id>https://phpsos.de/en/php/mod-php-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>mod_php explained: how PHP runs as an Apache module, how to recognise it, what prefork and .htaccess mean for it and why php.net advises against it.</summary></entry><entry><title>CGI and FastCGI: The Basics</title><link href="https://phpsos.de/en/php/cgi-und-fastcgi/"/><id>https://phpsos.de/en/php/cgi-und-fastcgi/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>CGI and FastCGI with PHP explained: a process per request or permanent workers, the role of php-cgi and PHP-FPM, cgi settings and security rules.</summary></entry><entry><title>PHP on the Command Line (CLI)</title><link href="https://phpsos.de/en/php/php-cli/"/><id>https://phpsos.de/en/php/php-cli/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP CLI explained: differences from the web version, key options such as -l, -m and --ini, cron jobs, the built-in web server and why php -v often misleads.</summary></entry><entry><title>The php.ini Explained: Structure, Levels and Precedence</title><link href="https://phpsos.de/en/php/php-ini-erklaert/"/><id>https://phpsos.de/en/php/php-ini-erklaert/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The php.ini explained: where PHP looks for its configuration, which levels exist, what INI_SYSTEM and INI_PERDIR mean and which value applies in the end.</summary></entry><entry><title>PHP Versions and the Release Cycle</title><link href="https://phpsos.de/en/php/release-zyklus/"/><id>https://phpsos.de/en/php/release-zyklus/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP release cycle explained: a new version every November, two years of active support, two years of security fixes, end dates of all branches from 8.2 to 8.5.</summary></entry><entry><title>PHP 8.0 to 8.5: The Most Important New Features</title><link href="https://phpsos.de/en/php/php-8-neuerungen/"/><id>https://phpsos.de/en/php/php-8-neuerungen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>What&#x27;s new in PHP 8 from 8.0 to 8.5: key features per version, code examples, deprecations with upgrade risk and what is relevant for security.</summary></entry><entry><title>Understanding PHP Extensions</title><link href="https://phpsos.de/en/php/php-erweiterungen/"/><id>https://phpsos.de/en/php/php-erweiterungen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP extensions explained: core, bundled and PECL extensions, extension and zend_extension, php -m and why fewer modules are more secure.</summary></entry><entry><title>Composer: The Package Manager for PHP</title><link href="https://phpsos.de/en/php/composer/"/><id>https://phpsos.de/en/php/composer/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Composer explained: understand composer.json, composer.lock, vendor and the autoloader, deploy cleanly to production and maintain dependencies securely.</summary></entry><entry><title>PHP Frameworks at a Glance</title><link href="https://phpsos.de/en/php/php-frameworks/"/><id>https://phpsos.de/en/php/php-frameworks/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP frameworks overview: what Laravel, Symfony, Laminas, Slim and others offer, how to choose one and what a framework means for security.</summary></entry><entry><title>Which CMS and Shop Systems Run on PHP</title><link href="https://phpsos.de/en/php/cms-und-shops-auf-php/"/><id>https://phpsos.de/en/php/cms-und-shops-auf-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Which CMS and shop systems run on PHP: WordPress, TYPO3, Shopware, Joomla, Drupal and more at a glance, with a way to check your own websites.</summary></entry><entry><title>PHP and Databases: PDO and mysqli</title><link href="https://phpsos.de/en/php/php-und-datenbanken/"/><id>https://phpsos.de/en/php/php-und-datenbanken/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP and databases explained: PDO and mysqli compared, prepared statements, error handling since PHP 8 and secure credentials in day-to-day operation.</summary></entry><entry><title>Sessions and Cookies in PHP</title><link href="https://phpsos.de/en/php/sessions-und-cookies/"/><id>https://phpsos.de/en/php/sessions-und-cookies/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>How PHP sessions and cookies work: session ID, storage, php.ini defaults, upload progress and the PHP2Shell interim measure.</summary></entry><entry><title>Superglobals: $_GET, $_POST, $_FILES and More</title><link href="https://phpsos.de/en/php/superglobals/"/><id>https://phpsos.de/en/php/superglobals/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP superglobals explained: what $_GET, $_POST, $_FILES, $_SERVER and others contain, how PHP fills them before your code and how to use request data safely.</summary></entry><entry><title>How PHP Processes File Uploads</title><link href="https://phpsos.de/en/php/datei-uploads-intern/"/><id>https://phpsos.de/en/php/datei-uploads-intern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>How PHP handles file uploads internally: multipart/form-data, temporary files in upload_tmp_dir, the $_FILES array, limits and error codes explained.</summary></entry><entry><title>The PHP Type System</title><link href="https://phpsos.de/en/php/typsystem/"/><id>https://phpsos.de/en/php/typsystem/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The PHP type system explained: data types, type declarations from PHP 7.1 to 8.3, strict_types and loose comparisons, with examples and the security angle.</summary></entry><entry><title>Errors and Exceptions in PHP</title><link href="https://phpsos.de/en/php/fehler-und-exceptions/"/><id>https://phpsos.de/en/php/fehler-und-exceptions/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP errors and exceptions: Throwable, Error and Exception, try/catch/finally, global handlers and safe settings for error display and logging in production.</summary></entry><entry><title>Object-Oriented Programming in PHP</title><link href="https://phpsos.de/en/php/objektorientierung/"/><id>https://phpsos.de/en/php/objektorientierung/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Object-oriented PHP: classes, interfaces, traits and enums, new language features from PHP 8.0 to 8.4 and the link to deserialization and security.</summary></entry><entry><title>Namespaces and Autoloading (PSR-4)</title><link href="https://phpsos.de/en/php/namespaces-autoloading/"/><id>https://phpsos.de/en/php/namespaces-autoloading/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP namespaces and autoloading with PSR-4: from class name to file path, spl_autoload_register, the Composer autoloader and checks after an incident.</summary></entry><entry><title>PSR Standards of the PHP-FIG</title><link href="https://phpsos.de/en/php/psr-standards/"/><id>https://phpsos.de/en/php/psr-standards/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP-FIG PSR standards: all PSRs from 0 to 22 with status, the most important ones in practice and what PSR-3, PSR-4 and PSR-7 mean for security.</summary></entry><entry><title>Memory Management in PHP: Reference Counting and Garbage Collection</title><link href="https://phpsos.de/en/php/speicherverwaltung/"/><id>https://phpsos.de/en/php/speicherverwaltung/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP memory management made clear: reference counting, copy-on-write, cycles and the garbage collector, measuring functions and why PHP2Shell targets exactly this.</summary></entry><entry><title>memory_limit and Out-of-Memory: What Happens Inside</title><link href="https://phpsos.de/en/php/out-of-memory/"/><id>https://phpsos.de/en/php/out-of-memory/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP out of memory explained: how memory_limit counts, what happens internally on abort and what it means for CVE-2026-109618 and your servers.</summary></entry><entry><title>The Request Lifecycle: Startup, Execution, Shutdown</title><link href="https://phpsos.de/en/php/request-lebenszyklus/"/><id>https://phpsos.de/en/php/request-lebenszyklus/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The PHP request lifecycle explained: MINIT, RINIT, RSHUTDOWN, MSHUTDOWN, worker reuse and why CVE-2026-109619 targets exactly this point.</summary></entry><entry><title>JIT and Performance in PHP 8</title><link href="https://phpsos.de/en/php/jit-und-performance/"/><id>https://phpsos.de/en/php/jit-und-performance/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP JIT and performance in PHP 8: how the JIT compiler works with OPcache, which settings apply and why updates matter for both speed and security.</summary></entry><entry><title>Testing PHP Code: PHPUnit and Pest</title><link href="https://phpsos.de/en/php/php-testen/"/><id>https://phpsos.de/en/php/php-testen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHPUnit and Pest explained: versions, first tests, useful test types and why tests make updates after PHP2Shell safer and faster for your business.</summary></entry><entry><title>Static Analysis: PHPStan and Psalm</title><link href="https://phpsos.de/en/php/statische-analyse/"/><id>https://phpsos.de/en/php/statische-analyse/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHPStan and Psalm explained: rule levels, baseline, taint analysis and what static analysis can and cannot do for secure PHP applications.</summary></entry><entry><title>Built-in Security Functions of PHP</title><link href="https://phpsos.de/en/php/eingebaute-sicherheitsfunktionen/"/><id>https://phpsos.de/en/php/eingebaute-sicherheitsfunktionen/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP security functions at a glance: passwords, randomness, escaping, cryptography, sessions and where their limits lie with flaws like PHP2Shell.</summary></entry><entry><title>Local PHP Development: Docker, DDEV and More</title><link href="https://phpsos.de/en/php/php-lokal-entwickeln/"/><id>https://phpsos.de/en/php/php-lokal-entwickeln/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Local PHP development with the built-in server, Docker or DDEV: strengths, limits, examples and how development and production stay aligned on patch level.</summary></entry><entry><title>PHP Compared with Node.js, Python and Java</title><link href="https://phpsos.de/en/php/php-im-vergleich/"/><id>https://phpsos.de/en/php/php-im-vergleich/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP compared with Node.js, Python and Java: execution model, operation, ecosystem and security. A factual overview for decision-makers and technical staff.</summary></entry><entry><title>How the PHP Project Handles Security Vulnerabilities</title><link href="https://phpsos.de/en/php/php-sicherheitsprozess/"/><id>https://phpsos.de/en/php/php-sicherheitsprozess/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>How the PHP project handles vulnerabilities: reporting via GitHub or security@php.net, severity rating, fix in the release and what operators should take from it.</summary></entry><entry><title>Compiling PHP from Source Code</title><link href="https://phpsos.de/en/php/php-kompilieren/"/><id>https://phpsos.de/en/php/php-kompilieren/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Compiling PHP from source: prerequisites, configure options, signature verification, tests and why custom builds mean custom patching duties for you.</summary></entry><entry><title>Running PHP in Containers</title><link href="https://phpsos.de/en/php/php-in-containern/"/><id>https://phpsos.de/en/php/php-in-containern/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>Running PHP in containers: image variants, production php.ini, extensions, memory limits, logs and updates. With examples and the link to PHP2Shell.</summary></entry><entry><title>The Future of PHP</title><link href="https://phpsos.de/en/php/zukunft-von-php/"/><id>https://phpsos.de/en/php/zukunft-von-php/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>The future of PHP based on documented plans: support periods, PHP 8.6 with a planned date, accepted RFCs for PHP 9.0 and what this means for your planning.</summary></entry><entry><title>PHP Basics for Admins</title><link href="https://phpsos.de/en/php/php-grundwissen-admins/"/><id>https://phpsos.de/en/php/php-grundwissen-admins/</id><updated>2026-10-25T08:00:00+01:00</updated><category term="PHP knowledge"/><summary>PHP basics for admins without a developer background: binaries, php.ini levels, FPM pools, key commands, logs and a checklist for after PHP2Shell.</summary></entry></feed>