{"id":1391,"date":"2026-11-03T09:00:00","date_gmt":"2026-11-03T08:00:00","guid":{"rendered":"https:\/\/www.cisilino.com\/?p=1391"},"modified":"2026-11-03T09:02:50","modified_gmt":"2026-11-03T08:02:50","slug":"laravel-security-updates-composer-audit","status":"publish","type":"post","link":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/","title":{"rendered":"Laravel security updates: how I monitor them"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I run several production servers. Most of the traffic going through my hosting lands on WordPress sites. But not all of it. When a client asks me for a bespoke management system, a backend for an app, or a small e-commerce store with non-standard rules, a CMS is no longer enough. That&#8217;s where PHP frameworks come in. For <strong>Laravel security updates<\/strong> I&#8217;ve put together a check that I actually run, not just one I talk about in theory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp\" alt=\"Laravel security updates: shield and Composer packages in line-art style\" width=\"1200\" height=\"630\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How many sites are CMS-based, and how many are custom-built<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">W3Techs figures say that roughly 68% of sites with a recognised CMS run WordPress, Shopify, or a similar platform. The rest, a bit more than a third of the publicly monitored web, uses none of the CMS platforms those statistics track. In there you&#8217;ll find static sites, but also plenty of custom applications. It&#8217;s not a perfect figure. &#8220;No CMS detected&#8221; doesn&#8217;t exactly equal &#8220;custom application&#8221;. But the direction is clear: hand-built web apps remain a huge slice of the internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Among the PHP frameworks used for these applications, Laravel is today the most widespread. JetBrains&#8217; State of PHP 2025 survey, covering over 1,700 developers, reports 64% usage for Laravel. Symfony follows, but well behind. On my hosting the situation matches this trend. The custom applications I manage for clients, when they&#8217;re not WordPress, are almost always Laravel projects. Some clients arrive with an existing project to maintain. Others ask for one from scratch, knowing it&#8217;s the most common choice on the market. Absolute site counts, from sources like BuiltWith, should be taken with caution: Laravel bundles several Symfony components internally, which muddies statistics based purely on installed packages. But the overall picture doesn&#8217;t change: for anyone writing bespoke PHP applications, Laravel today is the most common starting point, not the exception.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How I monitor Laravel security updates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Laravel project in production is never &#8220;finished and settled&#8221;. The framework, its components, and the dozens of Composer packages it brings with it all receive patches when a flaw is found. If nobody checks, a site can stay vulnerable for months. The client often doesn&#8217;t even notice. It&#8217;s the same principle I applied when I had to <a href=\"https:\/\/www.cisilino.com\/en\/2026\/10\/29\/php2shell-cve-2026-109618-server-mitigation\/\">handle an attack in progress on a server during a PHP security emergency<\/a>: better to prevent with a regular check than to chase the problem after it has already broken out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s why I wrote a simple bash script. I run it via cron on every Laravel project I manage. I also plug it into deploy pipelines, when the client has one. It doesn&#8217;t do anything magic: it reads Composer&#8217;s lock file and checks it against databases of known vulnerabilities. Here it is, exactly as I use it, unchanged.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The audit script<\/h3>\n\n\n\n<pre><code>#!\/usr\/bin\/env bash\nset -euo pipefail\n\nPROJECT_DIR=\"${1:-.}\"\ncd \"$PROJECT_DIR\"\n\necho \"==> Project: $(pwd)\"\n\nif [[ ! -f composer.lock ]]; then\n  echo \"SKIP: composer.lock non trovato (non sembra un progetto composer installato).\"\n  exit 0\nfi\n\necho \"\"\necho \"==> Composer audit (vulnerabilit\u00e0 note)\"\n# --no-interaction utile in CI; fallisce (exit code != 0) se trova advisory\ncomposer audit --no-interaction\n\necho \"\"\necho \"==> Pacchetti outdated (info)\"\ncomposer outdated --direct || true\n\necho \"\"\necho \"==> Laravel version (se presente)\"\nphp -r '\n$lock=json_decode(file_get_contents(\"composer.lock\"), true);\n$pkgs=array_merge($lock[\"packages\"] ?? [], $lock[\"packages-dev\"] ?? []);\n$laravel=null;\nforeach ($pkgs as $p) { if (($p[\"name\"] ?? \"\")===\"laravel\/framework\") { $laravel=$p[\"version\"] ?? null; break; } }\necho $laravel ? \"laravel\/framework: $laravel\\n\" : \"laravel\/framework non trovato nel lock\\n\";\n'\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Disclaimer<\/strong>: the script is provided as-is, for informational purposes. You use it entirely at your own risk: I accept no responsibility for data loss, downtime, or any error caused by incorrect use or by running it in a context different from the one I use it in myself. Always keep an independent backup before running it in production.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>composer audit<\/code> is a command built into Composer since version 2.4. It reads the exact package versions inside <code>composer.lock<\/code>. It checks them against a database of published security advisories. The database comes through Packagist, which in turn relies on the FriendsOfPHP\/security-advisories repository and the GitHub Advisory Database. If it finds a match, it lists the package, the vulnerable version, and the linked advisory. Then it exits with a non-zero status code. That&#8217;s the detail I care about most. A non-zero exit code is what lets a cron job or a pipeline work out, on its own, that something needs reviewing. I don&#8217;t have to read every log line by hand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On production projects I run it once a day via cron, with the output emailed to me if the command fails. On a few more structured clients I&#8217;ve also wired it into the deploy pipeline. If <code>composer audit<\/code> finds a blocking advisory, the deploy stops before it reaches production. Better to stop there than find out afterwards, with the site already live. This daily check, repeated on every project, is the practical core of the Laravel security updates I actually apply, not just the ones I remember to do by hand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second line of the script, <code>composer outdated --direct<\/code>, shows only the dependencies declared by hand in <code>composer.json<\/code>. It doesn&#8217;t show the entire tree of transitive dependencies. An average Laravel project carries hundreds of indirect packages. If I listed all of them, the output would be unreadable. I&#8217;d end up ignoring it, like with too many automated alerts. Looking only at the direct dependencies, I see at a glance what I actually chose. I can decide calmly what to update and when to do it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The last part of the script prints the version of <code>laravel\/framework<\/code> found in the lock file. I do this because the Laravel version lifecycle has precise deadlines. I want to know them without opening every project by hand, one by one. According to the official Laravel support table, security patches for version 11 ended on 12 March 2026. Version 12 receives them until 24 February 2027. Since the first quarter of 2026 the current version is Laravel 13. Planning Laravel security updates ahead of time also means this: knowing which version every project is stuck on, before its support runs out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The honest limits of this check<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>composer audit<\/code> is not an antivirus. It doesn&#8217;t read the application&#8217;s code. It only flags known vulnerabilities that have already been published in an advisory. Against a zero-day flaw, discovered but not yet disclosed, it&#8217;s useless. That&#8217;s why I treat it as a basic hygiene check, not an absolute guarantee. <a href=\"https:\/\/getcomposer.org\/doc\/03-cli.md#audit\" target=\"_blank\" rel=\"noopener\">Regular package updates<\/a> remain the most effective practice, even without an active advisory. Laravel&#8217;s official documentation recommends staying on the current version of the framework. It also recommends automating tests before every major upgrade. That turns upgrading into a habit, not a last-minute emergency.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fact remains that a script of a few lines, run every day, would have saved me more than one awkward email to clients, back in the years when I didn&#8217;t yet use it. Today it&#8217;s part of the maintenance routine for every Laravel project I look after. I run it alongside monitoring server logs and access attempts. Laravel security updates don&#8217;t eliminate the risk. They cut it down a lot. And they cost very little, compared to a compromised site and a client who loses trust.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>How I keep Laravel security updates under control: a composer audit script run daily via cron and wired into deploy pipelines.<\/p>\n","protected":false},"author":1,"featured_media":1388,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpai_generated_summary":"","footnotes":""},"categories":[361],"tags":[340,524,525,376,371,523],"class_list":["post-1391","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-servers-databases","tag-bash-script","tag-composer","tag-laravel","tag-php-en","tag-server-management-en","tag-update"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"matteocisilino\"\/>\n\t<meta name=\"google-site-verification\" content=\"_A-1f0dO30IDVHfP9muflI8kHQs-H4YOi8WLUkYzuLE\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Matteo Cisilino - Guide su WordPress, server e sicurezza\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Laravel security updates: how I monitor them\" \/>\n\t\t<meta property=\"og:description\" content=\"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-11-03T08:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-11-03T08:02:50+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Laravel security updates: how I monitor them\" \/>\n\t\t<meta name=\"twitter:description\" content=\"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#blogposting\",\"name\":\"Laravel security updates: how I monitor them\",\"headline\":\"Laravel security updates: how I monitor them\",\"author\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/aggiornamenti-sicurezza-laravel-composer-audit.webp\",\"width\":1200,\"height\":630,\"caption\":\"aggiornamenti di sicurezza Laravel: scudo e pacchetti Composer in stile line-art\"},\"datePublished\":\"2026-11-03T09:00:00+01:00\",\"dateModified\":\"2026-11-03T09:02:50+01:00\",\"inLanguage\":\"en-GB\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#webpage\"},\"articleSection\":\"Servers and databases, bash script, Composer, Laravel, PHP, server management, update\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/servers-databases\\\/#listItem\",\"name\":\"Servers and databases\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/servers-databases\\\/#listItem\",\"position\":2,\"name\":\"Servers and databases\",\"item\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/servers-databases\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#listItem\",\"name\":\"Laravel security updates: how I monitor them\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#listItem\",\"position\":3,\"name\":\"Laravel security updates: how I monitor them\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/servers-databases\\\/#listItem\",\"name\":\"Servers and databases\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\",\"name\":\"Matteo Cisilino\",\"description\":\"Guide su WordPress, server e sicurezza\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/logo-cisilino-512.png\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#organizationLogo\",\"width\":512,\"height\":512,\"caption\":\"Logo: un cerchio a sinistra che si divide in cerchi pi\\u00f9 piccoli\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/\",\"name\":\"matteocisilino\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/639872265f0661e8aee8924ba9d756b00ea816f8286fab99a5116c729d49618f?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"matteocisilino\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#webpage\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/\",\"name\":\"Laravel security updates: how I monitor them\",\"description\":\"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/aggiornamenti-sicurezza-laravel-composer-audit.webp\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#mainImage\",\"width\":1200,\"height\":630,\"caption\":\"aggiornamenti di sicurezza Laravel: scudo e pacchetti Composer in stile line-art\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/11\\\/03\\\/laravel-security-updates-composer-audit\\\/#mainImage\"},\"datePublished\":\"2026-11-03T09:00:00+01:00\",\"dateModified\":\"2026-11-03T09:02:50+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"name\":\"Matteo Cisilino\",\"description\":\"Guide su WordPress, server e sicurezza\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Laravel security updates: how I monitor them","description":"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.","canonical_url":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"_A-1f0dO30IDVHfP9muflI8kHQs-H4YOi8WLUkYzuLE","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#blogposting","name":"Laravel security updates: how I monitor them","headline":"Laravel security updates: how I monitor them","author":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"publisher":{"@id":"https:\/\/www.cisilino.com\/en\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp","width":1200,"height":630,"caption":"aggiornamenti di sicurezza Laravel: scudo e pacchetti Composer in stile line-art"},"datePublished":"2026-11-03T09:00:00+01:00","dateModified":"2026-11-03T09:02:50+01:00","inLanguage":"en-GB","mainEntityOfPage":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#webpage"},"isPartOf":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#webpage"},"articleSection":"Servers and databases, bash script, Composer, Laravel, PHP, server management, update"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/#listItem","position":1,"name":"Home","item":"https:\/\/www.cisilino.com\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/#listItem","name":"Servers and databases"}},{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/#listItem","position":2,"name":"Servers and databases","item":"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#listItem","name":"Laravel security updates: how I monitor them"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#listItem","position":3,"name":"Laravel security updates: how I monitor them","previousItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/#listItem","name":"Servers and databases"}}]},{"@type":"Organization","@id":"https:\/\/www.cisilino.com\/en\/#organization","name":"Matteo Cisilino","description":"Guide su WordPress, server e sicurezza","url":"https:\/\/www.cisilino.com\/en\/","logo":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/logo-cisilino-512.png","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#organizationLogo","width":512,"height":512,"caption":"Logo: un cerchio a sinistra che si divide in cerchi pi\u00f9 piccoli"},"image":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author","url":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/","name":"matteocisilino","image":{"@type":"ImageObject","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/639872265f0661e8aee8924ba9d756b00ea816f8286fab99a5116c729d49618f?s=96&d=mm&r=g","width":96,"height":96,"caption":"matteocisilino"}},{"@type":"WebPage","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#webpage","url":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/","name":"Laravel security updates: how I monitor them","description":"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/www.cisilino.com\/en\/#website"},"breadcrumb":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#breadcrumblist"},"author":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"creator":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp","@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#mainImage","width":1200,"height":630,"caption":"aggiornamenti di sicurezza Laravel: scudo e pacchetti Composer in stile line-art"},"primaryImageOfPage":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/#mainImage"},"datePublished":"2026-11-03T09:00:00+01:00","dateModified":"2026-11-03T09:02:50+01:00"},{"@type":"WebSite","@id":"https:\/\/www.cisilino.com\/en\/#website","url":"https:\/\/www.cisilino.com\/en\/","name":"Matteo Cisilino","description":"Guide su WordPress, server e sicurezza","inLanguage":"en-GB","publisher":{"@id":"https:\/\/www.cisilino.com\/en\/#organization"}}]},"og:locale":"en_GB","og:site_name":"Matteo Cisilino - Guide su WordPress, server e sicurezza","og:type":"article","og:title":"Laravel security updates: how I monitor them","og:description":"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.","og:url":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/","og:image":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp","og:image:secure_url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp","og:image:width":1200,"og:image:height":630,"article:published_time":"2026-11-03T08:00:00+00:00","article:modified_time":"2026-11-03T08:02:50+00:00","twitter:card":"summary_large_image","twitter:title":"Laravel security updates: how I monitor them","twitter:description":"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.","twitter:image":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/aggiornamenti-sicurezza-laravel-composer-audit.webp"},"aioseo_meta_data":{"post_id":"1391","title":"Laravel security updates: how I monitor them","description":"How I monitor Laravel security updates with a composer audit script run daily via cron, wired into deploy pipelines before release.","keywords":null,"keyphrases":{"focus":{"keyphrase":"laravel security updates"}},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-10-30 16:54:43","updated":"2026-10-30 16:54:43","focus_keyword":"laravel security updates","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cisilino.com\/en\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/\" title=\"Servers and databases\">Servers and databases<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tLaravel security updates: how I monitor them\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.cisilino.com\/en\/"},{"label":"Servers and databases","link":"https:\/\/www.cisilino.com\/en\/category\/servers-databases\/"},{"label":"Laravel security updates: how I monitor them","link":"https:\/\/www.cisilino.com\/en\/2026\/11\/03\/laravel-security-updates-composer-audit\/"}],"_links":{"self":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/comments?post=1391"}],"version-history":[{"count":2,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1391\/revisions"}],"predecessor-version":[{"id":1424,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1391\/revisions\/1424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/media\/1388"}],"wp:attachment":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/media?parent=1391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/categories?post=1391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/tags?post=1391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}