Compare commits
No commits in common. "73eaccb48387e0316f122076332ace4ee928c0be" and "7e60d0e920b2c31ff567aca3ac6a74532988ac5f" have entirely different histories.
73eaccb483
...
7e60d0e920
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.61",
|
"version": "4.6.60",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.61",
|
"version": "4.6.60",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.0",
|
"axios": "^1.6.0",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.61",
|
"version": "4.6.60",
|
||||||
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
||||||
"main": "dist/main.js",
|
"main": "dist/main.js",
|
||||||
"author": "xRangerDE",
|
"author": "xRangerDE",
|
||||||
|
|||||||
15
src/main.ts
15
src/main.ts
@ -6975,20 +6975,7 @@ ipcMain.handle('install-update', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.handle('open-external', async (_, url: string) => {
|
ipcMain.handle('open-external', async (_, url: string) => {
|
||||||
// Only allow https / http URLs — never let the renderer push a
|
await shell.openExternal(url);
|
||||||
// file://, javascript:, or shell:-style URL through to the OS
|
|
||||||
// shell.openExternal handler. The renderer is contextIsolated +
|
|
||||||
// nodeIntegration: false, but an XSS through (e.g.) a streamer name
|
|
||||||
// smuggling a payload into a template would otherwise hand the
|
|
||||||
// attacker shell.openExternal which on Windows happily resolves
|
|
||||||
// file:///C:/Windows/System32/calc.exe.
|
|
||||||
if (typeof url !== 'string') return;
|
|
||||||
const trimmed = url.trim();
|
|
||||||
if (!/^https?:\/\//i.test(trimmed)) {
|
|
||||||
appendDebugLog('open-external-rejected', { url: trimmed.slice(0, 200) });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await shell.openExternal(trimmed);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Tracks active standalone clip downloads so cancel-download / window-all-closed
|
// Tracks active standalone clip downloads so cancel-download / window-all-closed
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user