legacy: la contraseña de la copia deja de viajar en la direccion
El formulario de exportacion se habia pasado a GET, asi que la contraseña que cifra la copia de la identidad acababa en el historial del navegador, en el registro del servidor y en el Referer de lo siguiente que se cargara. Vuelve a POST, como en upstream, y la ruta la lee del cuerpo. Comprobado: la exportacion sigue descargando el fichero, y la direccion con la contraseña ya no responde.
This commit is contained in:
parent
975e892985
commit
1cf62028d2
2 changed files with 6 additions and 3 deletions
|
|
@ -214,9 +214,12 @@ async function karvanInviteAuthor(roomId) {
|
|||
accounts.setActive(name);
|
||||
ctx.redirect('/settings');
|
||||
})
|
||||
.get('/legacy/export', async (ctx) => {
|
||||
// POST y no GET: en la direccion, la contraseña acaba en el historial del
|
||||
// navegador, en el registro del servidor y en el Referer de lo siguiente que
|
||||
// se cargue. En el cuerpo, no.
|
||||
.post('/legacy/export', koaBody(), async (ctx) => {
|
||||
if (!isLoopbackRequest(ctx)) { ctx.status = 403; ctx.body = ''; return; }
|
||||
const pw = ctx.query && ctx.query.password;
|
||||
const pw = ctx.request.body && ctx.request.body.password;
|
||||
if (!pw || pw.length < 32) return ctx.redirect('/legacy');
|
||||
try {
|
||||
const { filename, data } = await legacyModel.exportData({ password: pw });
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ const legacyView = async () => {
|
|||
form(
|
||||
{
|
||||
action: "/legacy/export",
|
||||
method: "GET",
|
||||
method: "POST",
|
||||
id: "exportForm"
|
||||
},
|
||||
label(i18n.exportPasswordLabel),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue