Skip to content

Commit 972e1d5

Browse files
committed
Add security advisories landing page
1 parent ac41d0b commit 972e1d5

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/Controller/PackageController.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1582,6 +1582,17 @@ public function securityAdvisoriesAction(Request $request, string $name): Respon
15821582
return $this->render('package/security_advisories.html.twig', $data);
15831583
}
15841584

1585+
#[Route(path: '/security-advisories/', name: 'security_advisories')]
1586+
public function securityAdvisoriesIndexAction(Request $request): Response
1587+
{
1588+
$id = $request->request->get('id') ?? $request->query->get('id');
1589+
if ($id) {
1590+
return $this->redirectToRoute('view_advisory', ['id' => trim($id)]);
1591+
}
1592+
1593+
return $this->render('web/security_advisories.html.twig');
1594+
}
1595+
15851596
#[Route(path: '/security-advisories/{id}', name: 'view_advisory')]
15861597
public function securityAdvisoryAction(Request $request, string $id): Response
15871598
{
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{% extends "layout.html.twig" %}
2+
{% block content %}
3+
4+
<h2 class="title">Security Advisories</h2>
5+
6+
<section class="col-d-12">
7+
<h3>Search</h3>
8+
<p>Enter PKSA-, CVE-, or GHSA- IDs to open an advisory</p>
9+
<form method="post" action="{{ path('security_advisories') }}" class="form-inline" style="margin-top: 15px;">
10+
<div class="form-group">
11+
<input type="text" name="id" class="form-control" placeholder="e.g., PKSA-xxxx-xxxx-xxxx" style="width: 300px;" required pattern="(PKSA-.{14}|CVE-\d{4}-\d+|GHSA-.{14})">
12+
</div>
13+
<button type="submit" class="btn btn-primary">View Advisory</button>
14+
</form>
15+
</section>
16+
17+
<section class="col-d-12">
18+
<h3>Packagist Security Advisory Feed</h3>
19+
<p>Packagist aggregates security advisories from multiple sources to help you stay informed about vulnerabilities in PHP packages:</p>
20+
<ul>
21+
<li><strong>GitHub Security Advisories</strong> - Advisories published on GitHub's Security Advisory Database</li>
22+
<li><strong>FriendsOfPHP Security Advisories</strong> - Community-curated advisories from the <a href="https://github.com/FriendsOfPHP/security-advisories">FriendsOfPHP/security-advisories</a> repository</li>
23+
</ul>
24+
<p>All advisories get assigned a <strong>PKSA (Packagist Security Advisory)</strong> ID, which is the primary advisory identifier to use in Composer. Advisories may also have associated CVE (Common Vulnerabilities and Exposures) or GHSA (GitHub Security Advisory) identifiers that link to external databases.</p>
25+
<p>You can access security advisory data through our <a href="{{ path('api_doc') }}#list-security-advisories">API endpoint</a>, which allows you to:</p>
26+
<ul>
27+
<li>Query advisories for specific packages</li>
28+
<li>Fetch updates since a specific timestamp</li>
29+
<li>Integrate security checks into your CI/CD pipeline</li>
30+
</ul>
31+
</section>
32+
33+
{% endblock %}

0 commit comments

Comments
 (0)