add filename cleaning at OneTimeLink download (#2253)
* add filename cleaning at OneTimeLink download * add cleanConfigFilename function in utils/WireGuard
This commit is contained in:
@@ -19,16 +19,11 @@ export default definePermissionEventHandler(
|
||||
}
|
||||
|
||||
const config = await WireGuard.getClientConfiguration({ clientId });
|
||||
const configName = client.name
|
||||
.replace(/[^a-zA-Z0-9_=+.-]/g, '-')
|
||||
.replace(/(-{2,}|-$)/g, '-')
|
||||
.replace(/-$/, '')
|
||||
.substring(0, 32);
|
||||
|
||||
setHeader(
|
||||
event,
|
||||
'Content-Disposition',
|
||||
`attachment; filename="${configName || clientId}.conf"`
|
||||
`attachment; filename="${WireGuard.cleanClientFilename(client.name) || clientId}.conf"`
|
||||
);
|
||||
|
||||
setHeader(event, 'Content-Type', 'text/plain');
|
||||
|
||||
@@ -30,7 +30,7 @@ export default defineEventHandler(async (event) => {
|
||||
setHeader(
|
||||
event,
|
||||
'Content-Disposition',
|
||||
`attachment; filename="${client.name}.conf"`
|
||||
`attachment; filename="${WireGuard.cleanClientFilename(client.name) || client.id}.conf"`
|
||||
);
|
||||
setHeader(event, 'Content-Type', 'text/plain');
|
||||
return config;
|
||||
|
||||
@@ -170,6 +170,14 @@ class WireGuard {
|
||||
});
|
||||
}
|
||||
|
||||
cleanClientFilename(name: string): string {
|
||||
return name
|
||||
.replace(/[^a-zA-Z0-9_=+.-]/g, '-')
|
||||
.replace(/(-{2,}|-$)/g, '-')
|
||||
.replace(/-$/, '')
|
||||
.substring(0, 32);
|
||||
}
|
||||
|
||||
async Startup() {
|
||||
WG_DEBUG('Starting WireGuard...');
|
||||
// let as it has to refetch if keys change
|
||||
|
||||
Reference in New Issue
Block a user