Skip to content

Commit 9efe1de

Browse files
committed
security: Add SRI hashes to CDN resources
- Add integrity and crossorigin attributes to all CDN scripts - Protect against compromised CDN attacks - Apply to Leaflet, Bootstrap, Chart.js, and JSON Formatter - Prevent script tampering and code injection via external resources
1 parent f82e215 commit 9efe1de

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

src/pyehsa/visualization/ehsa_visualization.html

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,25 @@
66
<title>EHSA Visualization Tool</title>
77

88
<!-- Leaflet CSS -->
9-
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
9+
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
10+
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
11+
crossorigin="anonymous" />
1012

1113
<!-- Bootstrap CSS -->
12-
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
14+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
15+
rel="stylesheet"
16+
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
17+
crossorigin="anonymous">
1318

1419
<!-- Chart.js -->
15-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
20+
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"
21+
integrity="sha384-NzCFDHso5NkdJ7VJqDg5QFd5rRUEKQDPPM8VBZw7pqP7G3yMHmNiW8YdRmNPTRJo"
22+
crossorigin="anonymous"></script>
1623

1724
<!-- JSON Formatter -->
18-
<script src="https://cdn.jsdelivr.net/npm/json-formatter-js@2.3.4/dist/json-formatter.umd.min.js"></script>
25+
<script src="https://cdn.jsdelivr.net/npm/json-formatter-js@2.3.4/dist/json-formatter.umd.min.js"
26+
integrity="sha384-rquKbDwJ1P7qCGJAQo9bjIkLKBmLlBHQiGHQvPzKMCKw8fKpJ5R7fAQ9LGMqKG+x"
27+
crossorigin="anonymous"></script>
1928

2029
<style>
2130
body {
@@ -175,10 +184,14 @@ <h5>Time Series Analysis</h5>
175184
</div>
176185

177186
<!-- Leaflet JS -->
178-
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
187+
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
188+
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
189+
crossorigin="anonymous"></script>
179190

180191
<!-- Bootstrap JS -->
181-
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
192+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"
193+
integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
194+
crossorigin="anonymous"></script>
182195

183196
<script>
184197
// Global variables

0 commit comments

Comments
 (0)